Enum EVirtualFlowGraphNodePurpose

    • Enum Constant Detail

      • COMPLETION_TYPE_CONVERSION

        public static final EVirtualFlowGraphNodePurpose COMPLETION_TYPE_CONVERSION
        A virtual node in the flow graph that was introduced for the purpose of modeling a conversion from one type of completion to another type of completion.

        For example, pre-test and post-test loop nodes have special handling for break statements. Such statements end abruptly by issuing a control transfer. The loop node catches that abrupt completion and converts it to a normal completion. Here, however, we run into a conflict: the outgoing flow graph edge must be a control transfer edge (since the break node did complete abruptly); while the break node must be a normal end point with respect to the loop node, implying that outgoing edges would have to be a normal edge.

        To resolve this conflict, a virtual completion type conversion node is introduced to model the completion type conversion. With the virtual node, the break statement (which is a control-transfer end point) first connects to the virtual node via a control transfer edge, then the virtual node is marked as a normal end point. The normal end point can then be connected to other nodes via normal edges.

        Another example is a try-catch-finally block. The finally block, when it completes normally, resumes the abrupt completion of the try-catch block, also necessitating a control type conversion. This conversion is modeled with a virtual node in a similar manner to the break statement within loop node: the last child of the finally block first connects to the virtual node via a normal edge. The virtual node is then marked as a throwing end point and can be connected to other nodes via a throwing edge.

      • OTHER

        public static final EVirtualFlowGraphNodePurpose OTHER
        Other purposes, can be used e.g. by plugins when no other purpose is applicable.
    • Method Detail

      • values

        public static EVirtualFlowGraphNodePurpose[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (EVirtualFlowGraphNodePurpose c : EVirtualFlowGraphNodePurpose.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static EVirtualFlowGraphNodePurpose valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null