Interface IFlowGraphEndPoints

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      com.google.common.collect.ImmutableSet<NodeKey> getNormalEndPoints()
      Returns the set of all nodes (including the children, grand-children etc. of this node) that represent the normal end points when the node is executed.
      com.google.common.collect.ImmutableSet<NodeKey> getThrowingEndPoints()
      Returns the set of all nodes (including the children, grand-children etc. of this node) that represent the throwing end points when the node is executed.
    • Method Detail

      • getNormalEndPoints

        com.google.common.collect.ImmutableSet<NodeKey> getNormalEndPoints()
        Returns the set of all nodes (including the children, grand-children etc. of this node) that represent the normal end points when the node is executed. A normal end point is a node that can complete normally (i.e. will not always throw or return) and does not always transfer control to the node or a child of the node when it completes normally.

        More formally, given a syntax tree of nodes representing the parent-child relationship, a normal end point of a node n is the set of all nodes {m} such that all of the following hold:

        • (a) m is in the subtree of n,
        • (b) m can potentially complete normally (=does not always throw or return); and
        • (c) m does not always transfer control to a node in the subtree of n when m completes normally.

        The subtree of a node n is set of all nodes {m} that are either equal to n or have n as one of their parents.

        Returns:
        All normal end points of the root node.
      • getThrowingEndPoints

        com.google.common.collect.ImmutableSet<NodeKey> getThrowingEndPoints()
        Returns the set of all nodes (including the children, grand-children etc. of this node) that represent the throwing end points when the node is executed. A throwing end point is a node that can complete abruptly by throwing an exception and does not always transfer control to the node or a child of the node when it completes abruptly by throwing an exception.

        More formally, given a syntax tree of nodes representing the parent-child relationship, a throwing end point of a node n is the set of all nodes {m} such that all of the following hold:

        • (a) m is in the subtree of n,
        • (b) m can potentially complete abruptly by throwing an exception (=does not always complete normally of return); and
        • (c) m does not always transfer control to a node in the subtree of n when m completes abruptly by throwing an exception.

        The subtree of a node n is set of all nodes {m} that are either equal to n or have n as one of their parents.

        Returns:
        All throwing end points of the root node.