public class ControlFlowGraph extends Object
| Modifier and Type | Field and Description | 
|---|---|
| protected IdentityHashMap<Tree,Set<Node>> | convertedTreeLookup | 
| protected List<ClassTree> | declaredClassesClass declarations that have been encountered when building the control-flow graph for a
 method. | 
| protected List<LambdaExpressionTree> | declaredLambdasLambdas encountered when building the control-flow graph for a method, variable initializer,
 or initializer. | 
| protected SpecialBlock | entryBlockThe entry block of the control flow graph. | 
| protected SpecialBlock | exceptionalExitBlockThe exceptional exit block of the control flow graph. | 
| protected SpecialBlock | regularExitBlockThe regular exit block of the control flow graph. | 
| protected List<ReturnNode> | returnNodesAll return nodes (if any) encountered. | 
| protected IdentityHashMap<Tree,Set<Node>> | treeLookup | 
| protected IdentityHashMap<UnaryTree,AssignmentNode> | unaryAssignNodeLookupMap from AST  UnaryTrees to correspondingAssignmentNodes. | 
| protected UnderlyingAST | underlyingASTThe 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) | 
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()
public IdentityHashMap<Tree,Set<Node>> getTreeLookup()
public IdentityHashMap<UnaryTree,AssignmentNode> getUnaryAssignNodeLookup()
public @Nullable MethodTree getContainingMethod(Tree t)
public List<LambdaExpressionTree> getDeclaredLambdas()