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()