diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-12-12 08:35:05 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-12-12 08:35:05 +0000 |
commit | 581ec396e4db2c4e4e6f79c630f36e1050a7ec57 (patch) | |
tree | c9f0cc34e1baf94e5eb8c54710167a67b51b461f | |
parent | 089afd5d6c1eb0b25cfc7df54a909e27e2f9ad08 (diff) | |
parent | fde271c55c4ad799438cac30173f25368c0ffa02 (diff) | |
download | jdiff-p-preview-1.tar.gz |
Snap for 4498106 from fde271c55c4ad799438cac30173f25368c0ffa02 to pi-releaseandroid-vts-9.0_r9android-vts-9.0_r8android-vts-9.0_r7android-vts-9.0_r6android-vts-9.0_r5android-vts-9.0_r4android-vts-9.0_r19android-vts-9.0_r18android-vts-9.0_r17android-vts-9.0_r16android-vts-9.0_r15android-vts-9.0_r14android-vts-9.0_r13android-vts-9.0_r12android-vts-9.0_r11android-vts-9.0_r10android-security-9.0.0_r76android-security-9.0.0_r75android-security-9.0.0_r74android-security-9.0.0_r73android-security-9.0.0_r72android-security-9.0.0_r71android-security-9.0.0_r70android-security-9.0.0_r69android-security-9.0.0_r68android-security-9.0.0_r67android-security-9.0.0_r66android-security-9.0.0_r65android-security-9.0.0_r64android-security-9.0.0_r63android-security-9.0.0_r62android-p-preview-5android-p-preview-4android-p-preview-1android-cts-9.0_r9android-cts-9.0_r8android-cts-9.0_r7android-cts-9.0_r6android-cts-9.0_r5android-cts-9.0_r4android-cts-9.0_r3android-cts-9.0_r20android-cts-9.0_r2android-cts-9.0_r19android-cts-9.0_r18android-cts-9.0_r17android-cts-9.0_r16android-cts-9.0_r15android-cts-9.0_r14android-cts-9.0_r13android-cts-9.0_r12android-cts-9.0_r11android-cts-9.0_r10android-cts-9.0_r1android-9.0.0_r9android-9.0.0_r8android-9.0.0_r7android-9.0.0_r61android-9.0.0_r60android-9.0.0_r6android-9.0.0_r59android-9.0.0_r58android-9.0.0_r57android-9.0.0_r56android-9.0.0_r55android-9.0.0_r54android-9.0.0_r53android-9.0.0_r52android-9.0.0_r51android-9.0.0_r50android-9.0.0_r5android-9.0.0_r49android-9.0.0_r48android-9.0.0_r3android-9.0.0_r2android-9.0.0_r18android-9.0.0_r17android-9.0.0_r10android-9.0.0_r1security-pi-releasepie-vts-releasepie-security-releasepie-s2-releasepie-release-2pie-releasepie-r2-s2-releasepie-r2-s1-releasepie-r2-releasepie-platform-releasepie-gsipie-cuttlefish-testingpie-cts-releasepie-arcp-preview-1
Change-Id: I5467bbd9dc564e38d8765c5289b0c8a2bb921a9b
-rwxr-xr-x | src/jdiff/APIDiff.java | 10 | ||||
-rwxr-xr-x | src/jdiff/ClassAPI.java | 17 | ||||
-rwxr-xr-x | src/jdiff/ConstructorAPI.java | 4 | ||||
-rwxr-xr-x | src/jdiff/FieldAPI.java | 4 | ||||
-rwxr-xr-x | src/jdiff/HTMLReportGenerator.java | 66 | ||||
-rwxr-xr-x | src/jdiff/PackageAPI.java | 7 | ||||
-rwxr-xr-x | src/jdiff/PackageDiff.java | 9 |
7 files changed, 58 insertions, 59 deletions
diff --git a/src/jdiff/APIDiff.java b/src/jdiff/APIDiff.java index 4b4fd26..f590516 100755 --- a/src/jdiff/APIDiff.java +++ b/src/jdiff/APIDiff.java @@ -14,11 +14,11 @@ import com.sun.javadoc.*; public class APIDiff { /** Packages added in the new API. */ - public List packagesAdded = null; // PackageAPI[] + public final List<PackageAPI> packagesAdded = new ArrayList<>(); /** Packages removed in the new API. */ - public List packagesRemoved = null; // PackageAPI[] + public final List<PackageAPI> packagesRemoved = new ArrayList<>(); /** Packages changed in the new API. */ - public List packagesChanged = null; // PackageDiff[] + public final List<PackageDiff> packagesChanged = new ArrayList<>(); /** Name of the old API. */ public static String oldAPIName_; @@ -32,9 +32,5 @@ public class APIDiff { public APIDiff() { oldAPIName_ = null; newAPIName_ = null; - packagesAdded = new ArrayList(); // PackageAPI[] - packagesRemoved = new ArrayList(); // PackageAPI[] - packagesChanged = new ArrayList(); // PackageDiff[] } } - diff --git a/src/jdiff/ClassAPI.java b/src/jdiff/ClassAPI.java index 9490cc7..f9fb737 100755 --- a/src/jdiff/ClassAPI.java +++ b/src/jdiff/ClassAPI.java @@ -13,7 +13,7 @@ import java.util.*; * See the file LICENSE.txt for copyright details. * @author Matthew Doar, mdoar@pobox.com */ -class ClassAPI implements Comparable { +class ClassAPI implements Comparable<ClassAPI> { /** Name of the class, not fully qualified. */ public String name_; @@ -31,16 +31,16 @@ class ClassAPI implements Comparable { public String extends_; // Can only extend zero or one class or interface /** Interfaces implemented by this class. */ - public List implements_; // String[] + public final List<String> implements_ = new ArrayList<>(); /** Constructors in this class. */ - public List ctors_; // ConstructorAPI[] + public final List<ConstructorAPI> ctors_ = new ArrayList<>(); /** Methods in this class. */ - public List methods_; // MethodAPI[] + public final List<MethodAPI> methods_ = new ArrayList<>(); /** Fields in this class. */ - public List fields_; //FieldAPI[] + public final List<FieldAPI> fields_ = new ArrayList<>(); /** The doc block, default is null. */ public String doc_ = null; @@ -53,15 +53,10 @@ class ClassAPI implements Comparable { isInterface_ = isInterface; isAbstract_ = isAbstract; modifiers_ = modifiers; - - implements_ = new ArrayList(); // String[] - ctors_ = new ArrayList(); // ConstructorAPI[] - methods_ = new ArrayList(); // MethodAPI[] - fields_ = new ArrayList(); // FieldAPI[] } /** Compare two ClassAPI objects by all the known information. */ - public int compareTo(Object o) { + public int compareTo(ClassAPI o) { ClassAPI oClassAPI = (ClassAPI)o; int comp = name_.compareTo(oClassAPI.name_); if (comp != 0) diff --git a/src/jdiff/ConstructorAPI.java b/src/jdiff/ConstructorAPI.java index 65467ef..f2caeba 100755 --- a/src/jdiff/ConstructorAPI.java +++ b/src/jdiff/ConstructorAPI.java @@ -13,7 +13,7 @@ import java.util.*; * See the file LICENSE.txt for copyright details. * @author Matthew Doar, mdoar@pobox.com */ -class ConstructorAPI implements Comparable { +class ConstructorAPI implements Comparable<ConstructorAPI> { /** * Name of the constructor. * Either this or type_ must be non-null @@ -58,7 +58,7 @@ class ConstructorAPI implements Comparable { } /** Compare two ConstructorAPI objects by type and modifiers. */ - public int compareTo(Object o) { + public int compareTo(ConstructorAPI o) { ConstructorAPI constructorAPI = (ConstructorAPI)o; int comp = compareNullIsLeast(name_, constructorAPI.name_); if (comp != 0) diff --git a/src/jdiff/FieldAPI.java b/src/jdiff/FieldAPI.java index 151e729..e8e449b 100755 --- a/src/jdiff/FieldAPI.java +++ b/src/jdiff/FieldAPI.java @@ -13,7 +13,7 @@ import java.util.*; * See the file LICENSE.txt for copyright details. * @author Matthew Doar, mdoar@pobox.com */ -class FieldAPI implements Comparable { +class FieldAPI implements Comparable<FieldAPI> { /** Name of the field. */ public String name_; @@ -67,7 +67,7 @@ class FieldAPI implements Comparable { } /** Compare two FieldAPI objects, including name, type and modifiers. */ - public int compareTo(Object o) { + public int compareTo(FieldAPI o) { FieldAPI oFieldAPI = (FieldAPI)o; int comp = name_.compareTo(oFieldAPI.name_); if (comp != 0) diff --git a/src/jdiff/HTMLReportGenerator.java b/src/jdiff/HTMLReportGenerator.java index c0ca4ff..b906959 100755 --- a/src/jdiff/HTMLReportGenerator.java +++ b/src/jdiff/HTMLReportGenerator.java @@ -184,11 +184,9 @@ public class HTMLReportGenerator { public void writeReport(APIDiff apiDiff) { // Report packages which were removed in the new API - if (apiDiff.packagesRemoved.size() != 0) { + if (!apiDiff.packagesRemoved.isEmpty()) { writeTableStart("Removed Packages", 2); - Iterator iter = apiDiff.packagesRemoved.iterator(); - while (iter.hasNext()) { - PackageAPI pkgAPI = (PackageAPI)(iter.next()); + for (PackageAPI pkgAPI : apiDiff.packagesRemoved) { String pkgName = pkgAPI.name_; if (trace) System.out.println("Package " + pkgName + " was removed."); writePackageTableEntry(pkgName, 0, pkgAPI.doc_, false); @@ -197,39 +195,36 @@ public class HTMLReportGenerator { } // Report packages which were added in the new API - if (apiDiff.packagesAdded.size() != 0) { + if (!apiDiff.packagesAdded.isEmpty()) { writeTableStart("Added Packages", 2); - Iterator iter = apiDiff.packagesAdded.iterator(); - while (iter.hasNext()) { - PackageAPI pkgAPI = (PackageAPI)(iter.next()); + for (PackageAPI pkgAPI : apiDiff.packagesAdded) { String pkgName = pkgAPI.name_; if (trace) System.out.println("Package " + pkgName + " was added."); writePackageTableEntry(pkgName, 1, pkgAPI.doc_, false); } writeTableEnd(); + + // Now emit a separate file for each added package. + for (PackageAPI pkgAPI : apiDiff.packagesAdded) { + reportAddedPackage(pkgAPI); + } } // Report packages which were changed in the new API - if (apiDiff.packagesChanged.size() != 0) { + if (!apiDiff.packagesChanged.isEmpty()) { // Emit a table of changed packages, with links to the file // for each package. writeTableStart("Changed Packages", 3); - Iterator iter = apiDiff.packagesChanged.iterator(); - while (iter.hasNext()) { - PackageDiff pkgDiff = (PackageDiff)(iter.next()); + for (PackageDiff pkgDiff : apiDiff.packagesChanged) { String pkgName = pkgDiff.name_; if (trace) System.out.println("Package " + pkgName + " was changed."); writePackageTableEntry(pkgName, 2, null, false); } writeTableEnd(); - writeText("<!-- End of API section -->"); // Now emit a separate file for each changed package. - writeText("<!-- Start of packages section -->"); - PackageDiff[] pkgDiffs = new PackageDiff[apiDiff.packagesChanged.size()]; - pkgDiffs = (PackageDiff[])apiDiff.packagesChanged.toArray(pkgDiffs); - for (int i = 0; i < pkgDiffs.length; i++) { - reportChangedPackage(pkgDiffs, i); + for (PackageDiff pkgDiff : apiDiff.packagesChanged) { + reportChangedPackage(pkgDiff); } } writeText(" </div> "); @@ -251,13 +246,37 @@ public class HTMLReportGenerator { writeText(" </div> <!-- end body-content --> "); } + /** + * Write out a quick redirection file for added packages. + */ + public void reportAddedPackage(PackageAPI pkgAPI) { + String pkgName = pkgAPI.name_; + + String localReportFileName = reportFileName + JDiff.DIR_SEP + "pkg_" + pkgName + + reportFileExt; + if (outputDir != null) + localReportFileName = outputDir + JDiff.DIR_SEP + localReportFileName; + + try (PrintWriter pw = new PrintWriter(new FileOutputStream(localReportFileName))) { + // Link to HTML file for the package + String pkgRef = newDocPrefix + pkgName.replace('.', '/'); + pw.write("<html><head><meta http-equiv=\"refresh\" content=\"0;URL='" + pkgRef + + "/package-summary.html'\" /></head></html>"); + } catch(IOException e) { + System.out.println("IO Error while attempting to create " + localReportFileName); + System.out.println("Error: "+ e.getMessage()); + System.exit(1); + } + for (ClassAPI classAPI : pkgAPI.classes_) { + reportAddedClass(pkgAPI.name_, classAPI); + } + } /** * Write out the details of a changed package in a separate file. */ - public void reportChangedPackage(PackageDiff[] pkgDiffs, int pkgIndex) { - PackageDiff pkgDiff = pkgDiffs[pkgIndex]; + public void reportChangedPackage(PackageDiff pkgDiff) { String pkgName = pkgDiff.name_; PrintWriter oldReportFile = null; @@ -288,14 +307,7 @@ public class HTMLReportGenerator { // A link to the package in the new API String linkedPkgName = "<A HREF=\"" + pkgRef + ".html\" target=\"_top\"><font size=\"+1\"><code>" + pkgName + "</code></font></A>"; String prevPkgRef = null; - if (pkgIndex != 0) { - prevPkgRef = "pkg_" + pkgDiffs[pkgIndex-1].name_ + reportFileExt; - } - // Create the HTML link to the next package String nextPkgRef = null; - if (pkgIndex < pkgDiffs.length - 1) { - nextPkgRef = "pkg_" + pkgDiffs[pkgIndex+1].name_ + reportFileExt; - } writeSectionHeader("Package " + linkedPkgName, pkgName, prevPkgRef, nextPkgRef, diff --git a/src/jdiff/PackageAPI.java b/src/jdiff/PackageAPI.java index 885752f..8a82bea 100755 --- a/src/jdiff/PackageAPI.java +++ b/src/jdiff/PackageAPI.java @@ -13,13 +13,13 @@ import java.util.*; * See the file LICENSE.txt for copyright details. * @author Matthew Doar, mdoar@pobox.com */ -class PackageAPI implements Comparable { +class PackageAPI implements Comparable<PackageAPI> { /** Full qualified name of the package. */ public String name_; /** Classes within this package. */ - public List classes_; // ClassAPI[] + public final List<ClassAPI> classes_ = new ArrayList<>(); /** The doc block, default is null. */ public String doc_ = null; @@ -27,11 +27,10 @@ class PackageAPI implements Comparable { /** Constructor. */ public PackageAPI(String name) { name_ = name; - classes_ = new ArrayList(); // ClassAPI[] } /** Compare two PackageAPI objects by name. */ - public int compareTo(Object o) { + public int compareTo(PackageAPI o) { PackageAPI oPackageAPI = (PackageAPI)o; if (APIComparator.docChanged(doc_, oPackageAPI.doc_)) return -1; diff --git a/src/jdiff/PackageDiff.java b/src/jdiff/PackageDiff.java index 94606ac..495f6e6 100755 --- a/src/jdiff/PackageDiff.java +++ b/src/jdiff/PackageDiff.java @@ -14,11 +14,11 @@ class PackageDiff { public String name_; /** Classes added in the new API. */ - public List<ClassAPI> classesAdded = null; + public final List<ClassAPI> classesAdded = new ArrayList<>(); /** Classes removed in the new API. */ - public List<ClassAPI> classesRemoved = null; + public final List<ClassAPI> classesRemoved = new ArrayList<>(); /** Classes changed in the new API. */ - public List<ClassDiff> classesChanged = null; + public final List<ClassDiff> classesChanged = new ArrayList<>(); /** * A string describing the changes in documentation. @@ -31,8 +31,5 @@ class PackageDiff { /** Default constructor. */ public PackageDiff(String name) { name_ = name; - classesAdded = new ArrayList<>(); - classesRemoved = new ArrayList<>(); - classesChanged = new ArrayList<>(); } } |