view src/main/java/jungle/impl/SimpleEditor.java @ 8:abed5bd92fcb

commit
author shoshi <shoshi@cr.ie.u-ryukyu.ac.jp>
date Tue, 03 Jul 2012 18:59:28 +0900
parents c3c65308a11b
children
line wrap: on
line source

package jungle.impl;

import java.util.Iterator;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicReference;
import jungle.core.Editor;
import jungle.core.Link;
import jungle.core.Tree;
import jungle.core.TreeGroup;
import jungle.core.TreeNode;
import jungle.core.Node;
import jungle.core.graph.Graph;
import jungle.core.graph.Vertex;
import jungle.util.Pair;

public class SimpleEditor implements Editor
{
	private final SimpleTreeGroup group;
	private final Graph graph;
	private AtomicReference<SimpleTree> current;
	
	public SimpleEditor(SimpleTree _tree,Graph _graph)
	{
		graph = _graph;
		group = (SimpleTreeGroup)_tree.getGroup();
		current = new AtomicReference<SimpleTree>(_tree);
	}

	public Tree commit()
	{
		return null;
	}

	public Tree rollback()
	{
		return null;
	}
	
	private boolean checkTreeNode(TreeNode _target)
	{
		if(_target instanceof SimpleTreeNode){
			SimpleTreeNode converted = (SimpleTreeNode)_target;
			return converted.getGroup().equals(group);
		}
		
		return false;
	}
	
	private SimpleTreeNode convertTreeNode(TreeNode _target)
	{
		if(_target instanceof SimpleTreeNode){
			return (SimpleTreeNode)_target;
		}
		
		return null;
	}
	
	private Vertex cloneTreeNode(Iterable<TreeNode> _path)
	{
		Iterator<TreeNode> itr = _path.iterator();
		String newID = group.newTreeID();
		
		if(!itr.hasNext()){
			return null;
		}
		
		SimpleTreeNode root = convertTreeNode(itr.next());
		if(root == null){
			return null;
		}
		
		Vertex rootVertex = root.getVertex();
		
		
		for(TreeNode node : _path){
			if(checkTreeNode(node)){
			}
		}
	}
	
	public Link createLinkAt(Iterable<TreeNode> _path,TreeNode _target, Tree _linkTarget)
	{
		
		throw new IllegalArgumentException("wrong tree group.");
	}

	public void removeLinkAt(TreeNode _target, Link _removeTarget)
	{
	}

	public TreeNode createChildAt(TreeNode _target)
	{
		return null;
	}

	public void removeChildAt(TreeNode _target, TreeNode _removeTarget)
	{
	}

	public String putPropertyAt(TreeNode _target, String _key, String _value)
	{
		return null;
	}

	public String removePropertyAt(TreeNode _target, String _key)
	{
		return null;
	}
}