Class GraphReachability<N,E>
java.lang.Object
com.google.javascript.jscomp.graph.GraphReachability<N,E>
- Type Parameters:
N
- The type of data that the graph node holds.E
- The type of data that the graph edge holds.
- All Implemented Interfaces:
FixedPointGraphTraversal.EdgeCallback<N,
E>
public final 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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final class
Represents a Source Node and an Edge. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionGraphReachability
(DiGraph<N, E> graph) GraphReachability
(DiGraph<N, E> graph, @Nullable com.google.common.base.Predicate<GraphReachability.EdgeTuple<N, E>> edgePredicate) -
Method Summary
-
Field Details
-
REACHABLE
-
-
Constructor Details
-
GraphReachability
-
GraphReachability
public GraphReachability(DiGraph<N, E> graph, @Nullable 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.
-
-
Method Details
-
compute
-
recompute
-
traverseEdge
Description copied from interface:FixedPointGraphTraversal.EdgeCallback
Update the state of the destination node when the given edge is traversed.Recall that depending on the direction of the traversal,
source
anddestination
may be swapped compared to the orientation of the edge in the graph. In either case, only thedestination
parameter may be mutated.- Specified by:
traverseEdge
in interfaceFixedPointGraphTraversal.EdgeCallback<N,
E> - Parameters:
source
- The start node.e
- The edge.destination
- The end node.- Returns:
- Whether the state of the destination node changed.
-