view src/treecms/memory/OnMemoryNode.java @ 2:4a5ee88f02cf

added OnMemoryForest
author shoshi
date Wed, 16 Feb 2011 21:08:32 +0900
parents
children f5ed85be5640
line wrap: on
line source

package treecms.memory;

import java.util.LinkedList;
import java.util.List;
import treecms.api.Forest;
import treecms.api.Node;
import treecms.api.NodeData;
import treecms.api.NodeID;

public class OnMemoryNode implements Node
{
	NodeID m_id;
	OnMemoryForest m_forest;
	NodeData m_data;
	
	public OnMemoryNode(OnMemoryForest _forest,NodeID _id)
	{
		m_id = _id;
		m_forest = _forest;
		m_data = new NodeDataImpl();
	}
	
	@Override
	public Forest getForest()
	{
		return m_forest;
	}
	
	@Override
	public NodeID getID()
	{
		return m_id;
	}

	@Override
	public NodeData getData()
	{
		return m_data;
	}

	@Override
	public NodeData newData()
	{
		return new NodeDataImpl();
	}

	class NodeDataImpl implements NodeData
	{
		List<Node> m_children;
		String m_value;
		
		public NodeDataImpl()
		{
			m_children = new LinkedList<Node>();
		}
		
		@Override
		public List<Node> list()
		{
			return m_children;
		}
		
		@Override
		public String get()
		{
			return m_value;
		}

		@Override
		public void set(String _str)
		{
			m_value = _str;
		}

		@Override
		public void add(List<Node> _child)
		{
			m_children.addAll(_child);
		}

		@Override
		public void del(List<Node> _child)
		{
			m_children.removeAll(_child);
		}

		@Override
		public void clear()
		{
			m_children.clear();
		}
		
	}
}