Package edu.umd.cs.findbugs.gui2
Class BugSet
java.lang.Object
edu.umd.cs.findbugs.gui2.BugSet
- All Implemented Interfaces:
Iterable<BugLeafNode>
BugSet is what we use instead of SortedBugCollections. BugSet is somewhat
poorly named, in that its actually a HashList of bugs, not a Set of them. (It
can't be a set because we need to be able to sort it, also, HashList is great
for doing contains and indexOf, its just slow for removing which we never
need to do) The power of BugSet is in query. You can query a BugSet with a
BugAspects, a list of StringPairs like <priority,high>,
<designation,unclassified> and you will get out a new BugSet containing all
of the bugs that are both high priority and unclassified. Also, after the
first time a query is made, the results will come back instantly on future
calls because the old queries are cached. Note that this caching can also
lead to issues, problems with the BugTreeModel and the JTree getting out of
sync, if there comes a time when the model and tree are out of sync but come
back into sync if the tree is rebuilt, say by sorting the column headers, it
probably means that resetData needs to be called on the model after doing one
of its operations.
- Author:
- Dan
-
Method Summary
Modifier and TypeMethodDescriptionvoid
boolean
contains
(edu.umd.cs.findbugs.gui2.BugAspects.SortableValue keyValuePair) Contains takes a key/value pairget
(int index) String[]
Gets all the string values out of the bugs in the setstatic BugSet
mainBugSet should probably always be the same as the data field in the current BugTreeModel we haven't run into any issues where it isn't, but if the two aren't equal using ==, problems might occur.getUnfiltered
(int index) int
int
iterator()
query
(BugAspects a) Gives you back the BugSet containing all bugs that match your queryint
size()
int
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
Method Details
-
getMainBugSet
mainBugSet should probably always be the same as the data field in the current BugTreeModel we haven't run into any issues where it isn't, but if the two aren't equal using ==, problems might occur. If these problems do occur, See BugTreeModel.resetData() and perhaps adding a setAsRootAndCache() to it would fix the issue. This is not done right now for fear it might be slow. -
getAll
Gets all the string values out of the bugs in the set- Parameters:
s
- The Sortables you want all values for- Returns:
- all values of the sortable passed in that occur in this bugset, in order based on the sortable's compare method.
-
contains
public boolean contains(edu.umd.cs.findbugs.gui2.BugAspects.SortableValue keyValuePair) Contains takes a key/value pair- Parameters:
keyValuePair
-- Returns:
- true if a bug leaf from filterNoCache() matches the pair
-
query
Gives you back the BugSet containing all bugs that match your query -
sizeUnfiltered
public int sizeUnfiltered() -
indexOfUnfiltered
-
getUnfiltered
-
iterator
- Specified by:
iterator
in interfaceIterable<BugLeafNode>
-
clearCache
public void clearCache() -
getBugsMatchingFilter
-
size
public int size() -
indexOf
-
get
-