Package org.geotools.graph.traverse
Interface GraphTraversal
- All Known Implementing Classes:
BasicGraphTraversal
,StagedGraphTraversal
public interface GraphTraversal
Iterates a GraphWalker over the components of a Graph. The order in which components are iterated over is determined
by the GraphIterator class. The GraphTraversal is the mediator between the GraphWalker and the GraphIterator.
Upon each visitation, the GraphWalker communicates to the GraphTraversal through a series of return codes, each specifying a different action to perform at that point of the travesal. The following summarizes the meaning of the codes.
GraphTraversals are started with a call to traverse(). If the traversal is suspended at some intermediate point, an additional call to traverse() will resume the traversal.
Upon each visitation, the GraphWalker communicates to the GraphTraversal through a series of return codes, each specifying a different action to perform at that point of the travesal. The following summarizes the meaning of the codes.
Code | Action Taken |
---|---|
CONTINUE | The traversal continues as normal. |
SUSPEND | Suspends the traversal at some intermediate stage. This code should be returned if the traversal is intended to be resumed. |
KILL_BRANCH | Kills the current branch of the traversal. Depending on the iteration algorithm, returning this code may end the traversal. |
STOP | Stops the traversal. |
GraphTraversals are started with a call to traverse(). If the traversal is suspended at some intermediate point, an additional call to traverse() will resume the traversal.
- Author:
- Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final int
Signals the traversal to continue *static final int
Signals the traversal to kill the current branch *static final int
Signals the traversal to stop *static final int
Signals the traversal to suspend at some intermediate point * -
Method Summary
Modifier and TypeMethodDescriptiongetGraph()
Returns the graph being traversed.Returns the iterator that specifies the order in which to visit graph components.Returns the walker (visitor) traversing the graph of the graph.void
init()
Initialises the traversal.boolean
void
Sets the graph being traversed.void
setIterator
(GraphIterator iterator) Sets the iterator that specifies the order in which visit graph components.void
setVisited
(Graphable g, boolean visited) void
setWalker
(GraphWalker walker) Sets the walker (visitor) traversing the graph.void
traverse()
Starts or resumes a traversal over the components of a graph.
-
Field Details
-
CONTINUE
static final int CONTINUESignals the traversal to continue *- See Also:
-
SUSPEND
static final int SUSPENDSignals the traversal to suspend at some intermediate point *- See Also:
-
KILL_BRANCH
static final int KILL_BRANCHSignals the traversal to kill the current branch *- See Also:
-
STOP
static final int STOPSignals the traversal to stop *- See Also:
-
-
Method Details
-
setGraph
Sets the graph being traversed.- Parameters:
graph
- The graph whose components are being traversed.
-
getGraph
Graph getGraph()Returns the graph being traversed.- Returns:
- The graph whose components are being traversed.
- See Also:
-
setIterator
Sets the iterator that specifies the order in which visit graph components.- Parameters:
iterator
- The iterator over the graph components.
-
getIterator
GraphIterator getIterator()Returns the iterator that specifies the order in which to visit graph components.- Returns:
- The iterator over the graph components.
- See Also:
-
setWalker
Sets the walker (visitor) traversing the graph.- Parameters:
walker
- The walker being iterated over the components of the graph.
-
getWalker
GraphWalker getWalker()Returns the walker (visitor) traversing the graph of the graph.- Returns:
- The walker being iterated over the components.
-
init
void init()Initialises the traversal. -
traverse
void traverse()Starts or resumes a traversal over the components of a graph. -
isVisited
-
setVisited
-