Package com.ibm.wala.util.graph.traverse
Class DFSPathFinder<T>
java.lang.Object
java.util.AbstractCollection<E>
java.util.AbstractList<E>
java.util.ArrayList<T>
com.ibm.wala.util.graph.traverse.DFSPathFinder<T>
- All Implemented Interfaces:
Serializable
,Cloneable
,Iterable<T>
,Collection<T>
,List<T>
,RandomAccess
- Direct Known Subclasses:
DFSAllPathsFinder
This class searches depth-first search for node that matches some criteria. If found, it reports
a path to the first node found.
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:
-
Field Summary
Modifier and TypeFieldDescriptionThe graph to searchAn iterator of child nodes for each node being searchedstatic final long
Fields inherited from class java.util.AbstractList
modCount
-
Constructor Summary
ConstructorDescriptionConstruct a depth-first enumerator across the (possibly improper) subset of nodes reachable from the nodes in the given enumeration.Construct a depth-first enumerator starting with a particular node in a directed graph. -
Method Summary
Modifier and TypeMethodDescriptionfind()
getConnected
(T n) get the out edges of a given nodeMethod getPendingChildren.boolean
hasNext()
Return whether there are any more nodes left to enumerate.protected void
setPendingChildren
(T v, Iterator<? extends T> iterator) Method setPendingChildren.Methods inherited from class java.util.ArrayList
add, add, addAll, addAll, clear, clone, contains, ensureCapacity, equals, forEach, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
Methods inherited from class java.util.AbstractCollection
containsAll, toString
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.util.Collection
parallelStream, stream, toArray
Methods inherited from interface java.util.List
containsAll
-
Field Details
-
serialVersionUID
public static final long serialVersionUID- See Also:
-
G
The graph to search -
pendingChildren
An iterator of child nodes for each node being searched
-
-
Constructor Details
-
DFSPathFinder
Construct a depth-first enumerator starting with a particular node in a directed graph.- Parameters:
G
- the graph whose nodes to enumerate- Throws:
IllegalArgumentException
- if G is null
-
DFSPathFinder
Construct a depth-first enumerator across the (possibly improper) subset of nodes reachable from the nodes in the given enumeration.- Parameters:
nodes
- the set of nodes from which to start searching
-
-
Method Details
-
find
- Returns:
- a List of nodes that specifies the first path found from a root to a node accepted by the filter. Returns null if no path found.
-
currentPath
-
hasNext
public boolean hasNext()Return whether there are any more nodes left to enumerate.- Returns:
- true if there nodes left to enumerate.
-
getPendingChildren
Method getPendingChildren.- Returns:
- Object
-
setPendingChildren
Method setPendingChildren. -
getConnected
get the out edges of a given node- Parameters:
n
- the node of which to get the out edges- Returns:
- the out edges
-