Mercurial > hg > Members > tatsuki > bench > jungle-core
view src/main/java/jungle/impl/SimpleChildren.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 java.util.Iterator; import jungle.core.Children; 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 SimpleChildren implements Children { private final SimpleTreeGroup group; private final Graph graph; private final Vertexes children; public SimpleChildren(SimpleTreeGroup _group,Vertexes _children,Graph _graph) { graph = _graph; group = _group; children = _children; } public Iterator<TreeNode> iterator() { return new TreeNodeIteratorWrapper(children.iterator()); } private class TreeNodeIteratorWrapper implements Iterator<TreeNode> { private Iterator<Vertex> iterator; public TreeNodeIteratorWrapper(Iterator<Vertex> _iterator) { iterator = _iterator; } @Override public boolean hasNext() { return iterator.hasNext(); } @Override public TreeNode next() { Vertex nextVertex = iterator.next(); if(nextVertex != null){ return new SimpleTreeNode(group,nextVertex,graph); } return null; } @Override public void remove() { throw new UnsupportedOperationException("removing is not supported"); } } public boolean contains(TreeNode _treeNode) { if(_treeNode instanceof SimpleTreeNode){ SimpleTreeNode converted = (SimpleTreeNode)_treeNode; Vertex vertex = converted.getVertex(); if(converted.getGroup().equals(group)){ return children.contains(vertex); } } return false; } public TreeNode getAt(int _position) { if(children.size() < _position || _position < 0){ throw new IndexOutOfBoundsException("invalid position value."); } Vertex vertex = children.at(_position); return new SimpleTreeNode(group,vertex,graph); } public int size() { return children.size(); } @Override public int hashCode() { return children.hashCode(); } @Override public boolean equals(Object _obj) { if(_obj instanceof SimpleChildren){ SimpleChildren target = (SimpleChildren)_obj; return target.equals(children); } return false; } }