diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/treecms/memory/OnMemoryNode.java	Wed Feb 16 21:08:32 2011 +0900
@@ -0,0 +1,94 @@
+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();
+		}
+		
+	}
+}