diff options
Diffstat (limited to 'java/core/src/main/java/com/google/protobuf/ExperimentalApi.java')
-rw-r--r-- | java/core/src/main/java/com/google/protobuf/ExperimentalApi.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/java/core/src/main/java/com/google/protobuf/ExperimentalApi.java b/java/core/src/main/java/com/google/protobuf/ExperimentalApi.java new file mode 100644 index 00000000..6f41fb81 --- /dev/null +++ b/java/core/src/main/java/com/google/protobuf/ExperimentalApi.java @@ -0,0 +1,36 @@ +package com.google.protobuf; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Indicates a public API that can change at any time, and has no guarantee of API stability and + * backward-compatibility. + * + * <p>Usage guidelines: + * <ol> + * <li>This annotation is used only on public API. Internal interfaces should not use it.</li> + * <li>This annotation should only be added to new APIs. Adding it to an existing API is + * considered API-breaking.</li> + * <li>Removing this annotation from an API gives it stable status.</li> + * </ol> + */ +@Retention(RetentionPolicy.SOURCE) +@Target({ + ElementType.ANNOTATION_TYPE, + ElementType.CONSTRUCTOR, + ElementType.FIELD, + ElementType.METHOD, + ElementType.PACKAGE, + ElementType.TYPE}) +@Documented +public @interface ExperimentalApi { + /** + * Context information such as links to discussion thread, tracking issue etc. + */ + String value() default ""; +} + |