DataflowAnalysis<Fact>
BackwardDataflowAnalysis
, CallListAnalysis
, ForwardDataflowAnalysis
, TypeQualifierDataflowAnalysis
public abstract class AbstractDataflowAnalysis<Fact> extends BasicAbstractDataflowAnalysis<Fact>
Dataflow
,
DataflowAnalysis
Constructor | Description |
---|---|
AbstractDataflowAnalysis() |
Modifier and Type | Method | Description |
---|---|---|
Fact |
getFactAfterLocation(Location location) |
Get the dataflow fact representing the point just after given Location.
|
Fact |
getFactAtLocation(Location location) |
Get the dataflow fact representing the point just before given Location.
|
abstract boolean |
isFactValid(Fact fact) |
Determine whether the given fact is valid (neither top nor
bottom).
|
void |
transfer(BasicBlock basicBlock,
org.apache.bcel.generic.InstructionHandle end,
Fact start,
Fact result) |
Transfer function for the analysis.
|
abstract void |
transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
Fact fact) |
Transfer function for a single instruction.
|
edgeTransfer, factToString, finishIteration, getFactOnEdge, getLastUpdateTimestamp, getResultFact, getStartFact, resultFactIterator, setLastUpdateTimestamp, startIteration
copy, createFact, getBlockOrder, initEntryFact, isForwards, isTop, makeFactTop, meetInto, same
public abstract void transferInstruction(org.apache.bcel.generic.InstructionHandle handle, BasicBlock basicBlock, Fact fact) throws DataflowAnalysisException
handle
- the instructionbasicBlock
- the BasicBlock containing the instruction; needed to
disambiguate instructions in inlined JSR subroutinesfact
- which should be modified based on the instructionDataflowAnalysisException
@CheckReturnValue public abstract boolean isFactValid(Fact fact)
public Fact getFactAtLocation(Location location) throws DataflowAnalysisException
getFactAtLocation
in interface DataflowAnalysis<Fact>
getFactAtLocation
in class BasicAbstractDataflowAnalysis<Fact>
location
- the locationDataflowAnalysisException
public Fact getFactAfterLocation(Location location) throws DataflowAnalysisException
getFactAfterLocation
in interface DataflowAnalysis<Fact>
getFactAfterLocation
in class BasicAbstractDataflowAnalysis<Fact>
location
- the locationDataflowAnalysisException
public void transfer(BasicBlock basicBlock, @CheckForNull org.apache.bcel.generic.InstructionHandle end, Fact start, Fact result) throws DataflowAnalysisException
DataflowAnalysis
basicBlock
- the basic blockend
- if nonnull, stop before considering this instruction;
otherwise, consider all of the instructions in the basic blockstart
- dataflow facts at beginning of block (if forward analysis) or
end of block (if backwards analysis)result
- resulting dataflow facts at other end of blockDataflowAnalysisException
SpotBugs is licensed under the LGPL.