summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorAnton Hansson <hansson@google.com>2020-02-08 12:15:25 +0000
committerAnton Hansson <hansson@google.com>2020-02-12 17:12:06 +0000
commit7f94169e56b32cb83b2d87c4d738c41b78b07f6e (patch)
tree23fc21eca023744795c8cdb5a68e429700828f06 /core/java/android
parent3939d29c0bd85c7c0798583787d8fb9135578c5b (diff)
Add @Nullable and @NonNull to module API
These two annotations are already in the public/system stubs, but are re-written to be package private instead of public. This makes them inaccessible to libs building against these stubs. When setting sdk_version:<X>, the stubs of X will appear before any other libraries on the classpath. This also makes it impossible for modules to add Nullable annotations of their own when setting sdk_version. Exposing these annotations as public in the module stubs makes it possible for modules using these annotation to specify an sdk_version. Bug: 146758669 Test: m Test: downstream CLs using sdk_version:module_current Change-Id: I71fb766d02f833ed9a1b3a7dbfbc1c8118882b30 Merged-In: I71fb766d02f833ed9a1b3a7dbfbc1c8118882b30 (cherry picked from commit c8fc90a0c2b04a5f6f5e6006155ca1e9a09db4e3)
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/annotation/NonNull.java9
-rw-r--r--core/java/android/annotation/Nullable.java9
2 files changed, 12 insertions, 6 deletions
diff --git a/core/java/android/annotation/NonNull.java b/core/java/android/annotation/NonNull.java
index 927f9975b3eb..a95bf3b8061e 100644
--- a/core/java/android/annotation/NonNull.java
+++ b/core/java/android/annotation/NonNull.java
@@ -15,14 +15,16 @@
*/
package android.annotation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.SOURCE;
+import android.annotation.SystemApi.Client;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
/**
* Denotes that a parameter, field or method return value can never be null.
* <p>
@@ -34,5 +36,6 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
*/
@Retention(SOURCE)
@Target({METHOD, PARAMETER, FIELD})
+@SystemApi(client = Client.MODULE_LIBRARIES)
public @interface NonNull {
}
diff --git a/core/java/android/annotation/Nullable.java b/core/java/android/annotation/Nullable.java
index b60170b134e1..2fcddfab9375 100644
--- a/core/java/android/annotation/Nullable.java
+++ b/core/java/android/annotation/Nullable.java
@@ -15,14 +15,16 @@
*/
package android.annotation;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.SOURCE;
+import android.annotation.SystemApi.Client;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
/**
* Denotes that a parameter, field or method return value can be null.
* <p>
@@ -41,5 +43,6 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
*/
@Retention(SOURCE)
@Target({METHOD, PARAMETER, FIELD})
+@SystemApi(client = Client.MODULE_LIBRARIES)
public @interface Nullable {
}