| edu.umd.cs.findbugs.ba.ResourceTracker
ResourceTracker | public interface ResourceTracker (Code) | | A ResourceTracker is used with ResourceValueAnalysis to determine
where in a method a certain kind of resource is created, and
to model the effect of instructions on the state of that resource.
author: David Hovemeyer See Also: ResourceValueAnalysis |
Method Summary | |
public ResourceValueFrameModelingVisitor | createVisitor(Resource resource, ConstantPoolGen cpg) Create a ResourceValueFrameModelingVisitor to model the effect
of instructions on the state of the resource. | public boolean | ignoreExceptionEdge(Edge edge, Resource resource, ConstantPoolGen cpg) Determine whether the analysis should ignore given exception edge. | public boolean | ignoreImplicitExceptions(Resource resource) Determine whether the analysis should ignore exception edges
on which only implicit exceptions are propagated.
This allows different resource types to be tracked
with varying precision. | public boolean | isParamInstance(Resource resource, int slot) Return if the given parameter slot contains the
resource instance upon entry to the method. | public boolean | isResourceClose(BasicBlock basicBlock, InstructionHandle handle, ConstantPoolGen cpg, Resource resource, ResourceValueFrame frame) Determine if the given instruction is the site where a resource
is closed. | public Resource | isResourceCreation(BasicBlock basicBlock, InstructionHandle handle, ConstantPoolGen cpg) Determine if the given instruction is the site where a resource
is created. |
createVisitor | public ResourceValueFrameModelingVisitor createVisitor(Resource resource, ConstantPoolGen cpg)(Code) | | Create a ResourceValueFrameModelingVisitor to model the effect
of instructions on the state of the resource.
Parameters: resource - the resource we are tracking Parameters: cpg - the ConstantPoolGen of the method a ResourceValueFrameModelingVisitor |
ignoreExceptionEdge | public boolean ignoreExceptionEdge(Edge edge, Resource resource, ConstantPoolGen cpg)(Code) | | Determine whether the analysis should ignore given exception edge.
This allows the analysis to customize which kinds of exceptions are
significant.
Parameters: edge - the exception edge Parameters: resource - the resource Parameters: cpg - the ConstantPoolGen true if exception edge should be ignored, false if it should be considered |
ignoreImplicitExceptions | public boolean ignoreImplicitExceptions(Resource resource)(Code) | | Determine whether the analysis should ignore exception edges
on which only implicit exceptions are propagated.
This allows different resource types to be tracked
with varying precision. For example, we might want
to ignore implicit exceptions for stream objects,
but treat them as significant for database resources.
Parameters: resource - the resource being tracked true if implicit exceptions are significant,false if they should be ignore |
isParamInstance | public boolean isParamInstance(Resource resource, int slot)(Code) | | Return if the given parameter slot contains the
resource instance upon entry to the method.
This is for resources passed as parameters.
Parameters: resource - the resource Parameters: slot - the local variable slot true if the slot contains the resource instance,false otherwise |
isResourceClose | public boolean isResourceClose(BasicBlock basicBlock, InstructionHandle handle, ConstantPoolGen cpg, Resource resource, ResourceValueFrame frame) throws DataflowAnalysisException(Code) | | Determine if the given instruction is the site where a resource
is closed.
Parameters: basicBlock - basic block containing the instruction Parameters: handle - the instruction Parameters: cpg - the ConstantPoolGen for the method Parameters: resource - the resource, as returned by isResourceCreation() Parameters: frame - the ResourceValueFrame representing the stack prior to executingthe instruction true if the resource is closed here, false otherwise |
isResourceCreation | public Resource isResourceCreation(BasicBlock basicBlock, InstructionHandle handle, ConstantPoolGen cpg) throws DataflowAnalysisException(Code) | | Determine if the given instruction is the site where a resource
is created.
Parameters: basicBlock - basic block containing the instruction Parameters: handle - the instruction Parameters: cpg - the ConstantPoolGen for the method an opaque Resource object if it is a creation site, ornull if it is not a creation site |
|
|