public class ControlFlowGraph extends Object
| Modifier and Type | Field and Description | 
|---|---|
protected IdentityHashMap<Tree,Set<Node>> | 
convertedTreeLookup
 | 
protected List<ClassTree> | 
declaredClasses
Class declarations that have been encountered when building the control-flow graph for a
 method. 
 | 
protected List<LambdaExpressionTree> | 
declaredLambdas
Lambdas encountered when building the control-flow graph for a method, variable initializer,
 or initializer. 
 | 
protected SpecialBlock | 
entryBlock
The entry block of the control flow graph. 
 | 
protected SpecialBlock | 
exceptionalExitBlock
The exceptional exit block of the control flow graph. 
 | 
protected SpecialBlock | 
regularExitBlock
The regular exit block of the control flow graph. 
 | 
protected List<ReturnNode> | 
returnNodes
All return nodes (if any) encountered. 
 | 
protected IdentityHashMap<Tree,Set<Node>> | 
treeLookup
 | 
protected IdentityHashMap<UnaryTree,AssignmentNode> | 
unaryAssignNodeLookup
Map from AST  
UnaryTrees to corresponding AssignmentNodes. | 
protected UnderlyingAST | 
underlyingAST
The AST this CFG corresponds to. 
 | 
| Constructor and Description | 
|---|
ControlFlowGraph(SpecialBlock entryBlock,
                SpecialBlockImpl regularExitBlock,
                SpecialBlockImpl exceptionalExitBlock,
                UnderlyingAST underlyingAST,
                IdentityHashMap<Tree,Set<Node>> treeLookup,
                IdentityHashMap<Tree,Set<Node>> convertedTreeLookup,
                IdentityHashMap<UnaryTree,AssignmentNode> unaryAssignNodeLookup,
                List<ReturnNode> returnNodes,
                List<ClassTree> declaredClasses,
                List<LambdaExpressionTree> declaredLambdas)  | 
| Modifier and Type | Method and Description | 
|---|---|
Set<Block> | 
getAllBlocks()  | 
@Nullable ClassTree | 
getContainingClass(Tree t)
 | 
@Nullable MethodTree | 
getContainingMethod(Tree t)
 | 
List<ClassTree> | 
getDeclaredClasses()  | 
List<LambdaExpressionTree> | 
getDeclaredLambdas()  | 
List<Block> | 
getDepthFirstOrderedBlocks()  | 
SpecialBlock | 
getEntryBlock()  | 
SpecialBlock | 
getExceptionalExitBlock()  | 
Set<Node> | 
getNodesCorrespondingToTree(Tree t)  | 
SpecialBlock | 
getRegularExitBlock()  | 
List<ReturnNode> | 
getReturnNodes()  | 
IdentityHashMap<Tree,Set<Node>> | 
getTreeLookup()  | 
IdentityHashMap<UnaryTree,AssignmentNode> | 
getUnaryAssignNodeLookup()  | 
UnderlyingAST | 
getUnderlyingAST()  | 
protected final SpecialBlock entryBlock
protected final SpecialBlock regularExitBlock
protected final SpecialBlock exceptionalExitBlock
protected final UnderlyingAST underlyingAST
protected final IdentityHashMap<Tree,Set<Node>> treeLookup
Trees to sets of Nodes. Every Tree that produces a value will
 have at least one corresponding Node. Trees that undergo conversions, such as boxing or
 unboxing, can map to two distinct Nodes. The Node for the pre-conversion value is stored in
 treeLookup, while the Node for the post-conversion value is stored in convertedTreeLookup.protected final IdentityHashMap<Tree,Set<Node>> convertedTreeLookup
protected final IdentityHashMap<UnaryTree,AssignmentNode> unaryAssignNodeLookup
UnaryTrees to corresponding AssignmentNodes.protected final List<ReturnNode> returnNodes
protected final List<ClassTree> declaredClasses
protected final List<LambdaExpressionTree> declaredLambdas
public ControlFlowGraph(SpecialBlock entryBlock, SpecialBlockImpl regularExitBlock, SpecialBlockImpl exceptionalExitBlock, UnderlyingAST underlyingAST, IdentityHashMap<Tree,Set<Node>> treeLookup, IdentityHashMap<Tree,Set<Node>> convertedTreeLookup, IdentityHashMap<UnaryTree,AssignmentNode> unaryAssignNodeLookup, List<ReturnNode> returnNodes, List<ClassTree> declaredClasses, List<LambdaExpressionTree> declaredLambdas)
public SpecialBlock getEntryBlock()
public List<ReturnNode> getReturnNodes()
public SpecialBlock getRegularExitBlock()
public SpecialBlock getExceptionalExitBlock()
public UnderlyingAST getUnderlyingAST()
public Set<Block> getAllBlocks()
public List<Block> getDepthFirstOrderedBlocks()
Blocks may appear more than once in the sequence.
public IdentityHashMap<Tree,Set<Node>> getTreeLookup()
public IdentityHashMap<UnaryTree,AssignmentNode> getUnaryAssignNodeLookup()
public @Nullable MethodTree getContainingMethod(Tree t)
public List<LambdaExpressionTree> getDeclaredLambdas()