- java.lang.Object
 - 
- org.jgrapht.traverse.AbstractGraphIterator<V,E>
 
 
- 
- Type Parameters:
 V- the graph vertex typeE- the graph edge type
- All Implemented Interfaces:
 java.util.Iterator<V>,GraphIterator<V,E>
- Direct Known Subclasses:
 CrossComponentIterator,DegeneracyOrderingIterator,LexBreadthFirstIterator,MaximumCardinalityIterator,RandomWalkIterator,TopologicalOrderIterator
public abstract class AbstractGraphIterator<V,E> extends java.lang.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 Summary
Fields Modifier and Type Field Description protected booleancrossComponentTraversalprotected Graph<V,E>graphprotected intnListenersprotected org.jgrapht.traverse.AbstractGraphIterator.FlyweightEdgeEvent<V,E>reusableEdgeEventprotected org.jgrapht.traverse.AbstractGraphIterator.FlyweightVertexEvent<V>reusableVertexEventprotected booleanreuseEvents 
- 
Constructor Summary
Constructors Constructor Description AbstractGraphIterator(Graph<V,E> graph)Create a new iterator 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTraversalListener(TraversalListener<V,E> l)Adds the specified traversal listener to this iterator.protected EdgeTraversalEvent<E>createEdgeTraversalEvent(E edge)Create an edge traversal event.protected VertexTraversalEvent<V>createVertexTraversalEvent(V vertex)Create a vertex traversal event.protected voidfireConnectedComponentFinished(ConnectedComponentTraversalEvent e)Informs all listeners that the traversal of the current connected component finished.protected voidfireConnectedComponentStarted(ConnectedComponentTraversalEvent e)Informs all listeners that a traversal of a new connected component has started.protected voidfireEdgeTraversed(EdgeTraversalEvent<E> e)Informs all listeners that a the specified edge was visited.protected voidfireVertexFinished(VertexTraversalEvent<V> e)Informs all listeners that a the specified vertex was finished.protected voidfireVertexTraversed(VertexTraversalEvent<V> e)Informs all listeners that a the specified vertex was visited.Graph<V,E>getGraph()Get the graph being traversed.booleanisCrossComponentTraversal()Test whether this iterator is set to traverse the graph across connected components.booleanisReuseEvents()Tests whether thereuseEventsflag is set.voidremove()Unsupported.voidremoveTraversalListener(TraversalListener<V,E> l)Removes the specified traversal listener from this iterator.voidsetCrossComponentTraversal(boolean crossComponentTraversal)Sets the cross component traversal flag - indicates whether to traverse the graph across connected components.voidsetReuseEvents(boolean reuseEvents)Sets a value thereuseEventsflag. 
 - 
 
- 
- 
Field Detail
- 
nListeners
protected int nListeners
 
- 
reusableEdgeEvent
protected final org.jgrapht.traverse.AbstractGraphIterator.FlyweightEdgeEvent<V,E> reusableEdgeEvent
 
- 
reusableVertexEvent
protected final org.jgrapht.traverse.AbstractGraphIterator.FlyweightVertexEvent<V> reusableVertexEvent
 
- 
crossComponentTraversal
protected boolean crossComponentTraversal
 
- 
reuseEvents
protected boolean reuseEvents
 
 - 
 
- 
Method Detail
- 
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- iftruetraverses across connected components.
 
- 
isCrossComponentTraversal
public boolean isCrossComponentTraversal()
Test whether this iterator is set to traverse the graph across connected components.- Specified by:
 isCrossComponentTraversalin interfaceGraphIterator<V,E>- Returns:
 trueif traverses across connected components, otherwisefalse.
 
- 
setReuseEvents
public void setReuseEvents(boolean reuseEvents)
Description copied from interface:GraphIteratorSets a value thereuseEventsflag. If thereuseEventsflag is set totruethis 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:
 setReuseEventsin interfaceGraphIterator<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:GraphIteratorTests whether thereuseEventsflag is set. If the flag is set totruethis 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:
 isReuseEventsin interfaceGraphIterator<V,E>- Returns:
 - the value of the 
reuseEventsflag. 
 
- 
addTraversalListener
public void addTraversalListener(TraversalListener<V,E> l)
Description copied from interface:GraphIteratorAdds the specified traversal listener to this iterator.- Specified by:
 addTraversalListenerin interfaceGraphIterator<V,E>- Parameters:
 l- the traversal listener to be added.
 
- 
remove
public void remove()
Description copied from interface:GraphIteratorUnsupported.- Specified by:
 removein interfaceGraphIterator<V,E>- Specified by:
 removein interfacejava.util.Iterator<V>
 
- 
removeTraversalListener
public void removeTraversalListener(TraversalListener<V,E> l)
Description copied from interface:GraphIteratorRemoves the specified traversal listener from this iterator.- Specified by:
 removeTraversalListenerin interfaceGraphIterator<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
 
 
 - 
 
 -