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.