public abstract class AbstractDataflowAnalysis<Fact> extends BasicAbstractDataflowAnalysis<Fact>
Dataflow
,
DataflowAnalysis
Constructor and Description |
---|
AbstractDataflowAnalysis() |
Modifier and Type | Method and 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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
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
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.