protected abstract static class CFGBuilder.ExtendedNode extends Object
type
):
CFGBuilder.NodeHolder
. An extended node of this type is just a
wrapper for a Node
(that cannot throw exceptions).
CFGBuilder.NodeWithExceptionsHolder
. A wrapper for a
Node
which can throw exceptions. It contains a label for every possible
exception type the node might throw.
CFGBuilder.UnconditionalJump
. An unconditional
jump to a label.
CFGBuilder.ConditionalJump
. A conditional
jump with two targets for both the 'then' and 'else' branch.
Modifier and Type | Class and Description |
---|---|
static class |
CFGBuilder.ExtendedNode.ExtendedNodeType
Extended node types (description see above).
|
Modifier and Type | Field and Description |
---|---|
protected BlockImpl |
block
The basic block this extended node belongs to (as determined in phase two).
|
protected boolean |
terminatesExecution
Does this node terminate the execution? (e.g., "System.exit()")
|
protected CFGBuilder.ExtendedNode.ExtendedNodeType |
type
Type of this node.
|
Modifier | Constructor and Description |
---|---|
protected |
ExtendedNode(CFGBuilder.ExtendedNode.ExtendedNodeType type)
Create a new ExtendedNode.
|
Modifier and Type | Method and Description |
---|---|
BlockImpl |
getBlock() |
CFGBuilder.Label |
getLabel()
Returns the label associated with this extended node (only applicable if type is
CFGBuilder.ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP or CFGBuilder.ExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP ). |
Node |
getNode()
Returns the node contained in this extended node (only applicable if the type is
NODE or EXCEPTION_NODE ). |
boolean |
getTerminatesExecution() |
CFGBuilder.ExtendedNode.ExtendedNodeType |
getType() |
void |
setBlock(BlockImpl b) |
void |
setTerminatesExecution(boolean terminatesExecution) |
String |
toString() |
protected BlockImpl block
protected final CFGBuilder.ExtendedNode.ExtendedNodeType type
protected boolean terminatesExecution
protected ExtendedNode(CFGBuilder.ExtendedNode.ExtendedNodeType type)
type
- the type of this nodepublic CFGBuilder.ExtendedNode.ExtendedNodeType getType()
public boolean getTerminatesExecution()
public void setTerminatesExecution(boolean terminatesExecution)
public Node getNode()
NODE
or EXCEPTION_NODE
).NODE
or EXCEPTION_NODE
)public CFGBuilder.Label getLabel()
CFGBuilder.ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP
or CFGBuilder.ExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP
).CFGBuilder.ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP
or CFGBuilder.ExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP
)public BlockImpl getBlock()
public void setBlock(BlockImpl b)