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,
boolean mightClose)
|
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 |
bugAccumulator
protected BugAccumulator bugAccumulator
bugReporter
protected BugReporter bugReporter
ResourceTrackingDetector
public ResourceTrackingDetector(BugReporter bugReporter)
prescreen
public abstract boolean prescreen(ClassContext classContext,
org.apache.bcel.classfile.Method method,
boolean mightClose)
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.