view src/treecms/proto/edit/type1/EditableNodeAPITreeBuilder.java @ 13:3bccd745f2e2

bug fix
author shoshi
date Sun, 29 Aug 2010 12:07:03 +0900
parents bb802051dab3
children
line wrap: on
line source

package treecms.proto.edit.type1;

import java.util.List;
import java.util.UUID;

import treecms.proto.api.NodeAPI;
import treecms.proto.api.NodeAPITreeBuilder;

public class EditableNodeAPITreeBuilder implements NodeAPITreeBuilder
{
	private NodeAPI m_root;
	private NodeAPI m_clone;
	
	public EditableNodeAPITreeBuilder(NodeAPI _root)
	{
		m_root = _root;
		m_clone = clone(_root);
	}
	
	private NodeAPI clone(NodeAPI _orig)
	{
		EditableNodeAPI clone = new EditableNodeAPI(generateUUID());
		clone.setClassName(_orig.getClassName());
		clone.setTitle(_orig.getTitle());
		clone.setOriginal(_orig);
		
		List<NodeAPI> children = _orig.getChildList();
		for(NodeAPI child : children){
			//System.out.println(child.getTitle());
			clone.addChild(clone(child));
		}
		
		return clone;
	}
	
	public void discard()
	{
		//discard changes.
		m_clone = clone(m_root);
	}
	
	public void commit()
	{
		//commit changes
	}
	
	public void push()
	{
		//push changes
	}
	
	public String generateUUID()
	{
		return Long.toString(System.currentTimeMillis());
	}
	
	@Override
	public NodeAPI getContents() {
		// TODO Auto-generated method stub
		return this.m_clone;
	}

	@Override
	public NodeAPI createNode() {
		// TODO Auto-generated method stub
		return new EditableNodeAPI(generateUUID());
	}

}