Mercurial > hg > Members > shoshi > TreeCMSv2
annotate src/treecms/api/NodeData.java @ 14:8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
author | misaka |
---|---|
date | Tue, 17 May 2011 18:44:14 +0900 |
parents | c8601b0fa8a3 |
children | 22cd920986c5 |
rev | line source |
---|---|
2 | 1 package treecms.api; |
2 | |
8 | 3 import java.nio.ByteBuffer; |
2 | 4 import java.util.List; |
6 | 5 import java.util.Map; |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
2
diff
changeset
|
6 import java.util.Set; |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
7 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
8 import treecms.tree.util.NodeChildrenImpl; |
2 | 9 |
6 | 10 /** |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
11 * Node が保持するデータのスナップショットです.Node を大きく変更するときや新しく作成される場合に使用されます. |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
12 * 通常このクラスのインスタンスを Node から取得した場合,NodeData インスタンスに変更(set,add)を加えても元の Node に変更は反映されません. |
6 | 13 * その様に実装してください. |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
14 * |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
15 * このクラスは Node が保持するデータのうち 子供ノードのリスト・属性のマップ のみ保持しています.つまり,ノードが持っているはずの ID は保持していません. |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
16 * getID,getForest を呼び出すと UnsupportedOperationException をスローします. |
6 | 17 * @author shoshi |
18 */ | |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
19 public class NodeData<T extends Node<T>> implements NodeAttributes , NodeChildren<T> |
2 | 20 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
21 private NodeChildrenImpl<T> m_children; |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
22 private NodeAttributesImpl m_attrs; |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
2
diff
changeset
|
23 |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
24 public NodeData(NodeChildren<T> _children,NodeAttributes _attrs) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
25 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
26 m_children = new NodeChildrenImpl<T>(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
27 m_attrs = new NodeAttributesImpl(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
28 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
29 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
30 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
31 public List<T> getList() |
6 | 32 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
33 return m_children.getList(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
34 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
35 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
36 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
37 public Set<String> getUUIDSet() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
38 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
39 return m_children.getUUIDSet(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
40 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
41 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
42 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
43 public boolean add(T _child) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
44 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
45 return m_children.add(_child); |
6 | 46 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
47 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
48 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
49 public boolean addAll(NodeChildren<T> _children) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
50 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
51 return m_children.addAll(_children); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
52 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
53 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
54 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
55 public T get(String _uuid) |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
2
diff
changeset
|
56 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
57 return m_children.get(_uuid); |
4
f5ed85be5640
finished treecms.cassandra.v1 implementation (not tested yet)
shoshi
parents:
2
diff
changeset
|
58 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
59 |
11 | 60 @Override |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
61 public T get(int _index) |
11 | 62 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
63 return m_children.get(_index); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
64 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
65 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
66 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
67 public T remove(String _uuid) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
68 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
69 return m_children.remove(_uuid); |
11 | 70 } |
71 | |
72 @Override | |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
73 public T remove(int _index) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
74 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
75 return m_children.remove(_index); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
76 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
77 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
78 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
79 public T replace(T _newChild) |
11 | 80 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
81 return m_children.replace(_newChild); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
82 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
83 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
84 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
85 public boolean contains(String _id) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
86 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
87 return m_children.contains(_id); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
88 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
89 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
90 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
91 public boolean swap(String _uuid1, String _uuid2) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
92 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
93 return m_children.swap(_uuid1, _uuid2); |
11 | 94 } |
95 | |
96 @Override | |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
97 public void clearChildren() |
11 | 98 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
99 m_children.clearChildren(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
100 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
101 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
102 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
103 public Map<ByteBuffer, ByteBuffer> asMap() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
104 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
105 return m_attrs.asMap(); |
11 | 106 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
107 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
108 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
109 public Set<ByteBuffer> getKeySet() |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
110 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
111 return m_attrs.getKeySet(); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
112 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
113 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
114 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
115 public void put(ByteBuffer _name, ByteBuffer _value) |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
116 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
117 m_attrs.put(_name,_value); |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
118 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
119 |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
120 @Override |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
121 public void putAll(NodeAttributes _attrs) |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
122 { |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
123 m_attrs.putAll(_attrs); |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
124 } |
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
125 |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
126 @Override |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
127 public ByteBuffer get(ByteBuffer _name) |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
128 { |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
129 return m_attrs.get(_name); |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
130 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
131 |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
132 @Override |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
133 public NodeAttributes getAll() |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
134 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
135 return m_attrs.getAll(); |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
136 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
137 |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
138 @Override |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
139 public void remove(ByteBuffer _name) |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
140 { |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
141 m_attrs.remove(_name); |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
142 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
143 |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
144 @Override |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
145 public void removeAll(Set<ByteBuffer> _keySet) |
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
146 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
147 m_attrs.removeAll(_keySet); |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
148 } |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
149 |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
150 @Override |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
151 public void clearAttributes() |
12
fbbb7e414346
modified OnMemoryNode,OnMemoryTreeNode,OnMemoryMonotonicTreeNode
shoshi
parents:
11
diff
changeset
|
152 { |
14
8bf59f161b23
separete Node methods to NodeContext , NodeAttribute , NodeChildren
misaka
parents:
13
diff
changeset
|
153 m_attrs.clearAttributes(); |
13 | 154 } |
2 | 155 } |