diff src/treecms/memory/OnMemoryNode.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 diff
--- a/src/treecms/memory/OnMemoryNode.java	Wed May 11 22:08:20 2011 +0900
+++ b/src/treecms/memory/OnMemoryNode.java	Tue May 17 18:44:14 2011 +0900
@@ -1,11 +1,5 @@
 package treecms.memory;
 
-import java.nio.ByteBuffer;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
 import treecms.api.Forest;
 import treecms.api.Node;
 import treecms.api.NodeData;
@@ -15,12 +9,10 @@
  * オンメモリ上でのNodeの実装です。 
  * @author shoshi
  */
-class OnMemoryNode implements Node
+class OnMemoryNode extends NodeData implements Node
 {
 	private OnMemoryForest m_forest;
-	
 	private NodeID m_id;
-	private NodeData m_data;
 	
 	/**
 	 * コンストラクタ
@@ -30,21 +22,11 @@
 	 */
 	public OnMemoryNode(OnMemoryForest _forest,NodeID _id,NodeData _newData)
 	{
+		super(_newData);
 		m_id = _id;
 		m_forest = _forest;
-		m_data = (_newData != null) ? _newData.deepCopy() : new NodeData();
 	}
-	
-	/*
-	 * Nodeの情報関連
-	 */
-	
-	@Override
-	public Forest getForest()
-	{
-		return m_forest;
-	}
-	
+
 	@Override
 	public NodeID getID()
 	{
@@ -54,113 +36,18 @@
 	@Override
 	public NodeData getData()
 	{
-		return m_data.deepCopy();
-	}
-	
-	/*
-	 * 子供関連のメソッド
-	 */
-	
-	@Override
-	public Iterator<Node> getChildren()
-	{
-		//Iteratorが変更不可なので、そのまま渡しても構わない
-		return m_data.getChildren();
-	}
-
-	@Override
-	public void addChild(Node _child)
-	{
-		m_data.addChild(_child);
-	}
-	
-	@Override
-	public void addChildren(List<Node> _child)
-	{
-		m_data.addChildren(_child);
-	}
-	
-	@Override
-	public void removeChild(Node _child)
-	{
-		m_data.removeChild(_child);
-	}
-	
-	@Override
-	public void removeChildren(List<Node> _children)
-	{
-		m_data.removeChildren(_children);
-	}
-	
-	@Override
-	public void clearChildren()
-	{
-		m_data.clearChildren();
-	}
-
-	/*
-	 * 要素関連のメソッド
-	 */
-
-	@Override
-	public ByteBuffer get(ByteBuffer _key)
-	{
-		return m_data.get(_key);
+		return new NodeData(this);
 	}
 
 	@Override
-	public Map<ByteBuffer,ByteBuffer> getAll()
-	{
-		return m_data.getAll();
-	}
-
-	@Override
-	public void put(ByteBuffer _key, ByteBuffer _value)
+	public Forest getForest()
 	{
-		m_data.put(_key,_value);
-	}
-
-	@Override
-	public void putAll(Map<ByteBuffer, ByteBuffer> _map)
-	{
-		m_data.putAll(_map);
+		return m_forest;
 	}
 
 	@Override
-	public void remove(ByteBuffer _key)
-	{
-		m_data.remove(_key);
-	}
-	
-	@Override
-	public void removeAll(Set<ByteBuffer> _keySet)
-	{
-		m_data.removeAll(_keySet);
-	}
-	
-	@Override
-	public void clear()
+	public Node cloneNode(NodeData _newData)
 	{
-		m_data.clear();
-	}
-	
-	@Override
-	public int hashCode()
-	{
-		return m_id.hashCode();
-	}
-	
-	@Override
-	public String toString()
-	{
-		return getID().toString();
-	}
-	
-	@Override
-	public Node cloneNode(NodeData _data)
-	{
-		NodeData newData = (_data != null) ? _data : m_data;
-		Node clone = m_forest.createNode(m_id.update(),newData);
-		return clone;
+		return m_forest.createNode(m_id,_newData);
 	}
 }