History log of /external/doclava/src/com/google/doclava/PackageInfo.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
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