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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }