annotate src/treecms/memory/OnMemoryMonotonicTreeNode.java @ 16:bb9760760744

commit
author shoshi
date Sat, 21 May 2011 04:46:00 +0900
parents 22cd920986c5
children 168deb591f21
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
1 package treecms.memory;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
2
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
3 import java.nio.ByteBuffer;
16
shoshi
parents: 15
diff changeset
4
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
5 import java.util.Iterator;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
6 import java.util.List;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
7 import java.util.Map;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
8 import java.util.Set;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
9 import treecms.api.Forest;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
10 import treecms.api.MonotonicTreeNode;
15
misaka
parents: 14
diff changeset
11 import treecms.api.NodeAttributes;
misaka
parents: 14
diff changeset
12 import treecms.api.NodeChildren;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
13 import treecms.api.NodeID;
15
misaka
parents: 14
diff changeset
14 import treecms.api.SingleNode;
misaka
parents: 14
diff changeset
15 import treecms.tree.util.NodeChildrenImpl;
16
shoshi
parents: 15
diff changeset
16 import treecms.tree.util.NodeData;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
17
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
18 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
19 * SingleLinkedなNodeをラップしたDoubleLinkedなNodeの実装です.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
20 * @author shoshi
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
21 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
22 public class OnMemoryMonotonicTreeNode implements MonotonicTreeNode
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
23 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
24 private OnMemoryNode m_node;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
25 private OnMemoryMonotonicTreeNode m_parent;
16
shoshi
parents: 15
diff changeset
26 private OnMemoryMonotonicTree m_tree;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
27
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
28 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
29 * コンストラクタです.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
30 * @param _target 対象となるSingleLinked Node
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
31 * @param _parent このDoubleLinked Nodeの親,RootNodeならnull
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
32 * @param _tree このNodeがRootNodeなら,nullではいけない.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
33 */
15
misaka
parents: 14
diff changeset
34 public OnMemoryMonotonicTreeNode(OnMemoryNode _target,OnMemoryMonotonicTreeNode _parent)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
35 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
36 m_node = _target;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
37 m_parent = _parent;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
38 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
39
16
shoshi
parents: 15
diff changeset
40 public OnMemoryMonotonicTreeNode(OnMemoryNode _root,OnMemoryMonotonicTree _tree)
shoshi
parents: 15
diff changeset
41 {
shoshi
parents: 15
diff changeset
42 m_node = _root;
shoshi
parents: 15
diff changeset
43 m_tree = _tree;
shoshi
parents: 15
diff changeset
44 m_parent = null;
shoshi
parents: 15
diff changeset
45 }
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
46
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
47 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
48 public NodeID getID()
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
49 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
50 return m_node.getID();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
51 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
52
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
53 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
54 public Forest getForest()
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
55 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
56 return m_node.getForest();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
57 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
58
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
59 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
60 public MonotonicTreeNode getParent()
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
61 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
62 return m_parent;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
63 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
64
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
65 @Override
15
misaka
parents: 14
diff changeset
66 public SingleNode getNode()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
67 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
68 return m_node;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
69 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
70
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
71 /*
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
72 * 属性関連のメソッド
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
73 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
74
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
75 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
76 public ByteBuffer get(ByteBuffer _key)
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
77 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
78 return m_node.get(_key);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
79 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
80
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
81 @Override
15
misaka
parents: 14
diff changeset
82 public NodeAttributes getAll()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
83 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
84 return m_node.getAll();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
85 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
86
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
87 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
88 public void put(ByteBuffer _key, ByteBuffer _value)
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
89 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
90 m_node.put(_key,_value);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
91 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
92
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
93 @Override
15
misaka
parents: 14
diff changeset
94 public void putAll(NodeAttributes _map)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
95 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
96 m_node.putAll(_map);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
97 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
98
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
99 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
100 public void remove(ByteBuffer _key)
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
101 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
102 m_node.remove(_key);
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
103 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
104
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
105 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
106 public void removeAll(Set<ByteBuffer> _keys)
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
107 {
16
shoshi
parents: 15
diff changeset
108 NodeData<SingleNode> d = new NodeData<SingleNode>(m_node);
shoshi
parents: 15
diff changeset
109 d.removeAll(_keys);
shoshi
parents: 15
diff changeset
110
shoshi
parents: 15
diff changeset
111 cloneAndTransmit(d);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
112 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
113
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
114 @Override
15
misaka
parents: 14
diff changeset
115 public void clearAttributes()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
116 {
16
shoshi
parents: 15
diff changeset
117 NodeData<SingleNode> d = new NodeData<SingleNode>(m_node);
shoshi
parents: 15
diff changeset
118 d.clearAttributes();
shoshi
parents: 15
diff changeset
119
shoshi
parents: 15
diff changeset
120 cloneAndTransmit(d);
shoshi
parents: 15
diff changeset
121 }
shoshi
parents: 15
diff changeset
122
shoshi
parents: 15
diff changeset
123 public void cloneAndTransmit(NodeData<SingleNode> _d)
shoshi
parents: 15
diff changeset
124 {
shoshi
parents: 15
diff changeset
125 OnMemoryForest f = (OnMemoryForest)m_node.getForest();
shoshi
parents: 15
diff changeset
126 OnMemoryNode clone = f.createNode(m_node.getID().update(),_d);
shoshi
parents: 15
diff changeset
127 transmit(m_node,clone);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
128 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
129
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
130 /**
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
131 * このMonotonicNodeに変更が加えられたら,こちらのメソッドが呼び出されます.
13
c8601b0fa8a3 added Predicate and PredicateList
shoshi
parents: 12
diff changeset
132 * 非破壊的に変更するために,SingleLinkedNodeのクローンを作成し,親にも複製を依頼します.
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
133 *
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
134 * RootNodeまで伝搬すると親のNodeはnullとなる.親Nodeは担当するMonotonicTreeのオブジェクトを保持しており,そこにRootNodeが変更されたことを通知する.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
135 * 通知が終わり,処理が戻ってきた時に自身のOnMemoryNodeをクローンした新しいものに書き換えます.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
136 *
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
137 * _fromがnullの場合は,自身が編集元であることを示します.
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
138 * @param _from 編集元のOnMemoryMonotonicTreeNode
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
139 */
14
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
140 public void transmit(OnMemoryNode _orig,OnMemoryNode _edit)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
141 {
15
misaka
parents: 14
diff changeset
142 OnMemoryForest f = (OnMemoryForest)m_node.getForest();
16
shoshi
parents: 15
diff changeset
143 OnMemoryNode clone = f.createNode(m_node.getID().update(),null);
shoshi
parents: 15
diff changeset
144 clone.replace(_edit);
14
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
145
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
146 if(m_parent != null){
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
147 m_parent.transmit(m_node,(OnMemoryNode)clone);
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
148 return;
8bf59f161b23 separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents: 13
diff changeset
149 }
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
150 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
151
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
152 /*
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
153 * 子供関連のメソッド
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
154 */
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
155 @Override
15
misaka
parents: 14
diff changeset
156 public List<MonotonicTreeNode> getList()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
157 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
158 //NodeのリストよりMonotonicTreeNodeのリストを作成する.
15
misaka
parents: 14
diff changeset
159 NodeChildren<MonotonicTreeNode> res = new NodeChildrenImpl<MonotonicTreeNode>();
misaka
parents: 14
diff changeset
160 for(Iterator<SingleNode> it = m_node.getList().iterator();it.hasNext();){
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
161 OnMemoryNode n = (OnMemoryNode)it.next();
15
misaka
parents: 14
diff changeset
162 res.add(new OnMemoryMonotonicTreeNode(n,this));
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
163 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
164
15
misaka
parents: 14
diff changeset
165 return res.getList();
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
166 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
167
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
168 @Override
15
misaka
parents: 14
diff changeset
169 public boolean add(MonotonicTreeNode _n)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
170 {
15
misaka
parents: 14
diff changeset
171 return m_node.add(_n.getNode());
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
172 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
173
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
174 @Override
15
misaka
parents: 14
diff changeset
175 public boolean addAll(NodeChildren<MonotonicTreeNode> _list)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
176 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
177 //MotonicTreeNodeのリストからNodeのリストを作成する.
15
misaka
parents: 14
diff changeset
178 NodeChildren<SingleNode> res = new NodeChildrenImpl<SingleNode>();
misaka
parents: 14
diff changeset
179 for(Iterator<MonotonicTreeNode> it = _list.getList().iterator();it.hasNext();){
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
180 MonotonicTreeNode mono = (MonotonicTreeNode)it.next();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
181 res.add(mono.getNode());
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
182 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
183
15
misaka
parents: 14
diff changeset
184 return m_node.addAll(res);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
185 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
186
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
187 @Override
15
misaka
parents: 14
diff changeset
188 public MonotonicTreeNode remove(String _uuid)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
189 {
15
misaka
parents: 14
diff changeset
190 SingleNode n = m_node.remove(_uuid);
misaka
parents: 14
diff changeset
191 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,this);
misaka
parents: 14
diff changeset
192 }
misaka
parents: 14
diff changeset
193
misaka
parents: 14
diff changeset
194 @Override
misaka
parents: 14
diff changeset
195 public MonotonicTreeNode remove(int _index)
misaka
parents: 14
diff changeset
196 {
misaka
parents: 14
diff changeset
197 SingleNode n = m_node.remove(_index);
16
shoshi
parents: 15
diff changeset
198 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,(OnMemoryMonotonicTreeNode)null);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
199 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
200
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
201 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
202 public void clearChildren()
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
203 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
204 m_node.clearChildren();
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
205 }
16
shoshi
parents: 15
diff changeset
206
shoshi
parents: 15
diff changeset
207 @Override
shoshi
parents: 15
diff changeset
208 public Map<ByteBuffer, ByteBuffer> asMap()
shoshi
parents: 15
diff changeset
209 {
shoshi
parents: 15
diff changeset
210 return m_node.asMap();
shoshi
parents: 15
diff changeset
211 }
shoshi
parents: 15
diff changeset
212
shoshi
parents: 15
diff changeset
213 @Override
shoshi
parents: 15
diff changeset
214 public Set<ByteBuffer> getKeySet()
shoshi
parents: 15
diff changeset
215 {
shoshi
parents: 15
diff changeset
216 return m_node.getKeySet();
shoshi
parents: 15
diff changeset
217 }
shoshi
parents: 15
diff changeset
218
shoshi
parents: 15
diff changeset
219 @Override
shoshi
parents: 15
diff changeset
220 public Set<String> getUUIDSet()
shoshi
parents: 15
diff changeset
221 {
shoshi
parents: 15
diff changeset
222 return m_node.getUUIDSet();
shoshi
parents: 15
diff changeset
223 }
shoshi
parents: 15
diff changeset
224
shoshi
parents: 15
diff changeset
225 @Override
shoshi
parents: 15
diff changeset
226 public MonotonicTreeNode get(String _uuid)
shoshi
parents: 15
diff changeset
227 {
shoshi
parents: 15
diff changeset
228 SingleNode n = m_node.get(_uuid);
shoshi
parents: 15
diff changeset
229 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,this);
shoshi
parents: 15
diff changeset
230 }
shoshi
parents: 15
diff changeset
231
shoshi
parents: 15
diff changeset
232 @Override
shoshi
parents: 15
diff changeset
233 public MonotonicTreeNode get(int _index)
shoshi
parents: 15
diff changeset
234 {
shoshi
parents: 15
diff changeset
235 SingleNode n = m_node.get(_index);
shoshi
parents: 15
diff changeset
236 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,this);
shoshi
parents: 15
diff changeset
237 }
shoshi
parents: 15
diff changeset
238
shoshi
parents: 15
diff changeset
239 @Override
shoshi
parents: 15
diff changeset
240 public MonotonicTreeNode replace(MonotonicTreeNode _newChild)
shoshi
parents: 15
diff changeset
241 {
shoshi
parents: 15
diff changeset
242 SingleNode n = m_node.replace(_newChild.getNode());
shoshi
parents: 15
diff changeset
243 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,(OnMemoryMonotonicTreeNode)null);
shoshi
parents: 15
diff changeset
244 }
shoshi
parents: 15
diff changeset
245
shoshi
parents: 15
diff changeset
246 @Override
shoshi
parents: 15
diff changeset
247 public boolean contains(String _id)
shoshi
parents: 15
diff changeset
248 {
shoshi
parents: 15
diff changeset
249 return m_node.contains(_id);
shoshi
parents: 15
diff changeset
250 }
shoshi
parents: 15
diff changeset
251
shoshi
parents: 15
diff changeset
252 @Override
shoshi
parents: 15
diff changeset
253 public boolean swap(String _uuid1, String _uuid2)
shoshi
parents: 15
diff changeset
254 {
shoshi
parents: 15
diff changeset
255 return m_node.swap(_uuid1,_uuid2);
shoshi
parents: 15
diff changeset
256 }
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
257 }