Class AbstractGraphIterator<V,E>

java.lang.Object
org.jgrapht.traverse.AbstractGraphIterator<V,E>
Type Parameters:
V - the graph vertex type
E - the graph edge type
All Implemented Interfaces:
Iterator<V>, GraphIterator<V,E>
Direct Known Subclasses:
CrossComponentIterator, DegeneracyOrderingIterator, LexBreadthFirstIterator, MaximumCardinalityIterator, TopologicalOrderIterator

public abstract class AbstractGraphIterator<V,E> extends Object implements GraphIterator<V,E>
An empty implementation of a graph iterator to minimize the effort required to implement graph iterators.
Author:
Barak Naveh
  • Field Details

    • nListeners

      protected int nListeners
    • reusableEdgeEvent

      protected final org.jgrapht.traverse.AbstractGraphIterator.FlyweightEdgeEvent<E> reusableEdgeEvent
    • reusableVertexEvent

      protected final org.jgrapht.traverse.AbstractGraphIterator.FlyweightVertexEvent<V> reusableVertexEvent
    • graph

      protected final Graph<V,E> graph
    • crossComponentTraversal

      protected boolean crossComponentTraversal
    • reuseEvents

      protected boolean reuseEvents
  • Constructor Details

    • AbstractGraphIterator

      public AbstractGraphIterator(Graph<V,E> graph)
      Create a new iterator
      Parameters:
      graph - the graph
  • Method Details

    • getGraph

      public Graph<V,E> getGraph()
      Get the graph being traversed.
      Returns:
      the graph being traversed
    • setCrossComponentTraversal

      public void setCrossComponentTraversal(boolean crossComponentTraversal)
      Sets the cross component traversal flag - indicates whether to traverse the graph across connected components.
      Parameters:
      crossComponentTraversal - if true traverses across connected components.
    • isCrossComponentTraversal

      public boolean isCrossComponentTraversal()
      Test whether this iterator is set to traverse the graph across connected components.
      Specified by:
      isCrossComponentTraversal in interface GraphIterator<V,E>
      Returns:
      true if traverses across connected components, otherwise false.
    • setReuseEvents

      public void setReuseEvents(boolean reuseEvents)
      Description copied from interface: GraphIterator
      Sets a value the reuseEvents flag. If the reuseEvents flag is set to true this class will reuse previously fired events and will not create a new object for each event. This option increases performance but should be used with care, especially in multithreaded environment.
      Specified by:
      setReuseEvents in interface GraphIterator<V,E>
      Parameters:
      reuseEvents - whether to reuse previously fired event objects instead of creating a new event object for each event.
    • isReuseEvents

      public boolean isReuseEvents()
      Description copied from interface: GraphIterator
      Tests whether the reuseEvents flag is set. If the flag is set to true this class will reuse previously fired events and will not create a new object for each event. This option increases performance but should be used with care, especially in multithreaded environment.
      Specified by:
      isReuseEvents in interface GraphIterator<V,E>
      Returns:
      the value of the reuseEvents flag.
    • addTraversalListener

      public void addTraversalListener(TraversalListener<V,E> l)
      Description copied from interface: GraphIterator
      Adds the specified traversal listener to this iterator.
      Specified by:
      addTraversalListener in interface GraphIterator<V,E>
      Parameters:
      l - the traversal listener to be added.
    • remove

      public void remove()
      Description copied from interface: GraphIterator
      Unsupported.
      Specified by:
      remove in interface GraphIterator<V,E>
      Specified by:
      remove in interface Iterator<V>
    • removeTraversalListener

      public void removeTraversalListener(TraversalListener<V,E> l)
      Description copied from interface: GraphIterator
      Removes the specified traversal listener from this iterator.
      Specified by:
      removeTraversalListener in interface GraphIterator<V,E>
      Parameters:
      l - the traversal listener to be removed.
    • fireConnectedComponentFinished

      protected void fireConnectedComponentFinished(ConnectedComponentTraversalEvent e)
      Informs all listeners that the traversal of the current connected component finished.
      Parameters:
      e - the connected component finished event.
    • fireConnectedComponentStarted

      protected void fireConnectedComponentStarted(ConnectedComponentTraversalEvent e)
      Informs all listeners that a traversal of a new connected component has started.
      Parameters:
      e - the connected component started event.
    • fireEdgeTraversed

      protected void fireEdgeTraversed(EdgeTraversalEvent<E> e)
      Informs all listeners that a the specified edge was visited.
      Parameters:
      e - the edge traversal event.
    • fireVertexTraversed

      protected void fireVertexTraversed(VertexTraversalEvent<V> e)
      Informs all listeners that a the specified vertex was visited.
      Parameters:
      e - the vertex traversal event.
    • fireVertexFinished

      protected void fireVertexFinished(VertexTraversalEvent<V> e)
      Informs all listeners that a the specified vertex was finished.
      Parameters:
      e - the vertex traversal event.
    • createVertexTraversalEvent

      protected VertexTraversalEvent<V> createVertexTraversalEvent(V vertex)
      Create a vertex traversal event.
      Parameters:
      vertex - the vertex
      Returns:
      the event
    • createEdgeTraversalEvent

      protected EdgeTraversalEvent<E> createEdgeTraversalEvent(E edge)
      Create an edge traversal event.
      Parameters:
      edge - the edge
      Returns:
      the event