edu.umd.cs.findbugs.ba
Class ResourceValueAnalysis<Resource>
java.lang.Object
edu.umd.cs.findbugs.ba.BasicAbstractDataflowAnalysis<Fact>
edu.umd.cs.findbugs.ba.AbstractDataflowAnalysis<Fact>
edu.umd.cs.findbugs.ba.ForwardDataflowAnalysis<FrameType>
edu.umd.cs.findbugs.ba.FrameDataflowAnalysis<ResourceValue,ResourceValueFrame>
edu.umd.cs.findbugs.ba.ResourceValueAnalysis<Resource>
- All Implemented Interfaces:
- DataflowAnalysis<ResourceValueFrame>, EdgeTypes
@ParametersAreNonnullByDefault
@DefaultAnnotationForParameters(value=NonNull.class)
public class ResourceValueAnalysis<Resource>
- extends FrameDataflowAnalysis<ResourceValue,ResourceValueFrame>
- implements EdgeTypes
Fields inherited from interface edu.umd.cs.findbugs.ba.EdgeTypes |
BACKEDGE_SOURCE_EDGE, BACKEDGE_TARGET_EDGE, CHECKED_EXCEPTIONS_FLAG, EXIT_EDGE, EXPLICIT_EXCEPTIONS_FLAG, FALL_THROUGH_EDGE, GOTO_EDGE, HANDLED_EXCEPTION_EDGE, IFCMP_EDGE, JSR_EDGE, RET_EDGE, RETURN_EDGE, START_EDGE, SWITCH_DEFAULT_EDGE, SWITCH_EDGE, UNHANDLED_EXCEPTION_EDGE, UNKNOWN_EDGE |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ResourceValueAnalysis
public ResourceValueAnalysis(org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
DepthFirstSearch dfs,
ResourceTracker<Resource> resourceTracker,
Resource resource)
createFact
public ResourceValueFrame createFact()
- Description copied from interface:
DataflowAnalysis
- Create empty (uninitialized) dataflow facts for one program point.
A valid value will be copied into it before it is used.
- Specified by:
createFact
in interface DataflowAnalysis<ResourceValueFrame>
initEntryFact
public void initEntryFact(ResourceValueFrame result)
- Description copied from interface:
DataflowAnalysis
- Initialize the "entry" fact for the graph.
- Specified by:
initEntryFact
in interface DataflowAnalysis<ResourceValueFrame>
meetInto
public void meetInto(ResourceValueFrame fact,
Edge edge,
ResourceValueFrame result)
throws DataflowAnalysisException
- Description copied from interface:
DataflowAnalysis
- Meet a dataflow fact associated with an incoming edge into another fact.
This is used to determine the start fact for a basic block.
- Specified by:
meetInto
in interface DataflowAnalysis<ResourceValueFrame>
- Parameters:
fact
- the predecessor fact (incoming edge)edge
- the edge from the predecessorresult
- the result fact
- Throws:
DataflowAnalysisException
mergeInto
protected void mergeInto(ResourceValueFrame frame,
ResourceValueFrame result)
throws DataflowAnalysisException
- Description copied from class:
FrameDataflowAnalysis
- Merge one frame into another.
- Overrides:
mergeInto
in class FrameDataflowAnalysis<ResourceValue,ResourceValueFrame>
- Parameters:
frame
- the frame to merge with the resultresult
- the result frame, which is modified to be the
merge of the two frames
- Throws:
DataflowAnalysisException
mergeValues
protected void mergeValues(ResourceValueFrame otherFrame,
ResourceValueFrame resultFrame,
int slot)
throws DataflowAnalysisException
- Description copied from class:
FrameDataflowAnalysis
- Merge the values contained in a given slot of two Frames.
- Specified by:
mergeValues
in class FrameDataflowAnalysis<ResourceValue,ResourceValueFrame>
- Parameters:
otherFrame
- a FrameresultFrame
- a Frame which will contain the resulting merged valueslot
- a slot in both frames
- Throws:
DataflowAnalysisException
transferInstruction
public void transferInstruction(org.apache.bcel.generic.InstructionHandle handle,
BasicBlock basicBlock,
ResourceValueFrame fact)
throws DataflowAnalysisException
- Description copied from class:
AbstractDataflowAnalysis
- Transfer function for a single instruction.
- Specified by:
transferInstruction
in class AbstractDataflowAnalysis<ResourceValueFrame>
- Parameters:
handle
- the instructionbasicBlock
- the BasicBlock containing the instruction; needed to disambiguate
instructions in inlined JSR subroutinesfact
- which should be modified based on the instruction
- Throws:
DataflowAnalysisException
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.