FindBugs™ 1.3.9

edu.umd.cs.findbugs.gui2
Class BugSet

java.lang.Object
  extended by edu.umd.cs.findbugs.gui2.BugSet
All Implemented Interfaces:
java.lang.Iterable<BugLeafNode>

public class BugSet
extends java.lang.Object
implements java.lang.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 , 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
 void clearCache()
           
 boolean contains(edu.umd.cs.findbugs.gui2.BugAspects.SortableValue keyValuePair)
          Contains takes a key/value pair
 BugLeafNode get(int index)
           
 java.lang.String[] getAll(Sortables s)
          Gets all the string values out of the bugs in the set
 BugSet getBugsMatchingFilter(Matcher m)
           
static BugSet 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.
 BugLeafNode getUnfiltered(int index)
           
 int indexOf(BugLeafNode p)
           
 int indexOfUnfiltered(BugLeafNode p)
           
 java.util.Iterator<BugLeafNode> iterator()
           
 BugSet query(BugAspects a)
          Gives you back the BugSet containing all bugs that match your query
 int size()
           
 int sizeUnfiltered()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getMainBugSet

public static BugSet 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

public java.lang.String[] getAll(Sortables s)
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

public BugSet query(BugAspects a)
Gives you back the BugSet containing all bugs that match your query


sizeUnfiltered

public int sizeUnfiltered()

indexOfUnfiltered

public int indexOfUnfiltered(BugLeafNode p)

getUnfiltered

public BugLeafNode getUnfiltered(int index)

iterator

public java.util.Iterator<BugLeafNode> iterator()
Specified by:
iterator in interface java.lang.Iterable<BugLeafNode>

clearCache

public void clearCache()

getBugsMatchingFilter

public BugSet getBugsMatchingFilter(Matcher m)

size

public int size()

indexOf

public int indexOf(BugLeafNode p)

get

public BugLeafNode get(int index)

FindBugs™ 1.3.9

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