aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-12-12 08:35:05 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-12-12 08:35:05 +0000
commit581ec396e4db2c4e4e6f79c630f36e1050a7ec57 (patch)
treec9f0cc34e1baf94e5eb8c54710167a67b51b461f
parent089afd5d6c1eb0b25cfc7df54a909e27e2f9ad08 (diff)
parentfde271c55c4ad799438cac30173f25368c0ffa02 (diff)
downloadjdiff-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-xsrc/jdiff/APIDiff.java10
-rwxr-xr-xsrc/jdiff/ClassAPI.java17
-rwxr-xr-xsrc/jdiff/ConstructorAPI.java4
-rwxr-xr-xsrc/jdiff/FieldAPI.java4
-rwxr-xr-xsrc/jdiff/HTMLReportGenerator.java66
-rwxr-xr-xsrc/jdiff/PackageAPI.java7
-rwxr-xr-xsrc/jdiff/PackageDiff.java9
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<>();
}
}