aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-12-11 12:19:49 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-12-11 12:19:49 +0000
commit089afd5d6c1eb0b25cfc7df54a909e27e2f9ad08 (patch)
treeaf336689a048ef2326822960bda6e053d922d1e7
parent68049f79a4568d9709f0f4815ae902f8ffc48635 (diff)
parentb052455f5696233618986c49859926379b0dd0ec (diff)
downloadjdiff-089afd5d6c1eb0b25cfc7df54a909e27e2f9ad08.tar.gz
Snap for 4496165 from b052455f5696233618986c49859926379b0dd0ec to pi-release
Change-Id: I0e86df66a93af8e44aae0066ab0cb4eddf895334
-rwxr-xr-xsrc/jdiff/HTMLReportGenerator.java37
-rwxr-xr-xsrc/jdiff/PackageDiff.java12
2 files changed, 43 insertions, 6 deletions
diff --git a/src/jdiff/HTMLReportGenerator.java b/src/jdiff/HTMLReportGenerator.java
index f45e9ac..c0ca4ff 100755
--- a/src/jdiff/HTMLReportGenerator.java
+++ b/src/jdiff/HTMLReportGenerator.java
@@ -383,6 +383,10 @@ public class HTMLReportGenerator {
writeClassTableEntry(pkgName, className, 1, classAPI.isInterface_, classAPI.doc_, false);
}
writeTableEnd();
+ // Now emit a separate file for each added class and interface.
+ for (ClassAPI classApi : pkgDiff.classesAdded) {
+ reportAddedClass(pkgName, classApi);
+ }
}
// Report classes which were changed in the new API
@@ -428,6 +432,39 @@ public class HTMLReportGenerator {
reportFile = oldReportFile;
}
+ /**
+ * Write out a quick redirection file for added classes.
+ */
+ public void reportAddedClass(String pkgName, ClassAPI classApi) {
+ String className = classApi.name_;
+
+ String localReportFileName = reportFileName + JDiff.DIR_SEP + pkgName + "." + className
+ + reportFileExt;
+ if (outputDir != null)
+ localReportFileName = outputDir + JDiff.DIR_SEP + localReportFileName;
+
+ try (PrintWriter pw = new PrintWriter(new FileOutputStream(localReportFileName))) {
+ // Link to HTML file for the class
+ String classRef = pkgName + "." + className;
+ // Deal with inner classes
+ if (className.indexOf('.') != -1) {
+ classRef = pkgName + ".";
+ classRef = classRef.replace('.', '/');
+ classRef = newDocPrefix + classRef + className;
+ } else {
+ classRef = classRef.replace('.', '/');
+ classRef = newDocPrefix + classRef;
+ }
+
+ pw.write("<html><head><meta http-equiv=\"refresh\" content=\"0;URL='" + classRef
+ + ".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);
+ }
+ }
+
/**
* Write out the details of a changed class in a separate file.
*/
diff --git a/src/jdiff/PackageDiff.java b/src/jdiff/PackageDiff.java
index ba94f6e..94606ac 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 classesAdded = null;
+ public List<ClassAPI> classesAdded = null;
/** Classes removed in the new API. */
- public List classesRemoved = null;
+ public List<ClassAPI> classesRemoved = null;
/** Classes changed in the new API. */
- public List classesChanged = null;
+ public List<ClassDiff> classesChanged = null;
/**
* A string describing the changes in documentation.
@@ -31,8 +31,8 @@ class PackageDiff {
/** Default constructor. */
public PackageDiff(String name) {
name_ = name;
- classesAdded = new ArrayList(); // ClassAPI[]
- classesRemoved = new ArrayList(); // ClassAPI[]
- classesChanged = new ArrayList(); // ClassDiff[]
+ classesAdded = new ArrayList<>();
+ classesRemoved = new ArrayList<>();
+ classesChanged = new ArrayList<>();
}
}