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

      Fields 
      Modifier and Type Field Description
      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 *
    • Field Detail

      • CONTINUE

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

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

        static final int KILL_BRANCH
        Signals the traversal to kill the current branch *
        See Also:
        Constant Field Values
    • Method Detail

      • 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:
        Graph
      • 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:
        GraphIterator
      • 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)