public class ConditionalBlockImpl extends BlockImpl implements ConditionalBlock
Block.BlockType| Modifier and Type | Field and Description | 
|---|---|
| protected Store.FlowRule | elseFlowRuleThe initial value says that the ELSE store before a conditional block flows to BOTH of the
 stores of the else successor. | 
| protected @Nullable BlockImpl | elseSuccessorSuccessor of the else branch. | 
| protected Store.FlowRule | thenFlowRuleThe initial value says that the THEN store before a conditional block flows to BOTH of the
 stores of the then successor. | 
| protected @Nullable BlockImpl | thenSuccessorSuccessor of the then branch. | 
predecessors, type| Constructor and Description | 
|---|
| ConditionalBlockImpl()Initialize an empty conditional basic block to be filled with contents and linked to other
 basic blocks later. | 
| Modifier and Type | Method and Description | 
|---|---|
| Store.FlowRule | getElseFlowRule()Returns the flow rule for information flowing from this block to its else successor. | 
| Block | getElseSuccessor()Returns the entry block of the else branch. | 
| @Nullable Node | getLastNode()Returns the last node of this block, or null if none. | 
| List<Node> | getNodes()Returns the nodes contained within this basic block. | 
| Set<Block> | getSuccessors()Returns the successors of this basic block. | 
| Store.FlowRule | getThenFlowRule()Returns the flow rule for information flowing from this block to its then successor. | 
| Block | getThenSuccessor()Returns the entry block of the then branch. | 
| void | setElseFlowRule(Store.FlowRule rule)Set the flow rule for information flowing from this block to its else successor. | 
| void | setElseSuccessor(BlockImpl b)Set the else branch successor. | 
| void | setThenFlowRule(Store.FlowRule rule)Set the flow rule for information flowing from this block to its then successor. | 
| void | setThenSuccessor(BlockImpl b)Set the then branch successor. | 
| String | toString() | 
addPredecessor, getPredecessors, getType, getUid, removePredecessorclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitgetPredecessors, getTypeprotected Store.FlowRule thenFlowRule
protected Store.FlowRule elseFlowRule
public ConditionalBlockImpl()
public void setThenSuccessor(BlockImpl b)
public void setElseSuccessor(BlockImpl b)
public Block getThenSuccessor()
ConditionalBlockgetThenSuccessor in interface ConditionalBlockpublic Block getElseSuccessor()
ConditionalBlockgetElseSuccessor in interface ConditionalBlockpublic Set<Block> getSuccessors()
BlockgetSuccessors in interface Blockpublic Store.FlowRule getThenFlowRule()
ConditionalBlockgetThenFlowRule in interface ConditionalBlockpublic Store.FlowRule getElseFlowRule()
ConditionalBlockgetElseFlowRule in interface ConditionalBlockpublic void setThenFlowRule(Store.FlowRule rule)
ConditionalBlocksetThenFlowRule in interface ConditionalBlockrule - the new flow rule for information flowing from this block to its then successorpublic void setElseFlowRule(Store.FlowRule rule)
ConditionalBlocksetElseFlowRule in interface ConditionalBlockrule - the new flow rule for information flowing from this block to its else successorpublic List<Node> getNodes()
The following invariant holds.
forall n in getNodes() :: n.getBlock() == this
This implementation returns an empty list.
public @Nullable Node getLastNode()
BlockgetLastNode in interface Blocknull