Class ExtendedNode
java.lang.Object
org.checkerframework.dataflow.cfg.builder.ExtendedNode
- Direct Known Subclasses:
ConditionalJump
An extended node can be one of several things (depending on its
type
):
- NODE:
NodeHolder
. An extended node of this type is just a wrapper for aNode
(that cannot throw exceptions). - EXCEPTION_NODE:
NodeWithExceptionsHolder
. A wrapper for aNode
which can throw exceptions. It contains a label for every possible exception type the node might throw. - UNCONDITIONAL_JUMP:
UnconditionalJump
. An unconditional jump to a label. - TWO_TARGET_CONDITIONAL_JUMP:
ConditionalJump
. A conditional jump with two targets for both the 'then' and 'else' branch.
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Extended node types (description see above). -
Field Summary
Modifier and TypeFieldDescriptionprotected BlockImpl
The basic block this extended node belongs to (as determined in phase two).protected boolean
Does this node terminate the execution? (e.g., "System.exit()")protected final ExtendedNode.ExtendedNodeType
Type of this node. -
Constructor Summary
ModifierConstructorDescriptionprotected
Create a new ExtendedNode. -
Method Summary
Modifier and TypeMethodDescriptiongetBlock()
getLabel()
Returns the label associated with this extended node (only applicable if type isExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP
orExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP
).getNode()
Returns the node contained in this extended node (only applicable if the type isNODE
orEXCEPTION_NODE
).boolean
getType()
void
void
setTerminatesExecution
(boolean terminatesExecution) toString()
abstract String
Returns a verbose string representation of this, useful for debugging.
-
Field Details
-
block
The basic block this extended node belongs to (as determined in phase two). -
type
Type of this node. -
terminatesExecution
protected boolean terminatesExecutionDoes this node terminate the execution? (e.g., "System.exit()")
-
-
Constructor Details
-
ExtendedNode
Create a new ExtendedNode.- Parameters:
type
- the type of this node
-
-
Method Details
-
getType
-
getTerminatesExecution
public boolean getTerminatesExecution() -
setTerminatesExecution
public void setTerminatesExecution(boolean terminatesExecution) -
getNode
Returns the node contained in this extended node (only applicable if the type isNODE
orEXCEPTION_NODE
).- Returns:
- the node contained in this extended node (only applicable if the type is
NODE
orEXCEPTION_NODE
)
-
getLabel
Returns the label associated with this extended node (only applicable if type isExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP
orExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP
).- Returns:
- the label associated with this extended node (only applicable if type is
ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP
orExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP
)
-
getBlock
-
setBlock
-
toString
-
toStringDebug
Returns a verbose string representation of this, useful for debugging.- Returns:
- a string representation of this
-