public class Walker extends Object implements Traverser
Traverser
which walks a graph, with no cycle
detection. Each iteration step moves from one node to an adjacent
node. The first node returned is the start node, and no
Edge
is traversed to reach it.Constructor and Description |
---|
Walker(Object startNode,
Graph graph,
org.apache.commons.collections.Predicate traverserPredicate)
Creates a new
Walker . |
Walker(Object startNode,
Graph graph,
org.apache.commons.collections.Transformer incidentEdgeGetter)
Creates a new
Walker . |
Walker(Object startNode,
OrientedForest forest)
Creates a new unmodifiable
Walker , which
traverses the ancestors of the specified
startNode . |
Walker(Object startNode,
org.apache.commons.collections.Transformer incidentEdgeGetter)
Creates a new unmodifiable
Walker . |
Modifier and Type | Method and Description |
---|---|
Graph.Edge |
getEdge()
Returns the
Edge which was traversed to get to
the last node returned by next() , or
null if no Edge was traversed. |
boolean |
hasNext() |
Object |
next() |
void |
remove()
Removes from the underlying
Graph the last node
returned by next() , effectively terminating this
iteration. |
void |
removeEdge()
|
public Walker(Object startNode, Graph graph, org.apache.commons.collections.Predicate traverserPredicate)
Walker
.public Walker(Object startNode, OrientedForest forest)
Walker
, which
traverses the ancestors of the specified
startNode
.public Walker(Object startNode, org.apache.commons.collections.Transformer incidentEdgeGetter)
Walker
.public void remove()
public Graph.Edge getEdge()
Traverser
Edge
which was traversed to get to
the last node returned by next()
, or
null
if no Edge
was traversed. This
call can be made only if remove()
or removeEdge()
has not been called after the last
call to next()
.public void removeEdge()
Traverser
Graph
the
Edge
that would be returned by getEdge()
(optional operation). If no Edge
was
traversed (as in the root of a breadth-first search), this
method throws a IllegalStateException
. This
method can be called only once per call to next()
. The behavior of a traverser is unspecified if the
underlying graph structure is modified while the traversal is
in progress in any way other than by calling this method or
remove()
.removeEdge
in interface Traverser
See the Plexus project home, hosted by SourceForge.
Copyright ? 1994-2006, by Phoenix Software Technologists, Inc. and others. All Rights Reserved. Use is subject to license terms.