view src/treecms/memory/OnMemoryTreeEditor.java @ 4:f5ed85be5640

finished treecms.cassandra.v1 implementation (not tested yet)
author shoshi
date Thu, 24 Feb 2011 21:30:18 +0900
parents 5fa718b63cd5
children 12604eb6b615
line wrap: on
line source

package treecms.memory;

import treecms.api.TreeEditor;
import treecms.merger.Merger;
import treecms.merger.ReplaceMerger;

public class OnMemoryTreeEditor extends OnMemoryTree implements TreeEditor
{
	OnMemoryTree m_tree;
	OnMemoryNode m_oldRoot;
	
	public OnMemoryTreeEditor(OnMemoryForest _forest,OnMemoryTree _tree)
	{
		super(_tree.m_root,_forest);
		m_oldRoot = m_root;
	}
	
	@Override
	public boolean commit(boolean _force)
	{
		if(!check() || _force){
			m_tree.m_root = m_root;
		}
		return false;
	}

	@Override
	public boolean pull()
	{
		m_root = m_tree.m_root;
		return true;
	}

	@Override
	public boolean check()
	{
		if(m_tree.m_root.getID().equals(m_oldRoot.getID())){
			return false;
		}
		return true;
	}

	@Override
	public void merge()
	{
		//call merger
		Merger merger = new ReplaceMerger();
		m_root = (OnMemoryNode)merger.merge(m_tree.m_root,m_root);
	}
}