Mercurial > hg > Members > shoshi > TreeCMSv2
annotate src/treecms/memory/OnMemoryMonotonicTreeNode.java @ 16:bb9760760744
commit
author | shoshi |
---|---|
date | Sat, 21 May 2011 04:46:00 +0900 |
parents | 22cd920986c5 |
children | 168deb591f21 |
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 | 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 | 11 import treecms.api.NodeAttributes; |
12 import treecms.api.NodeChildren; | |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff
changeset
|
13 import treecms.api.NodeID; |
15 | 14 import treecms.api.SingleNode; |
15 import treecms.tree.util.NodeChildrenImpl; | |
16 | 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 | 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 | 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 | 40 public OnMemoryMonotonicTreeNode(OnMemoryNode _root,OnMemoryMonotonicTree _tree) |
41 { | |
42 m_node = _root; | |
43 m_tree = _tree; | |
44 m_parent = null; | |
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 | 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 | 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 | 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 | 108 NodeData<SingleNode> d = new NodeData<SingleNode>(m_node); |
109 d.removeAll(_keys); | |
110 | |
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 | 115 public void clearAttributes() |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff
changeset
|
116 { |
16 | 117 NodeData<SingleNode> d = new NodeData<SingleNode>(m_node); |
118 d.clearAttributes(); | |
119 | |
120 cloneAndTransmit(d); | |
121 } | |
122 | |
123 public void cloneAndTransmit(NodeData<SingleNode> _d) | |
124 { | |
125 OnMemoryForest f = (OnMemoryForest)m_node.getForest(); | |
126 OnMemoryNode clone = f.createNode(m_node.getID().update(),_d); | |
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 | 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 | 142 OnMemoryForest f = (OnMemoryForest)m_node.getForest(); |
16 | 143 OnMemoryNode clone = f.createNode(m_node.getID().update(),null); |
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 | 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 | 159 NodeChildren<MonotonicTreeNode> res = new NodeChildrenImpl<MonotonicTreeNode>(); |
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 | 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 | 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 | 169 public boolean add(MonotonicTreeNode _n) |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff
changeset
|
170 { |
15 | 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 | 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 | 178 NodeChildren<SingleNode> res = new NodeChildrenImpl<SingleNode>(); |
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 | 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 | 188 public MonotonicTreeNode remove(String _uuid) |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff
changeset
|
189 { |
15 | 190 SingleNode n = m_node.remove(_uuid); |
191 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,this); | |
192 } | |
193 | |
194 @Override | |
195 public MonotonicTreeNode remove(int _index) | |
196 { | |
197 SingleNode n = m_node.remove(_index); | |
16 | 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 | 206 |
207 @Override | |
208 public Map<ByteBuffer, ByteBuffer> asMap() | |
209 { | |
210 return m_node.asMap(); | |
211 } | |
212 | |
213 @Override | |
214 public Set<ByteBuffer> getKeySet() | |
215 { | |
216 return m_node.getKeySet(); | |
217 } | |
218 | |
219 @Override | |
220 public Set<String> getUUIDSet() | |
221 { | |
222 return m_node.getUUIDSet(); | |
223 } | |
224 | |
225 @Override | |
226 public MonotonicTreeNode get(String _uuid) | |
227 { | |
228 SingleNode n = m_node.get(_uuid); | |
229 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,this); | |
230 } | |
231 | |
232 @Override | |
233 public MonotonicTreeNode get(int _index) | |
234 { | |
235 SingleNode n = m_node.get(_index); | |
236 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,this); | |
237 } | |
238 | |
239 @Override | |
240 public MonotonicTreeNode replace(MonotonicTreeNode _newChild) | |
241 { | |
242 SingleNode n = m_node.replace(_newChild.getNode()); | |
243 return new OnMemoryMonotonicTreeNode((OnMemoryNode)n,(OnMemoryMonotonicTreeNode)null); | |
244 } | |
245 | |
246 @Override | |
247 public boolean contains(String _id) | |
248 { | |
249 return m_node.contains(_id); | |
250 } | |
251 | |
252 @Override | |
253 public boolean swap(String _uuid1, String _uuid2) | |
254 { | |
255 return m_node.swap(_uuid1,_uuid2); | |
256 } | |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff
changeset
|
257 } |