annotate src/treecms/memory/OnMemoryMonotonicTreeNode.java @ 27:aecc55e87143 default tip

test commit
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Thu, 18 Aug 2011 17:37:03 +0900
parents 9cb971a68cc5
children
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;
22
shoshi
parents: 21
diff changeset
4 import java.util.ArrayList;
shoshi
parents: 21
diff changeset
5 import java.util.Collections;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
6 import java.util.Iterator;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
7 import java.util.List;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
8 import java.util.Map;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
9 import java.util.Set;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
10 import treecms.api.MonotonicTreeNode;
21
shoshi
parents: 20
diff changeset
11 import treecms.api.Node;
15
misaka
parents: 14
diff changeset
12 import treecms.api.NodeAttributes;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
13 import treecms.api.NodeID;
16
shoshi
parents: 15
diff changeset
14 import treecms.tree.util.NodeData;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
15
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
16 public class OnMemoryMonotonicTreeNode implements MonotonicTreeNode
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
17 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
18 private final OnMemoryMonotonicTreeNode m_parent;
27
aecc55e87143 test commit
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
19 private volatile OnMemoryNode m_node;
23
shoshi
parents: 22
diff changeset
20
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
21 public OnMemoryMonotonicTreeNode(OnMemoryNode _node,OnMemoryMonotonicTreeNode _parent)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
22 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
23 m_node = _node;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
24 m_parent = _parent;
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
25 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
26
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
27 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
28 public NodeID getID()
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
29 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
30 return m_node.getID();
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
31 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
32
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
33 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
34 public MonotonicTreeNode getParent()
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
35 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
36 return m_parent;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
37 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
38
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
39 @Override
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
40 public ByteBuffer get(ByteBuffer _key)
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
41 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
42 return m_node.get(_key);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
43 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
44
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
45 @Override
15
misaka
parents: 14
diff changeset
46 public NodeAttributes getAll()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
47 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
48 return m_node.getAll();
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
49 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
50
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
51 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
52 public void put(ByteBuffer _key, ByteBuffer _value)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
53 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
54 NodeData<Node> d = new NodeData<Node>(m_node,m_node);
17
shoshi
parents: 16
diff changeset
55 d.put(_key,_value);
shoshi
parents: 16
diff changeset
56
shoshi
parents: 16
diff changeset
57 cloneAndTransmit(d);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
58 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
59
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
60 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
61 public void putAll(NodeAttributes _map)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
62 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
63 NodeData<Node> d = new NodeData<Node>(m_node,m_node);
17
shoshi
parents: 16
diff changeset
64 d.putAll(_map);
shoshi
parents: 16
diff changeset
65
shoshi
parents: 16
diff changeset
66 cloneAndTransmit(d);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
67 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
68
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
69 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
70 public void remove(ByteBuffer _key)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
71 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
72 NodeData<Node> d = new NodeData<Node>(m_node,m_node);
17
shoshi
parents: 16
diff changeset
73 d.remove(_key);
shoshi
parents: 16
diff changeset
74
shoshi
parents: 16
diff changeset
75 cloneAndTransmit(d);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
76 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
77
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
78 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
79 public void removeAll(Set<ByteBuffer> _keys)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
80 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
81 NodeData<Node> d = new NodeData<Node>(m_node,m_node);
16
shoshi
parents: 15
diff changeset
82 d.removeAll(_keys);
shoshi
parents: 15
diff changeset
83
shoshi
parents: 15
diff changeset
84 cloneAndTransmit(d);
12
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
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
88 public void clearAttributes()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
89 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
90 NodeData<Node> d = new NodeData<Node>(m_node,m_node);
16
shoshi
parents: 15
diff changeset
91 d.clearAttributes();
shoshi
parents: 15
diff changeset
92
shoshi
parents: 15
diff changeset
93 cloneAndTransmit(d);
shoshi
parents: 15
diff changeset
94 }
shoshi
parents: 15
diff changeset
95
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
96 public void cloneAndTransmit(NodeData<Node> _d)
16
shoshi
parents: 15
diff changeset
97 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
98 NodeID newID = m_node.getID().update();
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
99 OnMemoryNode clone = new OnMemoryNode(newID,_d);
23
shoshi
parents: 22
diff changeset
100
shoshi
parents: 22
diff changeset
101 OnMemoryMonotonicTreeNode parent = (OnMemoryMonotonicTreeNode)getParent();
shoshi
parents: 22
diff changeset
102 if(parent != null){
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
103 parent.transmit(m_node,clone);
23
shoshi
parents: 22
diff changeset
104 }
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
105
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
106 m_node = clone;
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
107 }
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
108
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
109 public boolean transmit(Node _orig,Node _edit)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
110 {
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
111 NodeData<Node> d = new NodeData<Node>(m_node,m_node);
22
shoshi
parents: 21
diff changeset
112 d.replace(_edit);
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
113 NodeID newID = m_node.getID().update();
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
114 OnMemoryNode clone = new OnMemoryNode(newID,d);
22
shoshi
parents: 21
diff changeset
115
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
116 m_node = clone;
22
shoshi
parents: 21
diff changeset
117 OnMemoryMonotonicTreeNode parent = (OnMemoryMonotonicTreeNode)getParent();
shoshi
parents: 21
diff changeset
118 if(parent != null){
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
119 return m_parent.transmit(m_node,clone);
27
aecc55e87143 test commit
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
120 }else{
aecc55e87143 test commit
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
121
20
shoshi
parents: 17
diff changeset
122 }
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
123
22
shoshi
parents: 21
diff changeset
124 return true;
20
shoshi
parents: 17
diff changeset
125 }
shoshi
parents: 17
diff changeset
126
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
127 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
128 public Node getNode()
21
shoshi
parents: 20
diff changeset
129 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
130 return m_node;
21
shoshi
parents: 20
diff changeset
131 }
shoshi
parents: 20
diff changeset
132
shoshi
parents: 20
diff changeset
133 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
134 public List<MonotonicTreeNode> getList()
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
135 {
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
136 //NodeのリストよりMonotonicTreeNodeのリストを作成する.
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
137 OnMemoryNode node = (OnMemoryNode)getNode();
22
shoshi
parents: 21
diff changeset
138 int size = node.getList().size();
shoshi
parents: 21
diff changeset
139 ArrayList<MonotonicTreeNode> list = new ArrayList<MonotonicTreeNode>(size);
shoshi
parents: 21
diff changeset
140 for(Iterator<Node> it = node.getList().iterator();it.hasNext();){
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
141 OnMemoryNode n = (OnMemoryNode)it.next();
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
142 OnMemoryMonotonicTreeNode tn = new OnMemoryMonotonicTreeNode(n,this);
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
143 list.add(tn);
17
shoshi
parents: 16
diff changeset
144 }
shoshi
parents: 16
diff changeset
145
23
shoshi
parents: 22
diff changeset
146 return Collections.unmodifiableList(list);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
147 }
22
shoshi
parents: 21
diff changeset
148
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
149 @Override
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
150 public MonotonicTreeNode remove(int _index)
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
151 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
152 OnMemoryNode n = (OnMemoryNode)getNode();
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
153 NodeData<Node> d = new NodeData<Node>(n,n);
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
154 OnMemoryNode deleted = (OnMemoryNode)d.remove(_index);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
155
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
156 if(deleted != null){
17
shoshi
parents: 16
diff changeset
157 cloneAndTransmit(d);
22
shoshi
parents: 21
diff changeset
158
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
159 OnMemoryMonotonicTreeNode tn = new OnMemoryMonotonicTreeNode(deleted,null);
22
shoshi
parents: 21
diff changeset
160 return tn;
17
shoshi
parents: 16
diff changeset
161 }
shoshi
parents: 16
diff changeset
162
shoshi
parents: 16
diff changeset
163 return null;
15
misaka
parents: 14
diff changeset
164 }
22
shoshi
parents: 21
diff changeset
165
15
misaka
parents: 14
diff changeset
166 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
167 public void clearChildren()
15
misaka
parents: 14
diff changeset
168 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
169 OnMemoryNode node = (OnMemoryNode)getNode();
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
170 if(node.getList().size() == 0){
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
171 return;
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
172 }
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
173
22
shoshi
parents: 21
diff changeset
174 NodeData<Node> d = new NodeData<Node>(node,node);
20
shoshi
parents: 17
diff changeset
175 d.clearChildren();
17
shoshi
parents: 16
diff changeset
176
shoshi
parents: 16
diff changeset
177 cloneAndTransmit(d);
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
178 }
16
shoshi
parents: 15
diff changeset
179
shoshi
parents: 15
diff changeset
180 @Override
shoshi
parents: 15
diff changeset
181 public Map<ByteBuffer, ByteBuffer> asMap()
shoshi
parents: 15
diff changeset
182 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
183 OnMemoryNode node = (OnMemoryNode)getNode();
22
shoshi
parents: 21
diff changeset
184 return node.asMap();
16
shoshi
parents: 15
diff changeset
185 }
shoshi
parents: 15
diff changeset
186
shoshi
parents: 15
diff changeset
187 @Override
shoshi
parents: 15
diff changeset
188 public Set<ByteBuffer> getKeySet()
shoshi
parents: 15
diff changeset
189 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
190 OnMemoryNode node = (OnMemoryNode)getNode();
22
shoshi
parents: 21
diff changeset
191 return node.getKeySet();
16
shoshi
parents: 15
diff changeset
192 }
shoshi
parents: 15
diff changeset
193
shoshi
parents: 15
diff changeset
194 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
195 public MonotonicTreeNode get(int _index)
16
shoshi
parents: 15
diff changeset
196 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
197 OnMemoryNode node = (OnMemoryNode)getNode();
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
198 OnMemoryMonotonicTreeNode tn = new OnMemoryMonotonicTreeNode(node,this);
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
199 return tn;
16
shoshi
parents: 15
diff changeset
200 }
shoshi
parents: 15
diff changeset
201
shoshi
parents: 15
diff changeset
202 @Override
20
shoshi
parents: 17
diff changeset
203 public boolean contains(NodeID _id)
16
shoshi
parents: 15
diff changeset
204 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
205 OnMemoryNode node = (OnMemoryNode)getNode();
22
shoshi
parents: 21
diff changeset
206 return node.contains(_id);
16
shoshi
parents: 15
diff changeset
207 }
shoshi
parents: 15
diff changeset
208
shoshi
parents: 15
diff changeset
209 @Override
20
shoshi
parents: 17
diff changeset
210 public boolean swap(String _fid1,String _fid2)
shoshi
parents: 17
diff changeset
211 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
212 OnMemoryNode node = (OnMemoryNode)getNode();
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
213 NodeData<Node> d = new NodeData<Node>(node,node);
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
214
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
215 if(d.swap(_fid1,_fid2)){
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
216 cloneAndTransmit(d);
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
217
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
218 return true;
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
219 }
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
220
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
221 return false;
20
shoshi
parents: 17
diff changeset
222 }
shoshi
parents: 17
diff changeset
223
shoshi
parents: 17
diff changeset
224 @Override
shoshi
parents: 17
diff changeset
225 public Set<String> getFamilyIDSet()
shoshi
parents: 17
diff changeset
226 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
227 Set<String> fids = m_node.getFamilyIDSet();
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
228 return fids;
20
shoshi
parents: 17
diff changeset
229 }
shoshi
parents: 17
diff changeset
230
shoshi
parents: 17
diff changeset
231 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
232 public MonotonicTreeNode get(String _fid)
16
shoshi
parents: 15
diff changeset
233 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
234 OnMemoryNode node = (OnMemoryNode)m_node.get(_fid);
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
235 OnMemoryMonotonicTreeNode mono = new OnMemoryMonotonicTreeNode(node,this);
20
shoshi
parents: 17
diff changeset
236 return mono;
shoshi
parents: 17
diff changeset
237 }
shoshi
parents: 17
diff changeset
238
shoshi
parents: 17
diff changeset
239 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
240 public MonotonicTreeNode remove(String _fid)
20
shoshi
parents: 17
diff changeset
241 {
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
242 OnMemoryNode node = (OnMemoryNode)getNode();
22
shoshi
parents: 21
diff changeset
243
shoshi
parents: 21
diff changeset
244 NodeData<Node> d = new NodeData<Node>(node,node);
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
245 OnMemoryNode deleted = (OnMemoryNode)d.remove(_fid);
20
shoshi
parents: 17
diff changeset
246
shoshi
parents: 17
diff changeset
247 cloneAndTransmit(d);
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
248 return new OnMemoryMonotonicTreeNode(deleted,null);
22
shoshi
parents: 21
diff changeset
249 }
shoshi
parents: 21
diff changeset
250
shoshi
parents: 21
diff changeset
251 @Override
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
252 public MonotonicTreeNode create(NodeAttributes _attr)
22
shoshi
parents: 21
diff changeset
253 {
shoshi
parents: 21
diff changeset
254 NodeID newID = getNode().getID().create();
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
255 OnMemoryNode newNode = new OnMemoryNode(newID,new NodeData<Node>(null,_attr));
20
shoshi
parents: 17
diff changeset
256
22
shoshi
parents: 21
diff changeset
257 OnMemoryNode thisNode = (OnMemoryNode)getNode();
shoshi
parents: 21
diff changeset
258 NodeData<Node> d = new NodeData<Node>(thisNode,thisNode);
shoshi
parents: 21
diff changeset
259 d.add(newNode);
23
shoshi
parents: 22
diff changeset
260 cloneAndTransmit(d);
shoshi
parents: 22
diff changeset
261
26
9cb971a68cc5 added CachedForest.java
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 25
diff changeset
262 OnMemoryMonotonicTreeNode tn = new OnMemoryMonotonicTreeNode(newNode,this);
23
shoshi
parents: 22
diff changeset
263 return tn;
16
shoshi
parents: 15
diff changeset
264 }
25
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
265
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
266 @Override
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
267 public String toString()
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
268 {
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
269 return m_node.toString();
Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
270 }
12
fbbb7e414346 modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
diff changeset
271 }