3a239ab80aca1632d0aefaff9c0318098c280da3 |
|
18-Nov-2017 |
Jeff Sharkey <jsharkey@android.com> |
Emit all APIs using Predicates. Awhile back we wrote a mechanism to emit API based on a customizable Predicate<MemberInfo> which would "filter" exactly what should be included or excluded. This change extends this mechanism to be used for all API emission, specifically "current.txt" files. To accomplish this, we now have two predicates: one for deciding if a member should be emitted directly into the API being generated, and another to decide if a member can be referenced indirectly as part of emitting another API. For example, generating removed.txt, we only want to emit members tagged with "@removed", but of course it's okay for those members to reference a non-removed class like String, etc. Rewrite ApiPredicate to be general enough to support various matching requirements. Also search package hierarchy when deciding if a member matches or not, since "@hide" is often defined at the package level. Only emit superclasses and interfaces that match our predicate. If a superclass/interface doesn't match the predicate, walk further up the family tree to look for any and all superclasses/interfaces that do actually match our predicate. Consider this example: public class StringBuilder extends AbstractStringBuilder {} class AbstractStringBuilder implements Appendable {} In this case, we want to say "StringBuilder implements Appendable", because AbstractStringBuilder won't be emitted by our predicate. For fields inherited from ancestors, if a field would have matched had it been defined directly on the class being inspected, then clone that field to make it match. For methods inherited from ancestors, don't allow the class being inspected to pretend that their override is hidden. Split out eliding logic into a separate predicate that is applied as one final step. Fix bug where we weren't emitting generics. Test: manual inspection of API text files Bug: 69505783 Change-Id: Ic7f349c6cb80853967308d2f871a0b029ead0096
/external/doclava/src/com/google/doclava/PackageInfo.java
|
96c5352851b41eb6fa19c569e8974710c4c3cc72 |
|
30-Nov-2016 |
Alan Viverette <alanv@google.com> |
New error type for removal of deprecated targets Does NOT cover removal of deprecated parameters or packages. Adds gradle test target. Fixes a handful of tests that were preventing tests from compiling. Fixes support for only passing the old and new API files without removed API files, which was needed for tests. Adds tests for the removal of deprecated targets. Also adds missing tests for add/remove methods. Bug: 33069269 Test: ./gradlew doclava:test Change-Id: I9bd623657fb5ee1354ffea62c3ae27d9e6ee6d02
/external/doclava/src/com/google/doclava/PackageInfo.java
|
c47ef0928fa9036c2e9db25a093baa3bcdf72e9c |
|
20-May-2015 |
C. Sean Young <csyoung@google.com> |
resolved conflicts for merge of c10f7ae0 to mnc-dev Change-Id: I33ed09c2b635fbe83694bc1ad03e027419aa007e
|
91c627c0aa53d3b092812b965b9cb2a33f8960b8 |
|
11-May-2015 |
C. Sean Young <csyoung@google.com> |
Add the ability to specify packages or classes to ignore for ApiCheck. Right now, these are matched exactly by qualified name; subpackages are not recognized. Change-Id: I69f970cbb059be1a9705f5b36991dcdd2d210408
/external/doclava/src/com/google/doclava/PackageInfo.java
|
f9b7c1bf84c3d4eeb7b99af30e4ffe159c9fdaee |
|
25-Apr-2015 |
Guang Zhu <guangzhu@google.com> |
add new option to ApiCheck to look for new API methods When 'newapi' option is needed, ApiCheck will be in "diff" mode: * when classes are checked for consistency, newly added methods and constructors are kept in lists * when packages are checked for consistency, newly added classes and classes with new API methods are kept in list * when APIs are checked for consistency, newly added packages and pakages with new/modified classes are added * the accumulated deltas are then exported in XML format Change-Id: I3fed989e2836109e334c0e665639190196f14f4c
/external/doclava/src/com/google/doclava/PackageInfo.java
|
cbc60decb8169f18422c25ae8a384e5d91cdfe74 |
|
04-Jun-2014 |
Alex Klyubin <klyubin@google.com> |
Support marking packages as hidden via command-line. This adds support for marking specific packages as hidden via command-line switch hidePackage. This is useful when the package in question cannot be marked with @hide, for example, because the package name in .class file is different from package name in source file, or because the package may need to be visible in another body of documentation. Bug: 15073623 Change-Id: Iffcf5f3d50cc8db25a3bbfb244ce74c287e3875f (cherry-picked from 725c7378bf129464c118c636dbaef92ef2df993e) Conflicts: src/com/google/doclava/PackageInfo.java
/external/doclava/src/com/google/doclava/PackageInfo.java
|
5118ffe3bf77ec4efa070f36a7a62fd5d1bf16bf |
|
18-Feb-2014 |
Hui Shu <hush@google.com> |
Add support for @removed tag. @removed tags can be applied to packages, classes, methods, fields that were once public API, but later removed. Things annotated by @removed cannot be used by outside developers. But applications compiled against the old API where the @removed API were still public should continue to work and we must not delete the @removed APIs from the source. This fix makes sure of that. BUG: b/11293324 Change-Id: Iab3a8bdcaa0cb0742501c33e29b8121bc169bf1b
/external/doclava/src/com/google/doclava/PackageInfo.java
|
700b9f275638190f24e83a91b5105255df7f7c11 |
|
05-Oct-2013 |
Brett Chabot <brettchabot@google.com> |
Output annotations in package-summary docs. Bug 10749552 Bug 6333357 Change-Id: Iffdd04c911bafc8f2c368fc0d24af926f155928a
/external/doclava/src/com/google/doclava/PackageInfo.java
|
f2d2e93f552d699dc3dc58fb450b7e7a50128da0 |
|
20-Aug-2013 |
Adam Metcalf <gamblore@google.com> |
Unhide package of class that is shown by annotation. Change-Id: Ia3c6817ef984b30d5a9a89dcd49f53f7baf34df0
/external/doclava/src/com/google/doclava/PackageInfo.java
|
11b179627c411772f1eac023d915ab8532e55211 |
|
08-Jun-2013 |
Mathieu <mathieu.a.chartier@gmail.com> |
Check that return types are assignable instead of exact. We now check that the new return type is assignable to the old return type instead of just comparing the types as strings when checking the consistency of two APIs. Fixes: https://android-review.googlesource.com/#/c/58843/ Change-Id: I6a18a76e5296d58c05f1bb59341cdaa820f0c540
/external/doclava/src/com/google/doclava/PackageInfo.java
|
d6eaacbb9eb56763d38a3815fc509b92ed98a585 |
|
20-May-2011 |
Andrew Sapperstein <asapperstein@google.com> |
Modified old doclava to use LinkedLists instead of arrays Functioning java parsing as well. Needs to be wired up into doclava proper. Change-Id: Ifa38ca7312e6c23a8f663a9d0638afb9a29bf19d
/external/doclava/src/com/google/doclava/PackageInfo.java
|
3c1a6b2a6d80f02fa5460d9d8de356be5508de29 |
|
16-Oct-2010 |
Scott Main <smain@google.com> |
show full package description in the package summary and remove the separate description page Change-Id: Ib443473f54d768765041be0c969fa8b2f9637c57
/external/doclava/src/com/google/doclava/PackageInfo.java
|
920dbbbaca6aa578f3b26d89e99d12754c26ed60 |
|
05-Aug-2010 |
Ben Dodson <bjdodson@google.com> |
Initial import of Doclava project Change-Id: Ia5ae56f1700fce98e0ae6954fa2df617ec0537bb
/external/doclava/src/com/google/doclava/PackageInfo.java
|