Mercurial > hg > Members > shoshi > TreeCMSv2
annotate src/treecms/tree/util/NodeChildrenImpl.java @ 16:bb9760760744
commit
author | shoshi |
---|---|
date | Sat, 21 May 2011 04:46:00 +0900 |
parents | 22cd920986c5 |
children | 168deb591f21 |
rev | line source |
---|---|
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
1 package treecms.tree.util; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
2 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
3 import java.util.ArrayList; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
4 import java.util.Collections; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
5 import java.util.HashSet; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
6 import java.util.Set; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
7 import java.util.List; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
8 import treecms.api.Node; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
9 import treecms.api.NodeChildren; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
10 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
11 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
12 * 子供ノードを格納するため専用のリストです.java.util.List<T>は継承しておりません. |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
13 * 子供ノードのリストには リスト内に同じUUIDを持つNodeが存在 してはいけません. |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
14 * @author shoshi |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
15 */ |
16 | 16 public class NodeChildrenImpl<T extends Node<T>> implements NodeChildren<T> |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
17 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
18 private List<T> m_list; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
19 private Set<String> m_set; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
20 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
21 public NodeChildrenImpl() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
22 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
23 m_list = new ArrayList<T>(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
24 m_set = new HashSet<String>(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
25 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
26 |
15 | 27 public NodeChildrenImpl(NodeChildren<T> _list) |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
28 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
29 this(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
30 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
31 if(_list != null){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
32 addAll(_list); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
33 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
34 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
35 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
36 public List<T> getList() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
37 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
38 return Collections.unmodifiableList(m_list); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
39 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
40 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
41 public Set<String> getUUIDSet() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
42 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
43 return Collections.unmodifiableSet(m_set); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
44 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
45 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
46 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
47 public T replace(T _newChild) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
48 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
49 String uuid = _newChild.getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
50 int size = m_list.size(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
51 for(int i = 0;i < size;i ++){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
52 T n = m_list.get(i); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
53 if(uuid.equals(n.getID().getUUID())){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
54 //_newChildと同一なUUIDを見つけた |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
55 return m_list.set(i,_newChild); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
56 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
57 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
58 //見つからなかった |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
59 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
60 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
61 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
62 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
63 * このリストに新しく子供を追加します. |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
64 * @param _n |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
65 * @return 追加に成功した場合true |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
66 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
67 public boolean add(T _n) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
68 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
69 if(m_set.contains(_n.getID().getUUID())){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
70 return false; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
71 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
72 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
73 m_set.add(_n.getID().getUUID()); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
74 m_list.add(_n); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
75 return true; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
76 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
77 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
78 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
79 * _listに含まれている子供がすべてこのリストに含まれない場合にのみ、要素をすべて追加します。 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
80 * @param _list |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
81 * @return 追加に成功した場合true |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
82 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
83 public boolean addAll(NodeChildren<T> _list) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
84 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
85 if(Collections.disjoint(m_set,_list.getUUIDSet())){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
86 //共通要素がない |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
87 m_set.addAll(_list.getUUIDSet()); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
88 m_list.addAll(_list.getList()); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
89 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
90 return false; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
91 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
92 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
93 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
94 * 指定されたNodeID |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
95 * @param _id |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
96 * @return 子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
97 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
98 public T get(String _uuid) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
99 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
100 for(T n : m_list){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
101 String uuid = n.getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
102 if(uuid.equals(_uuid)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
103 return n; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
104 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
105 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
106 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
107 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
108 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
109 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
110 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
111 * 指定された_indexの場所に位置する子供を削除します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
112 * @param _index |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
113 * @return 消される子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
114 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
115 public T get(int _index) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
116 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
117 return m_list.get(_index); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
118 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
119 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
120 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
121 * 指定されたUUIDを持つ子どもを削除します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
122 * @param _id |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
123 * @return 削除される子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
124 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
125 public T remove(String _uuid) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
126 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
127 int size = m_list.size(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
128 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
129 for(int i = 0;i < size;i ++){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
130 String uuid = m_list.get(i).getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
131 if(uuid.equals(_uuid)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
132 //NodeIDのUUIDが一致した |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
133 return m_list.remove(i); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
134 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
135 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
136 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
137 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
138 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
139 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
140 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
141 * 指定された場所の子供ノードを削除します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
142 * @param _index |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
143 * @return 削除された子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
144 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
145 public T remove(int _index) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
146 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
147 return m_list.remove(_index); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
148 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
149 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
150 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
151 * このリストに指定されたUUIDを持つNodeがあるか確認します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
152 * @param _id |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
153 * @return 存在する場合true |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
154 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
155 public boolean contains(String _uuid) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
156 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
157 return m_set.contains(_uuid); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
158 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
159 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
160 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
161 * 指定された二つのUUID(_uuid1,_uuid2)がリスト上に存在する場合、その二つの順番を入れ替えます |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
162 * @param _uuid1 String |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
163 * @param _uuid2 String |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
164 * @return 成功した場合はtrue,NodeIDが見つからなかった場合はfalse |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
165 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
166 public boolean swap(String _uuid1,String _uuid2) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
167 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
168 /* |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
169 * 二つのNodeIDの位置を求める |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
170 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
171 int index1 = -1; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
172 int index2 = -1; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
173 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
174 int size = m_list.size(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
175 for(int i = 0;i < size && (index1 == -1 || index2 == 1);i ++){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
176 String uuid = m_list.get(i).getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
177 if(uuid.equals(_uuid1)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
178 index1 = i; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
179 continue; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
180 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
181 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
182 if(uuid.equals(_uuid2)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
183 index2 = i; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
184 continue; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
185 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
186 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
187 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
188 /* |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
189 * Collection.swapを使って入れ替える |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
190 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
191 if(index1 != -1 && index2 != -1){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
192 Collections.swap(m_list,index1,index2); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
193 return true; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
194 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
195 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
196 //NodeIDがリスト上になかった |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
197 return false; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
198 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
199 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
200 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
201 * 子供ノードのリストをクリアします |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
202 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
203 public void clearChildren() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
204 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
205 m_set.clear(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
206 m_list.clear(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
207 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
208 |
16 | 209 @SuppressWarnings("unchecked") |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
210 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
211 public boolean equals(Object _o) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
212 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
213 NodeChildrenImpl<T> list = (NodeChildrenImpl<T>)_o; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
214 return m_list.equals(list.m_list); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
215 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
216 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
217 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
218 public int hashCode() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
219 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
220 int result = 17; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
221 result = 37*result + m_list.hashCode(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
222 result = 37*result + m_set.hashCode(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
223 return result; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
224 } |
16 | 225 |
226 public static NodeChildren<? extends Node<?>> hoge(Node<?> hoge) | |
227 { | |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
228 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
229 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
230 } |