public abstract class CrossComponentIterator extends AbstractGraphIterator
Constructor and Description |
---|
CrossComponentIterator(Graph g,
java.lang.Object startVertex)
Creates a new iterator for the specified graph.
|
Modifier and Type | Method and Description |
---|---|
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.
|
protected boolean |
isSeenVertex(java.lang.Object vertex)
Determines whether a vertex has been seen yet by this traversal.
|
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.
|
addTraversalListener, fireConnectedComponentFinished, fireConnectedComponentStarted, fireEdgeTraversed, fireVertexTraversed, isCrossComponentTraversal, isReuseEvents, remove, removeTraversalListener, setCrossComponentTraversal, setReuseEvents
public CrossComponentIterator(Graph g, java.lang.Object startVertex)
null
, Iteration will start at an arbitrary graph vertex.g
- the graph to be iterated.startVertex
- the vertex iteration to be started.java.lang.NullPointerException
java.lang.IllegalArgumentException
public boolean hasNext()
Iterator.hasNext()
public java.lang.Object next()
Iterator.next()
protected abstract boolean isConnectedComponentExhausted()
protected abstract void encounterVertex(java.lang.Object vertex, Edge edge)
vertex
- the vertex encounterededge
- the edge via which the vertex was encountered, or null if
the vertex is a starting pointprotected abstract java.lang.Object provideNextVertex()
next
method.protected java.lang.Object getSeenData(java.lang.Object vertex)
vertex
- a vertex which has already been seen.null
if no
data was associated with the vertex. A null
return
can also indicate that the vertex was explicitly associated
with null
.protected boolean isSeenVertex(java.lang.Object vertex)
vertex
- vertex in questionprotected abstract void encounterVertexAgain(java.lang.Object vertex, Edge edge)
vertex
- the vertex re-encounterededge
- the edge via which the vertex was re-encounteredprotected java.lang.Object putSeenData(java.lang.Object vertex, java.lang.Object data)
vertex
- a vertex which has been seen.data
- data to be associated with the seen vertex.null
if no data was associated with the vertex. A
null
return can also indicate that the vertex was
explicitly associated with null
.