com.ibm.wala.util.graph.traverse
Class SlowDFSDiscoverTimeIterator<T>

java.lang.Object
  extended by java.util.AbstractCollection<E>
      extended by java.util.AbstractList<E>
          extended by java.util.Vector<E>
              extended by java.util.Stack<T>
                  extended by com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator<T>
                      extended by com.ibm.wala.util.graph.traverse.SlowDFSDiscoverTimeIterator<T>
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.lang.Iterable<T>, java.util.Collection<T>, java.util.Iterator<T>, java.util.List<T>, java.util.RandomAccess

public class SlowDFSDiscoverTimeIterator<T>
extends DFSDiscoverTimeIterator<T>
implements java.util.Iterator<T>

This class implements depth-first search over a Graph, return an enumeration of the nodes of the graph in order of increasing discover time. This class follows the outNodes of the graph nodes to define the graph, but this behavior can be changed by overriding the getConnected method.

See Also:
Serialized Form

Field Summary
static long serialVersionUID
           
 
Fields inherited from class java.util.Vector
capacityIncrement, elementCount, elementData
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
protected SlowDFSDiscoverTimeIterator()
          For use with extreme care by subclasses that know what they're doing.
  SlowDFSDiscoverTimeIterator(Graph<T> G)
          Constructor SlowDFSDiscoverTimeIterator.
  SlowDFSDiscoverTimeIterator(Graph<T> G, java.util.Iterator<T> nodes)
          Construct a depth-first enumerator across the (possibly improper) subset of nodes reachable from the nodes in the given enumeration.
  SlowDFSDiscoverTimeIterator(Graph<T> G, T N)
          Construct a depth-first enumerator starting with a particular node in a directed graph.
 
Method Summary
protected  java.util.Iterator<? extends T> getConnected(T n)
          get the out edges of a given node
protected  java.util.Iterator<? extends T> getPendingChildren(java.lang.Object n)
          Method getPendingChildren.
protected  void init(Graph<T> G, java.util.Iterator<? extends T> nodes)
           
protected  void setPendingChildren(T v, java.util.Iterator<? extends T> iterator)
          Method setPendingChildren.
 
Methods inherited from class com.ibm.wala.util.graph.traverse.DFSDiscoverTimeIterator
hasNext, init, init, next, remove, visitEdge
 
Methods inherited from class java.util.Stack
empty, peek, pop, push, search
 
Methods inherited from class java.util.Vector
add, add, addAll, addAll, addElement, capacity, clear, clone, contains, containsAll, copyInto, elementAt, elements, ensureCapacity, equals, firstElement, get, hashCode, indexOf, indexOf, insertElementAt, isEmpty, lastElement, lastIndexOf, lastIndexOf, remove, remove, removeAll, removeAllElements, removeElement, removeElementAt, removeRange, retainAll, set, setElementAt, setSize, size, subList, toArray, toArray, toString, trimToSize
 
Methods inherited from class java.util.AbstractList
iterator, listIterator, listIterator
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Iterator
hasNext, next, remove
 
Methods inherited from interface java.util.List
iterator, listIterator, listIterator
 

Field Detail

serialVersionUID

public static final long serialVersionUID
See Also:
Constant Field Values
Constructor Detail

SlowDFSDiscoverTimeIterator

protected SlowDFSDiscoverTimeIterator()
For use with extreme care by subclasses that know what they're doing.


SlowDFSDiscoverTimeIterator

public SlowDFSDiscoverTimeIterator(Graph<T> G,
                                   T N)
Construct a depth-first enumerator starting with a particular node in a directed graph.

Parameters:
G - the graph whose nodes to enumerate

SlowDFSDiscoverTimeIterator

public SlowDFSDiscoverTimeIterator(Graph<T> G,
                                   java.util.Iterator<T> nodes)
Construct a depth-first enumerator across the (possibly improper) subset of nodes reachable from the nodes in the given enumeration.

Parameters:
G - the graph whose nodes to enumerate
nodes - the set of nodes from which to start searching

SlowDFSDiscoverTimeIterator

public SlowDFSDiscoverTimeIterator(Graph<T> G)
                            throws java.lang.NullPointerException
Constructor SlowDFSDiscoverTimeIterator.

Parameters:
G -
Throws:
java.lang.NullPointerException - if G is null
Method Detail

getPendingChildren

protected java.util.Iterator<? extends T> getPendingChildren(java.lang.Object n)
Description copied from class: DFSDiscoverTimeIterator
Method getPendingChildren.

Specified by:
getPendingChildren in class DFSDiscoverTimeIterator<T>
Returns:
Object

setPendingChildren

protected void setPendingChildren(T v,
                                  java.util.Iterator<? extends T> iterator)
Method setPendingChildren.

Specified by:
setPendingChildren in class DFSDiscoverTimeIterator<T>
Parameters:
v -
iterator -

init

protected void init(Graph<T> G,
                    java.util.Iterator<? extends T> nodes)

getConnected

protected java.util.Iterator<? extends T> getConnected(T n)
Description copied from class: DFSDiscoverTimeIterator
get the out edges of a given node

Specified by:
getConnected in class DFSDiscoverTimeIterator<T>
Parameters:
n - the node of which to get the out edges
Returns:
the out edges