package net.jaekl.cfb.analyze;
+import java.io.PrintWriter;
import java.util.HashSet;
import net.jaekl.cfb.xml.BugInstance;
public BugInstance[] getNew() { return m_new.toArray(new BugInstance[m_new.size()]); }
public int getNumNew() { return m_new.size(); }
+ public void dump(PrintWriter pw) {
+ pw.println("=========================");
+ pw.println(" NEW BUGS (" + m_new.size() + ")");
+ pw.println("-------------------------");
+ for (BugInstance bug : m_new) {
+ bug.dump(pw, 2);
+ }
+
+ pw.println("=========================");
+ pw.println(" FIXED BUGS (" + m_fixed.size() + ")");
+ pw.println("-------------------------");
+ for (BugInstance bug : m_fixed) {
+ bug.dump(pw, 2);
+ }
+
+ pw.println("=========================");
+ pw.println(" OLD BUGS (" + m_common.size() + ")");
+ pw.println("-------------------------");
+ for (BugInstance bug : m_common) {
+ bug.dump(pw, 2);
+ }
+ }
+
void computeDelta(Analysis before, Analysis after)
{
m_fixed.clear();
HashSet<BugInstance> beforeBugs = new HashSet<BugInstance>();
- beforeBugs.addAll(before.getBugCollection().getBugs());
+ if (null != before) {
+ beforeBugs.addAll(before.getBugCollection().getBugs());
+ }
for (BugInstance bug : after.getBugCollection().getBugs()) {
if (beforeBugs.contains(bug)) {
}
}
+ if (null == before) {
+ return;
+ }
+
for (BugInstance bug : before.getBugCollection().getBugs()) {
if (! m_common.contains(bug)) {
m_fixed.add(bug);