Class GraphComponent

  • Direct Known Subclasses:
    DirectedEdge, Edge, Node

    public abstract class GraphComponent
    extends Object
    The base class for all graph component classes. Maintains flags of use in generic graph algorithms. Provides two flags:
    • marked - typically this is used to indicate a state that persists for the course of the graph's lifetime. For instance, it can be used to indicate that a component has been logically deleted from the graph.
    • visited - this is used to indicate that a component has been processed or visited by an single graph algorithm. For instance, a breadth-first traversal of the graph might use this to indicate that a node has already been traversed. The visited flag may be set and cleared many times during the lifetime of a graph.

    Graph components support storing user context data. This will typically be used by client algorithms which use planar graphs.

    Version:
    1.7
    • Field Detail

      • isMarked

        protected boolean isMarked
      • isVisited

        protected boolean isVisited
    • Constructor Detail

      • GraphComponent

        public GraphComponent()
    • Method Detail

      • setVisited

        public static void setVisited​(Iterator i,
                                      boolean visited)
        Sets the Visited state for all GraphComponents in an Iterator
        Parameters:
        i - the Iterator to scan
        visited - the state to set the visited flag to
      • setMarked

        public static void setMarked​(Iterator i,
                                     boolean marked)
        Sets the Marked state for all GraphComponents in an Iterator
        Parameters:
        i - the Iterator to scan
        marked - the state to set the Marked flag to
      • getComponentWithVisitedState

        public static GraphComponent getComponentWithVisitedState​(Iterator i,
                                                                  boolean visitedState)
        Finds the first GraphComponent in a Iterator set which has the specified visited state.
        Parameters:
        i - an Iterator of GraphComponents
        visitedState - the visited state to test
        Returns:
        the first component found, or null if none found
      • isVisited

        public boolean isVisited()
        Tests if a component has been visited during the course of a graph algorithm
        Returns:
        true if the component has been visited
      • setVisited

        public void setVisited​(boolean isVisited)
        Sets the visited flag for this component.
        Parameters:
        isVisited - the desired value of the visited flag
      • isMarked

        public boolean isMarked()
        Tests if a component has been marked at some point during the processing involving this graph.
        Returns:
        true if the component has been marked
      • setMarked

        public void setMarked​(boolean isMarked)
        Sets the marked flag for this component.
        Parameters:
        isMarked - the desired value of the marked flag
      • setContext

        public void setContext​(Object data)
        Sets the user-defined data for this component.
        Parameters:
        data - an Object containing user-defined data
      • getContext

        public Object getContext()
        Gets the user-defined data for this component.
        Returns:
        the user-defined data
      • setData

        public void setData​(Object data)
        Sets the user-defined data for this component.
        Parameters:
        data - an Object containing user-defined data
      • getData

        public Object getData()
        Gets the user-defined data for this component.
        Returns:
        the user-defined data
      • isRemoved

        public abstract boolean isRemoved()
        Tests whether this component has been removed from its containing graph
        Returns:
        true if this component is removed