[Clirr-devel] CVS: clirr/src/java/net/sf/clirr/checks ClassHierarchyCheck.java,1.10,1.11
Status: Alpha
Brought to you by:
lkuehne
From: Simon K. <s_k...@us...> - 2004-06-21 07:09:58
|
Update of /cvsroot/clirr/clirr/src/java/net/sf/clirr/checks In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5208 Modified Files: ClassHierarchyCheck.java Log Message: Use CoIterator. Index: ClassHierarchyCheck.java =================================================================== RCS file: /cvsroot/clirr/clirr/src/java/net/sf/clirr/checks/ClassHierarchyCheck.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ClassHierarchyCheck.java 18 Jun 2004 06:52:10 -0000 1.10 +++ ClassHierarchyCheck.java 21 Jun 2004 07:09:50 -0000 1.11 @@ -26,6 +26,8 @@ import net.sf.clirr.framework.AbstractDiffReporter; import net.sf.clirr.framework.ApiDiffDispatcher; import net.sf.clirr.framework.ClassChangeCheck; +import net.sf.clirr.framework.CoIterator; +import net.sf.clirr.framework.JavaClassNameComparator; import org.apache.bcel.classfile.JavaClass; /** @@ -71,35 +73,42 @@ /** {@inheritDoc} */ public boolean check(JavaClass compatBaseline, JavaClass currentVersion) { - JavaClass[] compatSuper = compatBaseline.getSuperClasses(); - JavaClass[] currentSuper = currentVersion.getSuperClasses(); + JavaClass[] compatSupers = compatBaseline.getSuperClasses(); + JavaClass[] currentSupers = currentVersion.getSuperClasses(); boolean isThrowable = false; - for (int i = 0; i < compatSuper.length; i++) + for (int i = 0; i < compatSupers.length; i++) { - JavaClass javaClass = compatSuper[i]; + JavaClass javaClass = compatSupers[i]; if ("java.lang.Throwable".equals(javaClass.getClassName())) { isThrowable = true; } } - List added = getSetDifference(currentSuper, compatSuper); - List removed = getSetDifference(compatSuper, currentSuper); - final String className = compatBaseline.getClassName(); - for (int i = 0; i < added.size(); i++) - { - String s = (String) added.get(i); - log("Added " + s + " to the list of superclasses of " + className, - isThrowable ? Severity.WARNING : Severity.INFO, className, null, null); - } - for (int i = 0; i < removed.size(); i++) + CoIterator iter = new CoIterator( + JavaClassNameComparator.COMPARATOR, compatSupers, currentSupers); + + while (iter.hasNext()) { - String s = (String) removed.get(i); - log("Removed " + s + " from the list of superclasses of " + className, - Severity.ERROR, className, null, null); + iter.next(); + JavaClass baselineSuper = (JavaClass) iter.getLeft(); + JavaClass currentSuper = (JavaClass) iter.getRight(); + + if (baselineSuper == null) + { + log("Added " + currentSuper.getClassName() + + " to the list of superclasses of " + className, + isThrowable ? Severity.WARNING : Severity.INFO, className, null, null); + } + else if (currentSuper == null) + { + log("Removed " + baselineSuper.getClassName() + + " from the list of superclasses of " + className, + Severity.ERROR, className, null, null); + } } return true; |