Class GraphReachability<N,​E>

    • Field Detail

      • REACHABLE

        public static final Annotation REACHABLE
    • Constructor Detail

      • 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.
    • Method Detail

      • 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.

        Recall that depending on the direction of the traversal, source and destination may be swapped compared to the orientation of the edge in the graph. In either case, only the destination parameter may be mutated.

        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.