com.google.javascript.jscomp.graph
Class GraphReachability<N,E>
java.lang.Object
com.google.javascript.jscomp.graph.GraphReachability<N,E>
- All Implemented Interfaces:
- FixedPointGraphTraversal.EdgeCallback<N,E>
public class GraphReachability<N,E>
- extends Object
- implements FixedPointGraphTraversal.EdgeCallback<N,E>
Computes all the reachable nodes. Upon execution of compute(Object)
,
the graph nodes will be annotated with REACHABLE
if it is reachable
from the specified entry node.
- See Also:
Annotatable.getAnnotation()
Method Summary |
void |
compute(N entry)
|
void |
recompute(N reachableNode)
|
boolean |
traverseEdge(N source,
E e,
N destination)
Update the state of the destination node when the given edge
is traversed. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
REACHABLE
public static final Annotation REACHABLE
GraphReachability
public GraphReachability(DiGraph<N,E> graph)
GraphReachability
public GraphReachability(DiGraph<N,E> graph,
com.google.common.base.Predicate<GraphReachability.EdgeTuple<N,E>> edgePredicate)
- Parameters:
graph
- The graph.edgePredicate
- Given the predecessor P of the a node S and the edge
coming from P to S, this predicate should return true if S is
reachable from P using the edge.
compute
public void compute(N entry)
recompute
public void recompute(N reachableNode)
traverseEdge
public boolean traverseEdge(N source,
E e,
N destination)
- Description copied from interface:
FixedPointGraphTraversal.EdgeCallback
- Update the state of the destination node when the given edge
is traversed. For the fixed-point computation to work, only the
destination node may be modified. The source node and the edge must
not be modified.
- Specified by:
traverseEdge
in interface FixedPointGraphTraversal.EdgeCallback<N,E>
- Parameters:
source
- The start node.e
- The edge.destination
- The end node.
- Returns:
- Whether the state of the destination node changed.