diff options
author | android-build-team Robot <android-build-team-robot@google.com> | 2017-12-11 12:19:49 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2017-12-11 12:19:49 +0000 |
commit | 089afd5d6c1eb0b25cfc7df54a909e27e2f9ad08 (patch) | |
tree | af336689a048ef2326822960bda6e053d922d1e7 | |
parent | 68049f79a4568d9709f0f4815ae902f8ffc48635 (diff) | |
parent | b052455f5696233618986c49859926379b0dd0ec (diff) | |
download | jdiff-089afd5d6c1eb0b25cfc7df54a909e27e2f9ad08.tar.gz |
Snap for 4496165 from b052455f5696233618986c49859926379b0dd0ec to pi-release
Change-Id: I0e86df66a93af8e44aae0066ab0cb4eddf895334
-rwxr-xr-x | src/jdiff/HTMLReportGenerator.java | 37 | ||||
-rwxr-xr-x | src/jdiff/PackageDiff.java | 12 |
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<>(); } } |