public abstract class ExtendedNode extends Object
type):
NodeHolder. An extended node of this type is just a wrapper for a
Node (that cannot throw exceptions).
NodeWithExceptionsHolder. A wrapper for a Node
which can throw exceptions. It contains a label for every possible exception type the node
might throw.
UnconditionalJump. An unconditional jump to a label.
ConditionalJump. A conditional jump with two
targets for both the 'then' and 'else' branch.
| Modifier and Type | Class and Description |
|---|---|
static class |
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 ExtendedNode.ExtendedNodeType |
type
Type of this node.
|
| Modifier | Constructor and Description |
|---|---|
protected |
ExtendedNode(ExtendedNode.ExtendedNodeType type)
Create a new ExtendedNode.
|
| Modifier and Type | Method and Description |
|---|---|
BlockImpl |
getBlock() |
Label |
getLabel()
Returns the label associated with this extended node (only applicable if type is
ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP or 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() |
ExtendedNode.ExtendedNodeType |
getType() |
void |
setBlock(BlockImpl b) |
void |
setTerminatesExecution(boolean terminatesExecution) |
String |
toString() |
abstract String |
toStringDebug()
Returns a verbose string representation of this, useful for debugging.
|
protected BlockImpl block
protected final ExtendedNode.ExtendedNodeType type
protected boolean terminatesExecution
protected ExtendedNode(ExtendedNode.ExtendedNodeType type)
type - the type of this nodepublic ExtendedNode.ExtendedNodeType getType()
public boolean getTerminatesExecution()
public void setTerminatesExecution(boolean terminatesExecution)
public Node getNode()
NODE
or EXCEPTION_NODE).NODE
or EXCEPTION_NODE)public Label getLabel()
ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP or ExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP).ExtendedNode.ExtendedNodeType.CONDITIONAL_JUMP or ExtendedNode.ExtendedNodeType.UNCONDITIONAL_JUMP)public BlockImpl getBlock()
public void setBlock(BlockImpl b)
public abstract String toStringDebug()