view src/treecms/memory/OnMemoryMonotonicTree.java @ 25:c1e7ec6b3d44

commit
author Shoshi TAMAKI <shoshi@cr.ie.u-ryukyu.ac.jp>
date Tue, 12 Jul 2011 14:39:35 +0900
parents 77a894c0b919
children 9cb971a68cc5
line wrap: on
line source

package treecms.memory;

import treecms.api.MonotonicTree;
import treecms.api.MonotonicTreeNode;
import treecms.tree.util.LockableNodeTable;

public class OnMemoryMonotonicTree implements MonotonicTree
{
	private final OnMemoryMonotonicTree m_tree;
	private final LockableNodeTable m_table;
	private final OnMemoryMonotonicTreeNode m_root;
	
	private OnMemoryMonotonicTree(OnMemoryNode _root,OnMemoryMonotonicTree _tree)
	{
		m_tree = _tree;
		m_table = new LockableNodeTable();
		m_table.register(_root);
		m_root = new OnMemoryMonotonicTreeNode(_root,null,m_table);
	}
	
	public static OnMemoryMonotonicTree createInstance(OnMemoryNode _root,OnMemoryMonotonicTree _tree)
	{
		OnMemoryMonotonicTree tree = new OnMemoryMonotonicTree(_root,_tree);
		return tree;
	}
	
	public OnMemoryNode get(String _fid)
	{
		OnMemoryNode node = (OnMemoryNode)m_table.tip(_fid);
		return node;
	}
	
	@Override
	public boolean commit(boolean _force)
	{
		if(m_tree == null){
			return true;
		}
		
		return true;
	}

	@Override
	public boolean pull()
	{
		return true;
	}

	@Override
	public boolean check()
	{
		if(m_tree != null){
			
		}
		return m_tree.getRoot().getNode().equals(m_root.getNode());
	}

	@Override
	public void merge()
	{
	}

	@Override
	public MonotonicTreeNode getRoot()
	{
		return m_root;
	}
}