edu.umd.cs.findbugs.ba
public abstract class BasicAbstractDataflowAnalysis<Fact> extends Object implements DataflowAnalysis<Fact>
Subclasses that model instructions within basic blocks should extend AbstractDataflowAnalysis.
Constructor Summary | |
---|---|
BasicAbstractDataflowAnalysis()
Constructor. |
Method Summary | |
---|---|
void | edgeTransfer(Edge edge, Fact fact) |
String | factToString(Fact fact)
Call this to get a dataflow value as a String.
|
void | finishIteration() |
Fact | getFactAfterLocation(Location location)
Get the dataflow fact representing the point just after given Location.
|
Fact | getFactAtLocation(Location location)
Get dataflow fact at (just before) given Location.
|
Fact | getFactOnEdge(Edge edge)
Get the fact that is true at the target of the given control edge.
|
int | getLastUpdateTimestamp(Fact fact) |
Fact | getResultFact(BasicBlock block) |
Fact | getStartFact(BasicBlock block) |
Iterator<Fact> | resultFactIterator()
Get an iterator over the result facts. |
void | setLastUpdateTimestamp(Fact fact, int lastUpdateTimestamp) |
void | startIteration() |
The default implementation ignores instructions within basic blocks. Subclasses that model individual instructions must override this method.
Parameters: location the Location
Returns: the dataflow value after given Location
Throws: DataflowAnalysisException
The default implementation ignores instructions within basic blocks. Subclasses that model individual instructions must override this method.
Parameters: location the Location
Returns: the dataflow value at given Location
Throws: DataflowAnalysisException
Parameters: edge the edge
Returns: the fact that is true at the target of the edge
Throws: DataflowAnalysisException