## com.vividsolutions.jts.planargraph
Class GraphComponent

    java.lang.Object
      com.vividsolutions.jts.planargraph.GraphComponent

Direct Known Subclasses:
  DirectedEdge, Edge, Node

public abstract class GraphComponent
extends java.lang.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 Summary
  `protected boolean` `isMarked`
  `protected boolean` `isVisited`

  Constructor Summary
  `GraphComponent()`

  Method Summary
  `static GraphComponent` `getComponentWithVisitedState(java.util.Iterator i, boolean visitedState)` Finds the first `GraphComponent` in a `Iterator` set which has the specified visited state.
  `java.lang.Object` `getContext()` Gets the user-defined data for this component.
  `java.lang.Object` `getData()` Gets the user-defined data for this component.
  `boolean` `isMarked()` Tests if a component has been marked at some point during the processing involving this graph.
  `abstract boolean` `isRemoved()` Tests whether this component has been removed from its containing graph
  `boolean` `isVisited()` Tests if a component has been visited during the course of a graph algorithm
  `void` `setContext(java.lang.Object data)` Sets the user-defined data for this component.
  `void` `setData(java.lang.Object data)` Sets the user-defined data for this component.
  `void` `setMarked(boolean isMarked)` Sets the marked flag for this component.
  `static void` `setMarked(java.util.Iterator i, boolean marked)` Sets the Marked state for all `GraphComponent`s in an `Iterator`
  `void` `setVisited(boolean isVisited)` Sets the visited flag for this component.
  `static void` `setVisited(java.util.Iterator i, boolean visited)` Sets the Visited state for all `GraphComponent`s in an `Iterator`

  Methods inherited from class java.lang.Object
  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  Field Detail

  ### isMarked

      protected boolean isMarked

  ### isVisited

      protected boolean isVisited

  Constructor Detail

  ### GraphComponent

      public GraphComponent()

  Method Detail

  ### setVisited

      public static void setVisited(java.util.Iterator i,
                                    boolean visited)

    Sets the Visited state for all `GraphComponent`s in an `Iterator`

    Parameters:
      `i` - the Iterator to scan
      `visited` - the state to set the visited flag to

  ### setMarked

      public static void setMarked(java.util.Iterator i,
                                   boolean marked)

    Sets the Marked state for all `GraphComponent`s in an `Iterator`

    Parameters:
      `i` - the Iterator to scan
      `marked` - the state to set the Marked flag to

  ### getComponentWithVisitedState

      public static GraphComponent getComponentWithVisitedState(java.util.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(java.lang.Object data)

    Sets the user-defined data for this component.

    Parameters:
      `data` - an Object containing user-defined data

  ### getContext

      public java.lang.Object getContext()

    Gets the user-defined data for this component.

    Returns:
      the user-defined data

  ### setData

      public void setData(java.lang.Object data)

    Sets the user-defined data for this component.

    Parameters:
      `data` - an Object containing user-defined data

  ### getData

      public java.lang.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