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.

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

    Fields
    Modifier and Type
    Field
    Description
    static 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 Type
    Method
    Description
    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
    Initialises the traversal.
    boolean
     
    void
    setGraph(Graph graph)
    Sets the graph being traversed.
    void
    Sets the iterator that specifies the order in which visit graph components.
    void
    setVisited(Graphable g, boolean visited)
     
    void
    Sets the walker (visitor) traversing the graph.
    void
    Starts or resumes a traversal over the components of a graph.
  • Field Details

    • CONTINUE

      static final int CONTINUE
      Signals the traversal to continue *
      See Also:
    • SUSPEND

      static final int SUSPEND
      Signals the traversal to suspend at some intermediate point *
      See Also:
    • KILL_BRANCH

      static final int KILL_BRANCH
      Signals the traversal to kill the current branch *
      See Also:
    • STOP

      static final int STOP
      Signals the traversal to stop *
      See Also:
  • Method Details

    • setGraph

      void setGraph(Graph graph)
      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

      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

      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

      void setWalker(GraphWalker walker)
      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

      boolean isVisited(Graphable g)
    • setVisited

      void setVisited(Graphable g, boolean visited)