edu.umd.cs.findbugs

Class ResourceTrackingDetector<Resource,ResourceTrackerType>

public abstract class ResourceTrackingDetector<Resource,ResourceTrackerType extends ResourceTracker<Resource>> extends 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 BugReporterbugReporter
Constructor Summary
ResourceTrackingDetector(BugReporter bugReporter)
Method Summary
voidanalyzeMethod(ClassContext classContext, Method method, ResourceTrackerType resourceTracker, ResourceCollection<Resource> resourceCollection)
abstract ResourceTrackerTypegetResourceTracker(ClassContext classContext, Method method)
abstract voidinspectResult(ClassContext classContext, MethodGen methodGen, CFG cfg, Dataflow<ResourceValueFrame,ResourceValueAnalysis<Resource>> dataflow, Resource resource)
abstract booleanprescreen(ClassContext classContext, Method method)
voidreport()
voidvisitClassContext(ClassContext classContext)

Field Detail

bugReporter

protected BugReporter bugReporter

Constructor Detail

ResourceTrackingDetector

public ResourceTrackingDetector(BugReporter bugReporter)

Method Detail

analyzeMethod

public void analyzeMethod(ClassContext classContext, Method method, ResourceTrackerType resourceTracker, ResourceCollection<Resource> resourceCollection)

getResourceTracker

public abstract ResourceTrackerType getResourceTracker(ClassContext classContext, Method method)

inspectResult

public abstract void inspectResult(ClassContext classContext, MethodGen methodGen, CFG cfg, Dataflow<ResourceValueFrame,ResourceValueAnalysis<Resource>> dataflow, Resource resource)

prescreen

public abstract boolean prescreen(ClassContext classContext, Method method)

report

public void report()

visitClassContext

public void visitClassContext(ClassContext classContext)
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.