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