edu.umd.cs.findbugs.ba
public class CFG extends AbstractGraph<Edge,BasicBlock> implements Debug
See Also: BasicBlock Edge
| Constructor Summary | |
|---|---|
| CFG()
Constructor.
| |
| Method Summary | |
|---|---|
| BasicBlock | allocate()
Allocate a new BasicBlock. |
| Iterator<BasicBlock> | blockIterator()
Get an Iterator over the nodes (BasicBlocks) of the control flow graph. |
| void | checkIntegrity() |
| Edge | createEdge(BasicBlock source, BasicBlock dest, int type)
Add a unique edge to the graph.
|
| Collection<BasicBlock> | getBlocks(BitSet idSet)
Get Collection of basic blocks whose IDs are specified by
given BitSet.
|
| Collection<BasicBlock> | getBlocksContainingInstructionWithOffset(int offset)
Get a Collection of basic blocks which contain the bytecode
instruction with given offset.
|
| BasicBlock | getEntry()
Get the entry node. |
| Location | getExceptionThrowerLocation(Edge exceptionEdge)
Get the Location where exception(s) thrown on given exception edge
are thrown.
|
| BasicBlock | getExit()
Get the exit node. |
| Edge | getIncomingEdgeWithType(BasicBlock basicBlock, int edgeType)
Get the first incoming edge in basic block with given type.
|
| Collection<Location> | getLocationsContainingInstructionWithOffset(int offset)
Get a Collection of Locations which specify the instruction
at given bytecode offset.
|
| int | getMaxEdgeId()
Get the number of edge labels allocated.
|
| MethodGen | getMethodGen() |
| String | getMethodName() |
| int | getNumBasicBlocks()
Get number of basic blocks.
|
| Edge | getOutgoingEdgeWithType(BasicBlock basicBlock, int edgeType)
Get the first outgoing edge in basic block with given type.
|
| BasicBlock | getPredecessorWithEdgeType(BasicBlock target, int edgeType)
Get the first predecessor reachable from given edge type.
|
| BasicBlock | getSuccessorWithEdgeType(BasicBlock source, int edgeType)
Get the first successor reachable from given edge type.
|
| Iterator<Location> | locationIterator()
Get an Iterator over the Locations in the control flow graph. |
| Edge | lookupEdgeById(int id)
Look up an Edge by its id.
|
| void | setMethodGen(MethodGen methodGen) |
| void | setMethodName(String methodName) |
Parameters: source the source basic block dest the destination basic block type the type of edge; see constants in EdgeTypes interface
Returns: the newly created Edge
Throws: IllegalStateException if there is already an edge in the CFG with the same source and destination block
Parameters: idSet BitSet of block IDs
Returns: a Collection containing the blocks whose IDs are given
Parameters: offset the bytecode offset of an instruction
Returns: Collection of BasicBlock objects which contain the instruction with that offset
Parameters: exceptionEdge the exception Edge
Returns: Location where exception(s) are thrown from
Parameters: basicBlock the basic block edgeType the edge type
Returns: the Edge, or null if there is no edge with that edge type
Parameters: offset the bytecode offset
Returns: all Locations referring to the instruction at that offset
Returns: Returns the methodName.
Parameters: basicBlock the basic block edgeType the edge type
Returns: the Edge, or null if there is no edge with that edge type
Parameters: target the target block edgeType the edge type leading from the predecessor
Returns: the predecessor, or null if there is no incoming edge with the specified edge type
Parameters: source the source block edgeType the edge type leading to the successor
Returns: the successor, or null if there is no outgoing edge with the specified edge type
Parameters: id the id of the edge to look up
Returns: the Edge, or null if no matching Edge was found
Parameters: methodName The methodName to set.