Mercurial > hg > Members > shoshi > TreeCMSv2
annotate src/treecms/tree/util/NodeChildrenImpl.java @ 14:8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
author | misaka |
---|---|
date | Tue, 17 May 2011 18:44:14 +0900 |
parents | |
children | 22cd920986c5 |
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.nio.ByteBuffer; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
4 import java.util.ArrayList; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
5 import java.util.Collections; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
6 import java.util.HashSet; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
7 import java.util.Map; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
8 import java.util.Set; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
9 import java.util.List; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
10 import treecms.api.Node; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
11 import treecms.api.NodeAttributes; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
12 import treecms.api.NodeChildren; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
13 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
14 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
15 * 子供ノードを格納するため専用のリストです.java.util.List<T>は継承しておりません. |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
16 * 子供ノードのリストには リスト内に同じUUIDを持つNodeが存在 してはいけません. |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
17 * @author shoshi |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
18 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
19 public class NodeChildrenImpl<T extends Node<T>> implements NodeAttributes , NodeChildren<T> |
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 private List<T> m_list; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
22 private Set<String> m_set; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
23 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
24 public NodeChildrenImpl() |
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 m_list = new ArrayList<T>(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
27 m_set = new HashSet<String>(); |
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 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
30 public NodeChildrenImpl(NodeChildrenImpl<T> _list) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
31 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
32 this(); |
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 if(_list != null){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
35 addAll(_list); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
36 } |
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 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
39 public List<T> getList() |
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 return Collections.unmodifiableList(m_list); |
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 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
44 public Set<String> getUUIDSet() |
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 return Collections.unmodifiableSet(m_set); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
47 } |
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 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
50 public T replace(T _newChild) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
51 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
52 String uuid = _newChild.getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
53 int size = m_list.size(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
54 for(int i = 0;i < size;i ++){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
55 T n = m_list.get(i); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
56 if(uuid.equals(n.getID().getUUID())){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
57 //_newChildと同一なUUIDを見つけた |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
58 return m_list.set(i,_newChild); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
59 } |
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 return null; |
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 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
65 /** |
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 * @param _n |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
68 * @return 追加に成功した場合true |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
69 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
70 public boolean add(T _n) |
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 if(m_set.contains(_n.getID().getUUID())){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
73 return false; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
74 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
75 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
76 m_set.add(_n.getID().getUUID()); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
77 m_list.add(_n); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
78 return true; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
79 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
80 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
81 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
82 * _listに含まれている子供がすべてこのリストに含まれない場合にのみ、要素をすべて追加します。 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
83 * @param _list |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
84 * @return 追加に成功した場合true |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
85 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
86 public boolean addAll(NodeChildren<T> _list) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
87 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
88 if(Collections.disjoint(m_set,_list.getUUIDSet())){ |
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 m_set.addAll(_list.getUUIDSet()); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
91 m_list.addAll(_list.getList()); |
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 return false; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
94 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
95 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
96 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
97 * 指定されたNodeID |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
98 * @param _id |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
99 * @return 子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
100 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
101 public T get(String _uuid) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
102 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
103 for(T n : m_list){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
104 String uuid = n.getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
105 if(uuid.equals(_uuid)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
106 return n; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
107 } |
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 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
111 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
112 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
113 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
114 * 指定された_indexの場所に位置する子供を削除します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
115 * @param _index |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
116 * @return 消される子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
117 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
118 public T get(int _index) |
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 return m_list.get(_index); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
121 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
122 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
123 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
124 * 指定されたUUIDを持つ子どもを削除します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
125 * @param _id |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
126 * @return 削除される子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
127 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
128 public T remove(String _uuid) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
129 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
130 int size = m_list.size(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
131 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
132 for(int i = 0;i < size;i ++){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
133 String uuid = m_list.get(i).getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
134 if(uuid.equals(_uuid)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
135 //NodeIDのUUIDが一致した |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
136 return m_list.remove(i); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
137 } |
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 return null; |
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 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
143 /** |
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 * @param _index |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
146 * @return 削除された子供ノード |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
147 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
148 public T remove(int _index) |
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 return m_list.remove(_index); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
151 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
152 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
153 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
154 * このリストに指定されたUUIDを持つNodeがあるか確認します |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
155 * @param _id |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
156 * @return 存在する場合true |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
157 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
158 public boolean contains(String _uuid) |
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 return m_set.contains(_uuid); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
161 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
162 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
163 /** |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
164 * 指定された二つのUUID(_uuid1,_uuid2)がリスト上に存在する場合、その二つの順番を入れ替えます |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
165 * @param _uuid1 String |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
166 * @param _uuid2 String |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
167 * @return 成功した場合はtrue,NodeIDが見つからなかった場合はfalse |
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 public boolean swap(String _uuid1,String _uuid2) |
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 /* |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
172 * 二つのNodeIDの位置を求める |
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 index1 = -1; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
175 int index2 = -1; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
176 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
177 int size = m_list.size(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
178 for(int i = 0;i < size && (index1 == -1 || index2 == 1);i ++){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
179 String uuid = m_list.get(i).getID().getUUID(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
180 if(uuid.equals(_uuid1)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
181 index1 = i; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
182 continue; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
183 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
184 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
185 if(uuid.equals(_uuid2)){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
186 index2 = i; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
187 continue; |
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 } |
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 /* |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
192 * Collection.swapを使って入れ替える |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
193 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
194 if(index1 != -1 && index2 != -1){ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
195 Collections.swap(m_list,index1,index2); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
196 return true; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
197 } |
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 //NodeIDがリスト上になかった |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
200 return false; |
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 /** |
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 */ |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
206 public void clearChildren() |
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 m_set.clear(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
209 m_list.clear(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
210 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
211 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
212 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
213 public boolean equals(Object _o) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
214 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
215 NodeChildrenImpl<T> list = (NodeChildrenImpl<T>)_o; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
216 return m_list.equals(list.m_list); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
217 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
218 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
219 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
220 public int hashCode() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
221 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
222 int result = 17; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
223 result = 37*result + m_list.hashCode(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
224 result = 37*result + m_set.hashCode(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
225 return result; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
226 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
227 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
228 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
229 public Map<ByteBuffer, ByteBuffer> asMap() { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
230 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
231 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
232 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
233 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
234 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
235 public Set<ByteBuffer> getKeySet() { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
236 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
237 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
238 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
239 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
240 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
241 public void put(ByteBuffer _name, ByteBuffer _value) { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
242 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
243 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
244 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
245 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
246 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
247 public void putAll(NodeAttributes _attrs) { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
248 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
249 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
250 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
251 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
252 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
253 public ByteBuffer get(ByteBuffer _name) { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
254 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
255 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
256 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
257 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
258 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
259 public NodeAttributes getAll() { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
260 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
261 return null; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
262 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
263 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
264 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
265 public void remove(ByteBuffer _name) { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
266 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
267 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
268 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
269 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
270 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
271 public void removeAll(Set<ByteBuffer> _keySet) { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
272 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
273 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
274 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
275 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
276 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
277 public void clearAttributes() { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
278 // TODO Auto-generated method stub |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
279 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
280 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
281 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
diff
changeset
|
282 } |