cmp = a.getType().compareTo(b.getType()); if (cmp != 0) return cmp;  Iterator<BugAnnotation> lhsIter = new FilteringBugAnnotationIterator(a.annotationIterator()); Iterator<BugAnnotation> rhsIter = new FilteringBugAnnotationIterator(b.annotationIterator());  while (lhsIter.hasNext() && rhsIter.hasNext()) { BugAnnotation lhs = lhsIter.next(); BugAnnotation rhs = rhsIter.next();   cmp = lhs.getClass().getName().compareTo(rhs.getClass().getName()); if (cmp != 0) return cmp;  if (lhs.getClass() == ClassAnnotation.class) cmp = compareClasses((ClassAnnotation) lhs, (ClassAnnotation) rhs); else if (lhs.getClass() == MethodAnnotation.class) cmp = compareMethods((MethodAnnotation) lhs, (MethodAnnotation) rhs); else if (lhs.getClass() == SourceLineAnnotation.class) cmp = compareSourceLines((SourceLineAnnotation) lhs, (SourceLineAnnotation) rhs); }
	public int compare(BugInstance a, BugInstance b) {						// TODO		return 0;	}