org.geotools.graph.traverse
Interface GraphTraversal

All Known Implementing Classes:
BasicGraphTraversal

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.

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:
GraphWalker, GraphIterator, Graph

Field Summary
static int CONTINUE
          Signals the traversal to continue
static int KILL_BRANCH
          Signals the traversal to kill the current branch
static int STOP
          Signals the traversal to stop
static int SUSPEND
          Signals the traversal to suspend at some intermediate point
 
Method Summary
 Graph getGraph()
          Returns the graph being traversed.
 GraphIterator getIterator()
          Returns the iterator that specifies the order in which to visit graph components.
 GraphWalker getWalker()
          Returns the walker (visitor) traversing the graph of the graph.
 void init()
          Initializes the traversal.
 boolean isVisited(Graphable g)
           
 void setGraph(Graph graph)
          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 Detail

CONTINUE

public static final int CONTINUE
Signals the traversal to continue

See Also:
Constant Field Values

SUSPEND

public static final int SUSPEND
Signals the traversal to suspend at some intermediate point

See Also:
Constant Field Values

KILL_BRANCH

public static final int KILL_BRANCH
Signals the traversal to kill the current branch

See Also:
Constant Field Values

STOP

public static final int STOP
Signals the traversal to stop

See Also:
Constant Field Values
Method Detail

setGraph

public void setGraph(Graph graph)
Sets the graph being traversed.

Parameters:
graph - The graph whose components are being traversed.

getGraph

public Graph getGraph()
Returns the graph being traversed.

Returns:
The graph whose components are being traversed.
See Also:
Graph

setIterator

public void setIterator(GraphIterator iterator)
Sets the iterator that specifies the order in which visit graph components.

Parameters:
iterator - The iterator over the graph components.

getIterator

public GraphIterator getIterator()
Returns the iterator that specifies the order in which to visit graph components.

Returns:
The iterator over the graph components.
See Also:
GraphIterator

setWalker

public void setWalker(GraphWalker walker)
Sets the walker (visitor) traversing the graph.

Parameters:
walker - The walker being iterated over the components of the graph.

getWalker

public GraphWalker getWalker()
Returns the walker (visitor) traversing the graph of the graph.

Returns:
The walker being iterated over the components.

init

public void init()
Initializes the traversal.


traverse

public void traverse()
Starts or resumes a traversal over the components of a graph.


isVisited

public boolean isVisited(Graphable g)

setVisited

public void setVisited(Graphable g,
                       boolean visited)


Copyright © GeoTools. All Rights Reserved.