package jdiff; import java.util.*; /** * Emit a standard text report with only the names * of all packages which need a major version number change. */ public class ScriptReport { /** Default constructor. */ public ScriptReport() { } /** * Checks to see if the tested module is backwards compatible. * * @return 100 if no changes * 101 if compatible changes * 102 if not compatible */ public int run(APIComparator comp) { // Get the APIDiff APIDiff apiDiff = comp.apiDiff; if(apiDiff.packagesRemoved.size() > 0) { return 102; } Iterator piter = apiDiff.packagesChanged.iterator(); while (piter.hasNext()) { PackageDiff pkgDiff = (PackageDiff)(piter.next()); if(pkgDiff.classesRemoved.size() > 0) { return 102; } Iterator citer = pkgDiff.classesChanged.iterator(); while(citer.hasNext()) { ClassDiff classDiff = (ClassDiff)(citer.next()); if(classDiff.methodsRemoved.size() > 0) { return 102; } Iterator miter = classDiff.methodsChanged.iterator(); while (miter.hasNext()) { // Check if method has different return type MemberDiff memberDiff = (MemberDiff)(miter.next()); if(!memberDiff.oldType_ .equals(memberDiff.newType_)) { return 102; } } } } // If there were any changes, but we haven't returned yet // they must all be backwards compatible changes if(apiDiff.packagesChanged.size() > 0) { return 101; } // If we've reached here there must be no changes at all return 100; } }