view src/treecms/proto/simple/SimpleBrowser.java @ 44:cc66b6933d44

removed warnings
author shoshi
date Fri, 21 Jan 2011 16:35:57 +0900
parents 7392f7ed45d2
children
line wrap: on
line source

package treecms.proto.simple;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import treecms.proto.api.*;

public class SimpleBrowser implements Browser
{
	public static void main(String _args[])
	{
		SimpleBrowser browser = SimpleBrowser.getSingleton();
		Node node = browser.useContents();
		Node cloned = node.cloneNode();
		
		System.out.println(cloned.getID().toString());
		System.out.println(browser.useContents().getID().toString());
	}
	
	private static final SimpleBrowser m_instance = new SimpleBrowser();
	private Map<String,Node> m_table;
	
	private SimpleNode m_root;
	
	private SimpleBrowser()
	{
		m_table = new ConcurrentHashMap<String,Node>();
		m_root = createNode();
	}
	
	public static SimpleBrowser getSingleton()
	{
		return m_instance;
	}
	
	public void put(NodeID _id,Node _node)
	{
		m_table.put(_id.toString(),_node);
	}
	
	public Node get(NodeID _id)
	{
		return m_table.get(_id.toString());
	}
	
	public SimpleNode createNode()
	{
		SimpleNode node = new SimpleNode(new SimpleDecNodeID());
		m_table.put(node.getID().toString(),node);
		return node;
	}
	
	public SimpleNode cloneNode(SimpleNode _target)
	{
		SimpleNode cloned = new SimpleNode(_target.getID().update());
		cloned.setClassName(_target.getClassName());
		cloned.setTitle(_target.getTitle());
		
		for(String _key : _target.getAttributeKeys()){
			cloned.setAttribute(_key,_target.getAttribute(_key));
		}
		
		cloned.addChildren(_target.getChildren());
		
		m_table.put(cloned.getID().toString(),cloned);
		return cloned;
	}
	
	public SimpleLink createLink(Node _target)
	{
		SimpleLink link = new SimpleLink(new SimpleDecNodeID(),_target);
		m_table.put(link.getID().toString(),link);
		return link;
	}

	@Override
	public Node useContents()
	{
		NodeID tip = m_root.getID().getTip();
		return m_table.get(tip.toString());
	}
}