Package edu.umd.cs.findbugs
Class SortedBugCollection
java.lang.Object
edu.umd.cs.findbugs.SortedBugCollection
- All Implemented Interfaces:
BugCollection,Iterable<BugInstance>
An implementation of
BugCollection that keeps the BugInstances sorted
by class (using the native comparison ordering of BugInstance's compareTo()
method as a tie-breaker).- Author:
- David Hovemeyer
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic class -
Field Summary
Fields inherited from interface edu.umd.cs.findbugs.BugCollection
ANALYSIS_ERROR_ELEMENT_NAME, APP_CLASS_ELEMENT_NAME, CLASS_HASHES_ELEMENT_NAME, ERROR_ELEMENT_NAME, ERROR_EXCEPTION_ELEMENT_NAME, ERROR_MESSAGE_ELEMENT_NAME, ERROR_STACK_TRACE_ELEMENT_NAME, ERRORS_ELEMENT_NAME, HISTORY_ELEMENT_NAME, MISSING_CLASS_ELEMENT_NAME, PROJECT_ELEMENT_NAME, ROOT_ELEMENT_NAME, SRCMAP_ELEMENT_NAME, SUMMARY_HTML_ELEMENT_NAME -
Constructor Summary
ConstructorsConstructorDescriptionConstructor.SortedBugCollection(Project project) SortedBugCollection(ProjectStats projectStats) Constructor.SortedBugCollection(ProjectStats projectStats, Project project) SortedBugCollection(ProjectStats projectStats, Comparator<BugInstance> comparator) Constructor.SortedBugCollection(ProjectStats projectStats, Comparator<BugInstance> comparator, Project project) SortedBugCollection(Comparator<BugInstance> comparator) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionbooleanadd(BugInstance bugInstance) Add a BugInstance to this BugCollection.booleanadd(BugInstance bugInstance, boolean updateActiveTime) Add a BugInstance to this BugCollection.voidaddAll(Collection<BugInstance> collection) Add a Collection of BugInstances to this BugCollection object.voidaddAll(Collection<BugInstance> collection, boolean updateActiveTime) Add a Collection of BugInstances to this BugCollection object.voidaddAppVersion(AppVersion appVersion) Add an AppVersion representing a version of the analyzed application.voidaddError(AnalysisError error) Add an analysis error.voidAdd an analysis error.voidvoidaddMissingClass(String className) Add a missing class message.Get an Iterator over AppVersions defined in the collection.voidvoidClear all AppVersions representing previously-analyzed versions of the application.voidvoidvoidvoidstatic voidcloneAll(Collection<BugInstance> dest, Collection<BugInstance> source) Clone all of the BugInstance objects in the source Collection and add them to the destination Collection.voidbooleancontains(BugInstance bugInstance) Create a new empty BugCollection with the same metadata as this one.longGet the timestamp for when the analysis was performed.getAppVersionFromSequenceNumber(long target) Gets the AppVersion corresponding to the given sequence number.getClassFeatureSet(String className) Return the Collection storing the BugInstance objects.Get the current AppVersion.Collection<? extends AnalysisError> getMatching(BugInstance bugInstance) Get the project stats.Get the current release name.longGet the sequence number of the BugCollection.longlongGet the timestamp for the analyzed code (when it was compiled)longbooleanReturn whether textual messages will be added to any generated XMLbooleanbooleanbooleanReturns whether this bug collection contains results from multiple analysis runs, either of different version of the software or from different versions of FindBugs.iterator()Return an Iterator over all the BugInstance objects in the BugCollection.lookupFromUniqueId(String uniqueId) Deprecated.progessMonitoredInputStream(File f, String msg) progressMonitoredInputStream(InputStream in, int length, String msg) voidRead XML data from given file into this object, populating given Project as a side effect.voidreadXML(InputStream in) Read XML data from given input stream into this object, populating the Project as a side effect.voidreadXML(InputStream in, File base) Read XML data from given input stream into this object, populating the Project as a side effect.voidRead XML data from given reader into this object, populating the Project as a side effect.voidRead XML data from given file into this object, populating given Project as a side effect.voidbooleanremove(BugInstance bugInstance) voidsetAnalysisTimestamp(long timestamp) Set the timestamp for when the analysis was performed.voidsetAnalysisVersion(String version) Set the version of FindBugs used to perform the analysisvoidsetApplySuppressions(boolean applySuppressions) voidsetClassFeatureSet(ClassFeatureSet classFeatureSet) voidsetMinimalXML(boolean minimalXML) Set whether we should minimize XMLvoidsetReleaseName(String releaseName) Set the current release name.voidsetSequenceNumber(long sequence) Set the sequence number of the BugCollection.voidsetTimestamp(long timestamp) Get the timestamp for the analyzed code (when it was compiled)voidsetWithMessages(boolean withMessages) Set whether textual messages should be added to any generated XMLorg.dom4j.DocumentConvert the BugCollection into a dom4j Document object.toString()voidtrimAppVersions(long numberToRetain) wrapGzip(InputStream in, Object source) voidwriteEpilogue(XMLOutput xmlOutput) voidwritePrologue(XMLOutput xmlOutput) voidWrite the BugCollection to an XMLOutput object.voidWrite this BugCollection to a file as XML.voidwriteXML(OutputStream out) Write the BugCollection to given output stream as XML using a UTF8 encoding.voidWrite the BugCollection to given output stream as XML.voidWrite this BugCollection to a file as XML.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Constructor Details
-
SortedBugCollection
-
SortedBugCollection
- Throws:
IOExceptionorg.dom4j.DocumentException
-
SortedBugCollection
public SortedBugCollection()Constructor. Creates an empty object. -
SortedBugCollection
Constructor. Creates an empty object. -
SortedBugCollection
Constructor. Creates an empty object given an existing ProjectStats.- Parameters:
projectStats- the ProjectStats
-
SortedBugCollection
-
SortedBugCollection
Constructor. Creates an empty object given an existing ProjectStats.- Parameters:
projectStats- the ProjectStatscomparator- to use for sorting bug instances
-
SortedBugCollection
public SortedBugCollection(ProjectStats projectStats, Comparator<BugInstance> comparator, Project project)
-
-
Method Details
-
getTimeStartedLoading
public long getTimeStartedLoading() -
getTimeFinishedLoading
public long getTimeFinishedLoading() -
getDataSource
-
getProject
- Specified by:
getProjectin interfaceBugCollection
-
isApplySuppressions
public boolean isApplySuppressions()- Specified by:
isApplySuppressionsin interfaceBugCollection
-
setApplySuppressions
public void setApplySuppressions(boolean applySuppressions) - Specified by:
setApplySuppressionsin interfaceBugCollection
-
getAnalysisTimestamp
public long getAnalysisTimestamp()Description copied from interface:BugCollectionGet the timestamp for when the analysis was performed.- Specified by:
getAnalysisTimestampin interfaceBugCollection
-
setAnalysisTimestamp
public void setAnalysisTimestamp(long timestamp) Description copied from interface:BugCollectionSet the timestamp for when the analysis was performed.- Specified by:
setAnalysisTimestampin interfaceBugCollection- Parameters:
timestamp- the analysis timestamp.
-
addAll
Add a Collection of BugInstances to this BugCollection object. This just calls add(BugInstance) for each instance in the input collection.- Parameters:
collection- the Collection of BugInstances to add
-
addAll
Add a Collection of BugInstances to this BugCollection object.- Parameters:
collection- the Collection of BugInstances to addupdateActiveTime- true if active time of added BugInstances should be updated to match collection: false if not
-
add
Add a BugInstance to this BugCollection. This just calls add(bugInstance, true).- Specified by:
addin interfaceBugCollection- Parameters:
bugInstance- the BugInstance- Returns:
- true if the BugInstance was added, or false if a matching BugInstance was already in the BugCollection
-
addError
Add an analysis error.- Specified by:
addErrorin interfaceBugCollection- Parameters:
message- the error message
-
getCurrentAppVersion
Get the current AppVersion.- Specified by:
getCurrentAppVersionin interfaceBugCollection
-
readXML
Read XML data from given file into this object, populating given Project as a side effect.- Specified by:
readXMLin interfaceBugCollection- Parameters:
fileName- name of the file to read- Throws:
IOExceptionorg.dom4j.DocumentException
-
readXML
Read XML data from given file into this object, populating given Project as a side effect.- Parameters:
file- the file- Throws:
IOExceptionorg.dom4j.DocumentException
-
readXML
- Throws:
IOExceptionorg.dom4j.DocumentException
-
readXML
public void readXML(@WillClose InputStream in, File base) throws IOException, org.dom4j.DocumentException Read XML data from given input stream into this object, populating the Project as a side effect. An attempt will be made to close the input stream (even if an exception is thrown).- Parameters:
in- the InputStream- Throws:
IOExceptionorg.dom4j.DocumentException
-
readXML
Description copied from interface:BugCollectionRead XML data from given input stream into this object, populating the Project as a side effect. An attempt will be made to close the input stream (even if an exception is thrown).- Specified by:
readXMLin interfaceBugCollection- Parameters:
in- the InputStream- Throws:
IOExceptionorg.dom4j.DocumentException
-
readXML
Description copied from interface:BugCollectionRead XML data from given reader into this object, populating the Project as a side effect. An attempt will be made to close the reader (even if an exception is thrown).- Specified by:
readXMLin interfaceBugCollection- Parameters:
reader- the Reader- Throws:
IOExceptionorg.dom4j.DocumentException
-
writeXML
Description copied from interface:BugCollectionWrite the BugCollection to given output stream as XML using a UTF8 encoding. The output stream will be closed, even if an exception is thrown.- Specified by:
writeXMLin interfaceBugCollection- Parameters:
out- the OutputStream to write to- Throws:
IOException
-
writeXML
Write this BugCollection to a file as XML.- Specified by:
writeXMLin interfaceBugCollection- Parameters:
fileName- the file to write to- Throws:
IOException
-
writeXML
Write this BugCollection to a file as XML.- Parameters:
file- the file to write to- Throws:
IOException
-
toDocument
public org.dom4j.Document toDocument()Convert the BugCollection into a dom4j Document object.- Specified by:
toDocumentin interfaceBugCollection- Returns:
- the Document representing the BugCollection as a dom4j tree
-
writeXML
Write the BugCollection to given output stream as XML. The output stream will be closed, even if an exception is thrown.- Specified by:
writeXMLin interfaceBugCollection- Parameters:
out- the OutputStream to write to- Throws:
IOException
-
writePrologue
- Specified by:
writeProloguein interfaceBugCollection- Throws:
IOException
-
computeBugHashes
public void computeBugHashes() -
writeXML
Write the BugCollection to an XMLOutput object. The finish() method of the XMLOutput object is guaranteed to be called.To write the SummaryHTML element, set property findbugs.report.SummaryHTML to "true".
- Specified by:
writeXMLin interfaceBugCollection- Parameters:
xmlOutput- the XMLOutput object- Throws:
IOException
-
writeEpilogue
- Specified by:
writeEpiloguein interfaceBugCollection- Throws:
IOException
-
cloneAll
Clone all of the BugInstance objects in the source Collection and add them to the destination Collection.- Parameters:
dest- the destination Collectionsource- the source Collection
-
add
Description copied from interface:BugCollectionAdd a BugInstance to this BugCollection.- Specified by:
addin interfaceBugCollection- Parameters:
bugInstance- the BugInstanceupdateActiveTime- true if the warning's active time should be updated to include the collection's current time- Returns:
- true if the BugInstance was added, or false if a matching BugInstance was already in the BugCollection
-
remove
-
iterator
Description copied from interface:BugCollectionReturn an Iterator over all the BugInstance objects in the BugCollection.- Specified by:
iteratorin interfaceBugCollection- Specified by:
iteratorin interfaceIterable<BugInstance>
-
getCollection
Description copied from interface:BugCollectionReturn the Collection storing the BugInstance objects.- Specified by:
getCollectionin interfaceBugCollection
-
addError
-
addError
Description copied from interface:BugCollectionAdd an analysis error.- Specified by:
addErrorin interfaceBugCollection- Parameters:
error- the AnalysisError object to add
-
clearErrors
public void clearErrors() -
addMissingClass
Description copied from interface:BugCollectionAdd a missing class message.- Specified by:
addMissingClassin interfaceBugCollection- Parameters:
className- the missing class message
-
getErrors
-
missingClassIterator
-
contains
-
getMatching
-
getSummaryHTML
- Throws:
IOException
-
getProjectStats
Description copied from interface:BugCollectionGet the project stats.- Specified by:
getProjectStatsin interfaceBugCollection
-
lookupFromUniqueId
Deprecated.Description copied from interface:BugCollectionLook up a BugInstance by its unique id.- Specified by:
lookupFromUniqueIdin interfaceBugCollection- Parameters:
uniqueId- the BugInstance's unique id.- Returns:
- the BugInstance with the given unique id, or null if there is no such BugInstance This is deprecated; uniqueIDs are not persistent.
-
isMultiversion
public boolean isMultiversion()Returns whether this bug collection contains results from multiple analysis runs, either of different version of the software or from different versions of FindBugs.- Specified by:
isMultiversionin interfaceBugCollection
-
hasDeadBugs
public boolean hasDeadBugs()- Specified by:
hasDeadBugsin interfaceBugCollection
-
getSequenceNumber
public long getSequenceNumber()Description copied from interface:BugCollectionGet the sequence number of the BugCollection. This value represents the number of times the user has analyzed a different version of the application and updated the historical bug collection using the UpdateBugCollection class.- Specified by:
getSequenceNumberin interfaceBugCollection- Returns:
- the sequence number
-
setSequenceNumber
public void setSequenceNumber(long sequence) Description copied from interface:BugCollectionSet the sequence number of the BugCollection.- Specified by:
setSequenceNumberin interfaceBugCollection- Parameters:
sequence- the sequence number- See Also:
-
duplicate
-
createEmptyCollectionWithMetadata
Description copied from interface:BugCollectionCreate a new empty BugCollection with the same metadata as this one.- Specified by:
createEmptyCollectionWithMetadatain interfaceBugCollection- Returns:
- a new empty BugCollection with the same metadata as this one
-
clearBugInstances
public void clearBugInstances() -
clearMissingClasses
public void clearMissingClasses()- Specified by:
clearMissingClassesin interfaceBugCollection
-
getReleaseName
Description copied from interface:BugCollectionGet the current release name.- Specified by:
getReleaseNamein interfaceBugCollection- Returns:
- current release name
-
setReleaseName
Description copied from interface:BugCollectionSet the current release name.- Specified by:
setReleaseNamein interfaceBugCollection- Parameters:
releaseName- the current release name
-
appVersionIterator
Description copied from interface:BugCollectionGet an Iterator over AppVersions defined in the collection.- Specified by:
appVersionIteratorin interfaceBugCollection
-
addAppVersion
Description copied from interface:BugCollectionAdd an AppVersion representing a version of the analyzed application.- Specified by:
addAppVersionin interfaceBugCollection- Parameters:
appVersion- the AppVersion
-
clearAppVersions
public void clearAppVersions()Description copied from interface:BugCollectionClear all AppVersions representing previously-analyzed versions of the application.- Specified by:
clearAppVersionsin interfaceBugCollection
-
trimAppVersions
public void trimAppVersions(long numberToRetain) -
setTimestamp
public void setTimestamp(long timestamp) Description copied from interface:BugCollectionGet the timestamp for the analyzed code (when it was compiled)- Specified by:
setTimestampin interfaceBugCollection- Parameters:
timestamp- the timestamp.
-
getTimestamp
public long getTimestamp()Description copied from interface:BugCollectionGet the timestamp for the analyzed code (when it was compiled)- Specified by:
getTimestampin interfaceBugCollection
-
getClassFeatureSet
-
setClassFeatureSet
- Specified by:
setClassFeatureSetin interfaceBugCollection
-
classFeatureSetIterator
-
clearClassFeatures
public void clearClassFeatures()- Specified by:
clearClassFeaturesin interfaceBugCollection
-
setWithMessages
public void setWithMessages(boolean withMessages) Description copied from interface:BugCollectionSet whether textual messages should be added to any generated XML- Specified by:
setWithMessagesin interfaceBugCollection
-
getWithMessages
public boolean getWithMessages()Description copied from interface:BugCollectionReturn whether textual messages will be added to any generated XML- Specified by:
getWithMessagesin interfaceBugCollection
-
getAppVersionFromSequenceNumber
Description copied from interface:BugCollectionGets the AppVersion corresponding to the given sequence number.- Specified by:
getAppVersionFromSequenceNumberin interfaceBugCollection
-
findBug
- Specified by:
findBugin interfaceBugCollection
-
setAnalysisVersion
Description copied from interface:BugCollectionSet the version of FindBugs used to perform the analysis- Specified by:
setAnalysisVersionin interfaceBugCollection- Parameters:
version- the analysis version.
-
getAnalysisVersion
-
progessMonitoredInputStream
- Throws:
IOException
-
progessMonitoredInputStream
- Throws:
IOException
-
progressMonitoredInputStream
-
wrapGzip
-
setMinimalXML
public void setMinimalXML(boolean minimalXML) Description copied from interface:BugCollectionSet whether we should minimize XML- Specified by:
setMinimalXMLin interfaceBugCollection
-
bugsPopulated
public void bugsPopulated()- Specified by:
bugsPopulatedin interfaceBugCollection
-
toString
-