Enum EVirtualFlowGraphNodePurpose
- All Implemented Interfaces:
Serializable, Comparable<EVirtualFlowGraphNodePurpose>
virtual flow graph node in a control
flow graph. This is used for informative purposes only and does not have an effect on the runtime behavior of the
flow graph analysis.- Since:
- 8.2.0
- Author:
- XIMA MEDIA GmbH
-
Enum Constant Summary
Enum ConstantsEnum ConstantDescriptionA 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.Other purposes, can be used e.g. by plugins when no other purpose is applicable. -
Method Summary
Modifier and TypeMethodDescriptionstatic EVirtualFlowGraphNodePurposeReturns the enum constant of this type with the specified name.static EVirtualFlowGraphNodePurpose[]values()Returns an array containing the constants of this enum type, in the order they are declared.
-
Enum Constant Details
-
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-testandpost-testloop nodes have special handling forbreak statements. Such statements end abruptly by issuing acontrol transfer. The loop node catches thatabrupt completionand converts it to a normal completion. Here, however, we run into a conflict: the outgoing flow graphedgemust be acontrol transferedge (since the break node did complete abruptly); while the break node must be anormalend point with respect to the loop node, implying that outgoing edges would have to be anormaledge.To resolve this conflict, a virtual
completion type conversionnode 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
throwingend point and can be connected to other nodes via athrowingedge. -
OTHER
Other purposes, can be used e.g. by plugins when no other purpose is applicable.
-
-
Method Details
-
values
Returns an array containing the constants of this enum type, in the order they are declared.- Returns:
- an array containing the constants of this enum type, in the order they are declared
-
valueOf
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 nameNullPointerException- if the argument is null
-