Class BasicGraphTraversal
- Object
-
- BasicGraphTraversal
-
- All Implemented Interfaces:
GraphTraversal
- Direct Known Subclasses:
StagedGraphTraversal
public class BasicGraphTraversal extends Object implements GraphTraversal
A basic implementation of GraphTraversal.- Author:
- Justin Deoliveira, Refractions Research Inc, jdeolive@refractions.net
-
-
Field Summary
-
Fields inherited from interface GraphTraversal
CONTINUE, KILL_BRANCH, STOP, SUSPEND
-
-
Constructor Summary
Constructors Constructor Description BasicGraphTraversal(Graph graph, GraphWalker walker, GraphIterator iterator)Constructs a new graph traversal.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GraphgetGraph()Returns the graph being traversed.GraphIteratorgetIterator()Returns the iterator that specifies the order in which to visit graph components.GraphWalkergetWalker()Returns the walker (visitor) traversing the graph of the graph.voidinit()Resets the visited flag and counts of all nodes of the graph.booleanisVisited(Graphable g)voidsetGraph(Graph graph)Sets the graph being traversed.voidsetIterator(GraphIterator iterator)Sets the iterator and intializes it.voidsetVisited(Graphable g, boolean visited)voidsetWalker(GraphWalker walker)Sets the walker (visitor) traversing the graph.voidtraverse()Upon each iteration of the traversal, a component is returned from the iterator and passed to the visitor.
-
-
-
Constructor Detail
-
BasicGraphTraversal
public BasicGraphTraversal(Graph graph, GraphWalker walker, GraphIterator iterator)
Constructs a new graph traversal.- Parameters:
graph- The graph being traversed.walker- The walker being traversed over the components of the graph.iterator- The iterator specifying the order in which to visit components of the graph.
-
-
Method Detail
-
setGraph
public void setGraph(Graph graph)
Description copied from interface:GraphTraversalSets the graph being traversed.- Specified by:
setGraphin interfaceGraphTraversal- Parameters:
graph- The graph whose components are being traversed.- See Also:
GraphTraversal.setGraph(Graph)
-
getGraph
public Graph getGraph()
Description copied from interface:GraphTraversalReturns the graph being traversed.- Specified by:
getGraphin interfaceGraphTraversal- Returns:
- The graph whose components are being traversed.
- See Also:
GraphTraversal.getGraph()
-
setIterator
public void setIterator(GraphIterator iterator)
Sets the iterator and intializes it.- Specified by:
setIteratorin interfaceGraphTraversal- Parameters:
iterator- The iterator over the graph components.- See Also:
GraphIterator#init(Graph),GraphTraversal.setIterator(GraphIterator)
-
getIterator
public GraphIterator getIterator()
Description copied from interface:GraphTraversalReturns the iterator that specifies the order in which to visit graph components.- Specified by:
getIteratorin interfaceGraphTraversal- Returns:
- The iterator over the graph components.
- See Also:
GraphTraversal.getIterator()
-
setWalker
public void setWalker(GraphWalker walker)
Description copied from interface:GraphTraversalSets the walker (visitor) traversing the graph.- Specified by:
setWalkerin interfaceGraphTraversal- Parameters:
walker- The walker being iterated over the components of the graph.- See Also:
GraphTraversal.setWalker(GraphWalker)
-
getWalker
public GraphWalker getWalker()
Description copied from interface:GraphTraversalReturns the walker (visitor) traversing the graph of the graph.- Specified by:
getWalkerin interfaceGraphTraversal- Returns:
- The walker being iterated over the components.
- See Also:
GraphTraversal.getWalker()
-
init
public void init()
Resets the visited flag and counts of all nodes of the graph.- Specified by:
initin interfaceGraphTraversal- See Also:
GraphTraversal.init()
-
traverse
public void traverse()
Upon each iteration of the traversal, a component is returned from the iterator and passed to the visitor. The traversal interprets the return codes from the walker and performs the following actions.
Code Action Performed CONTINUE The traversal instructs the iterator to continue and starts the next stage of iteration. SUSPEND The traversal instructs the iterator to continue but does not start the next stage of iteration, returning from traverse(). KILL_BRANCH The traversal instructs the iterator to kill the current branch and starts the next stage of iteration. STOP The traversal does not instruct the iterator to continue and does not start the next of iteration, returning from traverse() - Specified by:
traversein interfaceGraphTraversal- See Also:
GraphTraversal.traverse()
-
setVisited
public void setVisited(Graphable g, boolean visited)
- Specified by:
setVisitedin interfaceGraphTraversal
-
isVisited
public boolean isVisited(Graphable g)
- Specified by:
isVisitedin interfaceGraphTraversal
-
-