org._3pq.jgrapht.traverse
Class CrossComponentIterator
java.lang.Object
|
+--org._3pq.jgrapht.traverse.AbstractGraphIterator
|
+--org._3pq.jgrapht.traverse.CrossComponentIterator
- All Implemented Interfaces:
- GraphIterator, java.util.Iterator
- Direct Known Subclasses:
- BreadthFirstIterator, ClosestFirstIterator, DepthFirstIterator
- public abstract class CrossComponentIterator
- extends AbstractGraphIterator
Provides a cross-connected-component traversal functionality for iterator
subclasses.
- Since:
- Jan 31, 2004
- Author:
- Barak Naveh
Method Summary |
protected abstract void |
encounterVertex(java.lang.Object vertex,
Edge edge)
Update data structures the first time we see a vertex. |
protected abstract void |
encounterVertexAgain(java.lang.Object vertex,
Edge edge)
Called whenever we re-encounter a vertex. |
protected java.lang.Object |
getSeenData(java.lang.Object vertex)
Access the data stored for a seen vertex. |
boolean |
hasNext()
|
protected abstract boolean |
isConnectedComponentExhausted()
Returns true if there are no more uniterated vertices in the
currently iterated connected component; false otherwise. |
java.lang.Object |
next()
|
protected abstract java.lang.Object |
provideNextVertex()
Returns the vertex to be returned in the following call to the iterator
next method. |
protected java.lang.Object |
putSeenData(java.lang.Object vertex,
java.lang.Object data)
Stores iterator-dependent data for a vertex that has been seen. |
Methods inherited from class org._3pq.jgrapht.traverse.AbstractGraphIterator |
addTraversalListener, fireConnectedComponentFinished, fireConnectedComponentStarted, fireEdgeTraversed, fireVertexTraversed, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setCrossComponentTraversal, setReuseEvents |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
CrossComponentIterator
public CrossComponentIterator(Graph g,
java.lang.Object startVertex)
- Creates a new iterator for the specified graph. Iteration will start at
the specified start vertex. If the specified start vertex is
null
, Iteration will start at an arbitrary graph vertex.
- Parameters:
g
- the graph to be iterated.startVertex
- the vertex iteration to be started.- Throws:
NullPointerException
- java.lang.IllegalArgumentException
-
hasNext
public boolean hasNext()
- See Also:
Iterator.hasNext()
next
public java.lang.Object next()
- See Also:
Iterator.next()
isConnectedComponentExhausted
protected abstract boolean isConnectedComponentExhausted()
- Returns true if there are no more uniterated vertices in the
currently iterated connected component; false otherwise.
- Returns:
- true if there are no more uniterated vertices in the
currently iterated connected component; false
otherwise.
encounterVertex
protected abstract void encounterVertex(java.lang.Object vertex,
Edge edge)
- Update data structures the first time we see a vertex.
- Parameters:
vertex
- the vertex encounterededge
- the edge via which the vertex was encountered, or null if
the vertex is a starting point
provideNextVertex
protected abstract java.lang.Object provideNextVertex()
- Returns the vertex to be returned in the following call to the iterator
next
method.
- Returns:
- the next vertex to be returned by this iterator.
getSeenData
protected java.lang.Object getSeenData(java.lang.Object vertex)
- Access the data stored for a seen vertex.
- Parameters:
vertex
- a vertex which has already been seen.- Returns:
- data associated with the seen vertex or
null
if no
data was associated with the vertex. A null
return
can also indicate that the vertex was explicitly associated
with null
.
encounterVertexAgain
protected abstract void encounterVertexAgain(java.lang.Object vertex,
Edge edge)
- Called whenever we re-encounter a vertex. The default implementation
does nothing.
- Parameters:
vertex
- the vertex re-encounterededge
- the edge via which the vertex was re-encountered
putSeenData
protected java.lang.Object putSeenData(java.lang.Object vertex,
java.lang.Object data)
- Stores iterator-dependent data for a vertex that has been seen.
- Parameters:
vertex
- a vertex which has been seen.data
- data to be associated with the seen vertex.- Returns:
- previous value associated with specified vertex or
null
if no data was associated with the vertex. A
null
return can also indicate that the vertex was
explicitly associated with null
.