public class FindBugs2 extends java.lang.Object implements IFindBugsEngine
Modifier and Type | Field and Description |
---|---|
static boolean |
DEBUG |
static boolean |
PROGRESS |
static java.lang.String |
PROP_FINDBUGS_HOST_APP |
static java.lang.String |
PROP_FINDBUGS_HOST_APP_VERSION |
Constructor and Description |
---|
FindBugs2()
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addClassObserver(IClassObserver classObserver)
Add an IClassObserver.
|
void |
addFilter(java.lang.String filterFileName,
boolean include)
Set filter of bug instances to include or exclude.
|
static void |
clearAnalysisContext() |
protected void |
clearCaches()
Protected to allow Eclipse plugin remember some cache data for later reuse
|
protected void |
configureFilters(UserPreferences userPreferences) |
protected IAnalysisCache |
createAnalysisCache()
Create the analysis cache object and register it for current execution thread.
|
static void |
createAnalysisContext(Project project,
java.util.List<ClassDescriptor> appClassList,
java.lang.String sourceInfoFileName)
Create the AnalysisContext that will serve as the BCEL-compatibility
layer over the AnalysisCache.
|
void |
dispose()
To avoid cyclic cross-references and allow GC after engine is not more
needed.
|
boolean |
emitTrainingOutput()
Return whether or not training output should be emitted after analysis
completes.
|
void |
enableTrainingInput(java.lang.String trainingInputDir)
Set whether or not training input should be used to make the analysis
more precise.
|
void |
enableTrainingOutput(java.lang.String trainingOutputDir)
Set whether or not training output should be emitted.
|
void |
excludeBaselineBugs(java.lang.String baselineBugs)
Provide baseline of bugs not to report
|
void |
execute()
Execute the analysis.
|
void |
finishSettings() |
int |
getBugCount()
Get the number of bug instances that were reported during analysis.
|
BugReporter |
getBugReporter()
Get the BugReporter.
|
java.lang.String |
getCurrentClass()
Get the name of the most recent class to be analyzed.
|
int |
getErrorCount()
Get the number of errors that occurred during analysis.
|
int |
getMissingClassCount()
Get the number of time missing classes were reported during analysis.
|
Project |
getProject()
Get the Project.
|
java.lang.String |
getProjectName() |
java.lang.String |
getReleaseName() |
java.lang.String |
getTrainingInputDir()
Get the training input database directory.
|
java.lang.String |
getTrainingOutputDir()
Get the training output directory.
|
UserPreferences |
getUserPreferences()
Get the UserPreferences.
|
static void |
main(java.lang.String[] args) |
static void |
registerBuiltInAnalysisEngines(IAnalysisCache analysisCache)
Register the "built-in" analysis engines with given IAnalysisCache.
|
static void |
registerPluginAnalysisEngines(DetectorFactoryCollection detectorFactoryCollection,
IAnalysisCache analysisCache)
Register all of the analysis engines defined in the plugins contained in
a DetectorFactoryCollection with an IAnalysisCache.
|
void |
setAbridgedMessages(boolean xmlWithAbridgedMessages) |
void |
setAnalysisFeatureSettings(AnalysisFeatureSetting[] settingList)
Set analysis feature settings.
|
static void |
setAppClassList(java.util.List<ClassDescriptor> appClassList) |
void |
setApplySuppression(boolean applySuppression) |
void |
setBugReporter(BugReporter bugReporter)
Set the BugReporter.
|
void |
setBugReporterDecorators(java.util.Set<java.lang.String> explicitlyEnabled,
java.util.Set<java.lang.String> explicitlyDisabled) |
void |
setClassScreener(IClassScreener classScreener)
Set the ClassScreener.
|
void |
setDetectorFactoryCollection(DetectorFactoryCollection detectorFactoryCollection)
Set the detector factory collection to be used by this FindBugs2 engine.
|
void |
setMergeSimilarWarnings(boolean mergeSimilarWarnings) |
void |
setNoClassOk(boolean noClassOk)
Set whether or not to generate an empty output file if there were no
class files specified.
|
void |
setProgressCallback(FindBugsProgress progressCallback)
Set the progress callback that will be used to keep track of the progress
of the analysis.
|
void |
setProject(Project project)
Set the Project.
|
void |
setProjectName(java.lang.String name) |
void |
setRankThreshold(int rankThreshold) |
void |
setRelaxedReportingMode(boolean relaxedReportingMode)
Set relaxed reporting mode.
|
void |
setReleaseName(java.lang.String releaseName) |
void |
setScanNestedArchives(boolean scanNestedArchives)
Set whether or not nested archives should be scanned.
|
void |
setSourceInfoFile(java.lang.String sourceInfoFile)
Set the filename of the source info file containing line numbers for
fields and classes.
|
void |
setUserPreferences(UserPreferences userPreferences)
Set the UserPreferences representing which Detectors should be used.
|
java.util.List<ClassDescriptor> |
sortByCallGraph(java.util.Collection<ClassDescriptor> classList,
TopologicalSort.OutEdges<ClassDescriptor> outEdges) |
boolean |
useTrainingInput()
Return whether or not we should make use of training data.
|
public static final boolean DEBUG
public static final boolean PROGRESS
public static final java.lang.String PROP_FINDBUGS_HOST_APP
public static final java.lang.String PROP_FINDBUGS_HOST_APP_VERSION
public void setDetectorFactoryCollection(DetectorFactoryCollection detectorFactoryCollection)
setDetectorFactoryCollection
in interface IFindBugsEngine
detectorFactoryCollection
- The detectorFactoryCollection to set.public void execute() throws java.io.IOException, java.lang.InterruptedException
execute
in interface IFindBugsEngine
java.io.IOException
java.lang.InterruptedException
protected void clearCaches()
public void dispose()
public BugReporter getBugReporter()
IFindBugsEngine
getBugReporter
in interface IFindBugsEngine
public Project getProject()
IFindBugsEngine
getProject
in interface IFindBugsEngine
public void addClassObserver(IClassObserver classObserver)
IFindBugsEngine
addClassObserver
in interface IFindBugsEngine
classObserver
- the IClassObserverpublic void addFilter(java.lang.String filterFileName, boolean include) throws java.io.IOException, FilterException
IFindBugsEngine
addFilter
in interface IFindBugsEngine
filterFileName
- the name of the filter fileinclude
- true if the filter specifies bug instances to include, false
if it specifies bug instances to excludejava.io.IOException
FilterException
public void excludeBaselineBugs(java.lang.String baselineBugs) throws java.io.IOException, org.dom4j.DocumentException
IFindBugsEngine
excludeBaselineBugs
in interface IFindBugsEngine
baselineBugs
- the name of the xml bug baseline fileorg.dom4j.DocumentException
java.io.IOException
public void enableTrainingInput(java.lang.String trainingInputDir)
IFindBugsEngine
enableTrainingInput
in interface IFindBugsEngine
trainingInputDir
- directory to load training input frompublic void enableTrainingOutput(java.lang.String trainingOutputDir)
IFindBugsEngine
enableTrainingOutput
in interface IFindBugsEngine
trainingOutputDir
- directory to save training output inpublic int getBugCount()
IFindBugsEngine
getBugCount
in interface IFindBugsEngine
public java.lang.String getCurrentClass()
IFindBugsEngine
getCurrentClass
in interface IFindBugsEngine
public int getErrorCount()
IFindBugsEngine
getErrorCount
in interface IFindBugsEngine
public int getMissingClassCount()
IFindBugsEngine
getMissingClassCount
in interface IFindBugsEngine
public java.lang.String getReleaseName()
getReleaseName
in interface IFindBugsEngine
public java.lang.String getProjectName()
getProjectName
in interface IFindBugsEngine
public void setProjectName(java.lang.String name)
setProjectName
in interface IFindBugsEngine
name
- The project name to set.public void setAnalysisFeatureSettings(AnalysisFeatureSetting[] settingList)
IFindBugsEngine
setAnalysisFeatureSettings
in interface IFindBugsEngine
settingList
- list of analysis feature settingspublic void setBugReporter(BugReporter bugReporter)
IFindBugsEngine
setBugReporter
in interface IFindBugsEngine
bugReporter
- The BugReporter to setpublic void setClassScreener(IClassScreener classScreener)
IFindBugsEngine
setClassScreener
in interface IFindBugsEngine
classScreener
- the ClassScreener to usepublic void setProgressCallback(FindBugsProgress progressCallback)
IFindBugsEngine
setProgressCallback
in interface IFindBugsEngine
progressCallback
- the progress callbackpublic void setProject(Project project)
IFindBugsEngine
setProject
in interface IFindBugsEngine
project
- The Project to setpublic void setRelaxedReportingMode(boolean relaxedReportingMode)
IFindBugsEngine
setRelaxedReportingMode
in interface IFindBugsEngine
relaxedReportingMode
- true if relaxed reporting mode should be enabled, false if notpublic void setReleaseName(java.lang.String releaseName)
setReleaseName
in interface IFindBugsEngine
releaseName
- The releaseName to set.public void setSourceInfoFile(java.lang.String sourceInfoFile)
IFindBugsEngine
setSourceInfoFile
in interface IFindBugsEngine
sourceInfoFile
- the source info filenamepublic void setUserPreferences(UserPreferences userPreferences)
IFindBugsEngine
setUserPreferences
in interface IFindBugsEngine
userPreferences
- the UserPreferencesprotected void configureFilters(UserPreferences userPreferences)
public boolean emitTrainingOutput()
IFindBugsEngine
emitTrainingOutput
in interface IFindBugsEngine
public UserPreferences getUserPreferences()
IFindBugsEngine
getUserPreferences
in interface IFindBugsEngine
public java.lang.String getTrainingInputDir()
IFindBugsEngine
getTrainingInputDir
in interface IFindBugsEngine
public java.lang.String getTrainingOutputDir()
IFindBugsEngine
getTrainingOutputDir
in interface IFindBugsEngine
public boolean useTrainingInput()
IFindBugsEngine
useTrainingInput
in interface IFindBugsEngine
public void setScanNestedArchives(boolean scanNestedArchives)
IFindBugsEngine
setScanNestedArchives
in interface IFindBugsEngine
scanNestedArchives
- true if nested archives should be scanned, false if notpublic void setNoClassOk(boolean noClassOk)
IFindBugsEngine
setNoClassOk
in interface IFindBugsEngine
noClassOk
- true if FindBugs should generate empty output fileprotected IAnalysisCache createAnalysisCache() throws java.io.IOException
This method is protected to allow clients override it and possibly reuse some previous analysis data (for Eclipse interactive re-build)
java.io.IOException
- if error occurs registering analysis engines in a pluginpublic static void registerBuiltInAnalysisEngines(IAnalysisCache analysisCache)
analysisCache
- an IAnalysisCachepublic static void registerPluginAnalysisEngines(DetectorFactoryCollection detectorFactoryCollection, IAnalysisCache analysisCache) throws java.io.IOException
detectorFactoryCollection
- a DetectorFactoryCollectionanalysisCache
- an IAnalysisCachejava.io.IOException
public java.util.List<ClassDescriptor> sortByCallGraph(java.util.Collection<ClassDescriptor> classList, TopologicalSort.OutEdges<ClassDescriptor> outEdges)
public static void clearAnalysisContext()
public static void createAnalysisContext(Project project, java.util.List<ClassDescriptor> appClassList, @CheckForNull java.lang.String sourceInfoFileName) throws java.io.IOException
project
- The projectappClassList
- list of ClassDescriptors identifying application classessourceInfoFileName
- name of source info file (null if none)java.io.IOException
public static void setAppClassList(java.util.List<ClassDescriptor> appClassList)
public static void main(java.lang.String[] args) throws java.lang.Exception
java.lang.Exception
public void setAbridgedMessages(boolean xmlWithAbridgedMessages)
setAbridgedMessages
in interface IFindBugsEngine
public void setMergeSimilarWarnings(boolean mergeSimilarWarnings)
setMergeSimilarWarnings
in interface IFindBugsEngine
public void setApplySuppression(boolean applySuppression)
setApplySuppression
in interface IFindBugsEngine
public void setRankThreshold(int rankThreshold)
setRankThreshold
in interface IFindBugsEngine
public void finishSettings()
finishSettings
in interface IFindBugsEngine
public void setBugReporterDecorators(java.util.Set<java.lang.String> explicitlyEnabled, java.util.Set<java.lang.String> explicitlyDisabled)
setBugReporterDecorators
in interface IFindBugsEngine
FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.