edu.umd.cs.findbugs
Class ResourceTrackingDetector<Resource,ResourceTrackerType extends ResourceTracker<Resource>>
java.lang.Object
edu.umd.cs.findbugs.ResourceTrackingDetector<Resource,ResourceTrackerType>
- All Implemented Interfaces:
- Detector, Priorities
- Direct Known Subclasses:
- FindOpenStream, FindUnreleasedLock
public abstract class ResourceTrackingDetector<Resource,ResourceTrackerType extends ResourceTracker<Resource>>
- extends java.lang.Object
- implements Detector
Abstract implementation of a Detector to find methods where a
particular kind of created resource is not cleaned up
or closed properly. Subclasses should override the
abstract methods to determine what kinds of resources
are tracked by the detector.
- Author:
- David Hovemeyer
Method Summary |
void |
analyzeMethod(ClassContext classContext,
org.apache.bcel.classfile.Method method,
ResourceTrackerType resourceTracker,
ResourceCollection<Resource> resourceCollection)
|
abstract ResourceTrackerType |
getResourceTracker(ClassContext classContext,
org.apache.bcel.classfile.Method method)
|
abstract void |
inspectResult(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
Dataflow<ResourceValueFrame,ResourceValueAnalysis<Resource>> dataflow,
Resource resource)
|
abstract boolean |
prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method)
|
void |
report()
This method is called after all classes to be visited. |
void |
visitClassContext(ClassContext classContext)
Visit the ClassContext for a class which should be analyzed
for instances of bug patterns. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
bugReporter
protected BugReporter bugReporter
ResourceTrackingDetector
public ResourceTrackingDetector(BugReporter bugReporter)
prescreen
public abstract boolean prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method)
getResourceTracker
public abstract ResourceTrackerType getResourceTracker(ClassContext classContext,
org.apache.bcel.classfile.Method method)
throws DataflowAnalysisException,
CFGBuilderException
- Throws:
DataflowAnalysisException
CFGBuilderException
inspectResult
public abstract void inspectResult(ClassContext classContext,
org.apache.bcel.generic.MethodGen methodGen,
CFG cfg,
Dataflow<ResourceValueFrame,ResourceValueAnalysis<Resource>> dataflow,
Resource resource)
visitClassContext
public void visitClassContext(ClassContext classContext)
- Description copied from interface:
Detector
- Visit the ClassContext for a class which should be analyzed
for instances of bug patterns.
- Specified by:
visitClassContext
in interface Detector
- Parameters:
classContext
- the ClassContext
analyzeMethod
public void analyzeMethod(ClassContext classContext,
org.apache.bcel.classfile.Method method,
ResourceTrackerType resourceTracker,
ResourceCollection<Resource> resourceCollection)
throws CFGBuilderException,
DataflowAnalysisException
- Throws:
CFGBuilderException
DataflowAnalysisException
report
public void report()
- Description copied from interface:
Detector
- This method is called after all classes to be visited.
It should be used by any detectors which accumulate information
over all visited classes to generate results.
- Specified by:
report
in interface Detector
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.