FindBugs™ 1.3.9

edu.umd.cs.findbugs
Class ResourceTrackingDetector<Resource,ResourceTrackerType extends ResourceTracker<Resource>>

java.lang.Object
  extended by 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

Field Summary
protected  BugAccumulator bugAccumulator
           
protected  BugReporter bugReporter
           
 
Fields inherited from interface edu.umd.cs.findbugs.Priorities
EXP_PRIORITY, HIGH_PRIORITY, IGNORE_PRIORITY, LOW_PRIORITY, NORMAL_PRIORITY
 
Constructor Summary
ResourceTrackingDetector(BugReporter bugReporter)
           
 
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
 

Field Detail

bugAccumulator

protected BugAccumulator bugAccumulator

bugReporter

protected BugReporter bugReporter
Constructor Detail

ResourceTrackingDetector

public ResourceTrackingDetector(BugReporter bugReporter)
Method Detail

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™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.