view 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 source

package treecms.memory;

import treecms.api.Forest;
import treecms.api.Node;
import treecms.api.NodeData;
import treecms.api.NodeID;

/**
 * オンメモリ上でのNodeの実装です。 
 * @author shoshi
 */
class OnMemoryNode extends NodeData implements Node
{
	private OnMemoryForest m_forest;
	private NodeID m_id;
	
	/**
	 * コンストラクタ
	 * @param _forest このNodeが属するForestです.
	 * @param _id このNodeのNodeIDです.
	 * @param _newData このNodeに割り当てるNodeDataです.防御的にコピーします.
	 */
	public OnMemoryNode(OnMemoryForest _forest,NodeID _id,NodeData _newData)
	{
		super(_newData);
		m_id = _id;
		m_forest = _forest;
	}

	@Override
	public NodeID getID()
	{
		return m_id;
	}

	@Override
	public NodeData getData()
	{
		return new NodeData(this);
	}

	@Override
	public Forest getForest()
	{
		return m_forest;
	}

	@Override
	public Node cloneNode(NodeData _newData)
	{
		return m_forest.createNode(m_id,_newData);
	}
}