Mercurial > hg > Members > shoshi > TreeCMSv2
view 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 |
line wrap: on
line source
package treecms.api; import java.nio.ByteBuffer; import java.util.List; import java.util.Map; import java.util.Set; import treecms.tree.util.NodeChildrenImpl; /** * Node が保持するデータのスナップショットです.Node を大きく変更するときや新しく作成される場合に使用されます. * 通常このクラスのインスタンスを Node から取得した場合,NodeData インスタンスに変更(set,add)を加えても元の Node に変更は反映されません. * その様に実装してください. * * このクラスは Node が保持するデータのうち 子供ノードのリスト・属性のマップ のみ保持しています.つまり,ノードが持っているはずの ID は保持していません. * getID,getForest を呼び出すと UnsupportedOperationException をスローします. * @author shoshi */ public class NodeData<T extends Node<T>> implements NodeAttributes , NodeChildren<T> { private NodeChildrenImpl<T> m_children; private NodeAttributesImpl m_attrs; public NodeData(NodeChildren<T> _children,NodeAttributes _attrs) { m_children = new NodeChildrenImpl<T>(); m_attrs = new NodeAttributesImpl(); } @Override public List<T> getList() { return m_children.getList(); } @Override public Set<String> getUUIDSet() { return m_children.getUUIDSet(); } @Override public boolean add(T _child) { return m_children.add(_child); } @Override public boolean addAll(NodeChildren<T> _children) { return m_children.addAll(_children); } @Override public T get(String _uuid) { return m_children.get(_uuid); } @Override public T get(int _index) { return m_children.get(_index); } @Override public T remove(String _uuid) { return m_children.remove(_uuid); } @Override public T remove(int _index) { return m_children.remove(_index); } @Override public T replace(T _newChild) { return m_children.replace(_newChild); } @Override public boolean contains(String _id) { return m_children.contains(_id); } @Override public boolean swap(String _uuid1, String _uuid2) { return m_children.swap(_uuid1, _uuid2); } @Override public void clearChildren() { m_children.clearChildren(); } @Override public Map<ByteBuffer, ByteBuffer> asMap() { return m_attrs.asMap(); } @Override public Set<ByteBuffer> getKeySet() { return m_attrs.getKeySet(); } @Override public void put(ByteBuffer _name, ByteBuffer _value) { m_attrs.put(_name,_value); } @Override public void putAll(NodeAttributes _attrs) { m_attrs.putAll(_attrs); } @Override public ByteBuffer get(ByteBuffer _name) { return m_attrs.get(_name); } @Override public NodeAttributes getAll() { return m_attrs.getAll(); } @Override public void remove(ByteBuffer _name) { m_attrs.remove(_name); } @Override public void removeAll(Set<ByteBuffer> _keySet) { m_attrs.removeAll(_keySet); } @Override public void clearAttributes() { m_attrs.clearAttributes(); } }