view src/main/java/jungle/impl/SimpleTreeNode.java @ 7:c3c65308a11b

removed some package and added Graph API
author shoshi <shoshi@cr.ie.u-ryukyu.ac.jp>
date Fri, 29 Jun 2012 00:03:12 +0900
parents 761d04aecfcb
children
line wrap: on
line source

package jungle.impl;

import jungle.core.Attributes;
import jungle.core.Children;
import jungle.core.Links;
import jungle.core.TreeGroup;
import jungle.core.TreeNode;
import jungle.core.graph.Graph;
import jungle.core.graph.Vertex;
import jungle.core.graph.Vertexes;

public class SimpleTreeNode implements TreeNode
{
	private final Graph graph;
	private final SimpleTreeGroup group;
	private final Vertex vertex;
	
	public SimpleTreeNode(SimpleTreeGroup _group,Vertex _vertex,Graph _graph)
	{
		group = _group;
		vertex = _vertex;
		graph = _graph;
		
		// initialize vertex
		vertex.createVertexes(Simples.TREENODE_CHILDREN_KEY);
		vertex.createVertexes(Simples.TREENODE_LINKS_KEY);
	}
	
	public TreeGroup getGroup()
	{
		return group;
	}
	
	public Vertex getVertex()
	{
		return vertex;
	}

	@Override
	public String get(String _key)
	{
		return vertex.getProperty(_key);
	}

	@Override
	public Children children()
	{
		Vertexes children = vertex.getVertexes(Simples.TREENODE_CHILDREN_KEY);
		return new SimpleChildren(group,children,graph);
	}

	@Override
	public Links links()
	{
		Vertexes links = vertex.getVertexes(Simples.TREENODE_LINKS_KEY);
		return new SimpleLinks(group,links,graph);
	}

	@Override
	public int hashCode()
	{
		return vertex.hashCode();
	}
	
	@Override
	public boolean equals(Object _obj)
	{
		if(_obj instanceof SimpleTreeNode){
			SimpleTreeNode converted = (SimpleTreeNode)_obj;
			if(converted.getGroup() == group){
				return converted.getVertex().equals(vertex);
			}
		}
		
		return false;
	}
}