diff --git a/annotations/src/main/java/com/google/errorprone/annotations/IncompatibleModifiers.java b/annotations/src/main/java/com/google/errorprone/annotations/IncompatibleModifiers.java index 55ff68c2717..284fb45f9b3 100644 --- a/annotations/src/main/java/com/google/errorprone/annotations/IncompatibleModifiers.java +++ b/annotations/src/main/java/com/google/errorprone/annotations/IncompatibleModifiers.java @@ -21,14 +21,13 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import javax.lang.model.element.Modifier; /** * Annotation declaring that the target annotation is incompatible with any one of the provided * modifiers. For example, an annotation declared as: * *
- * {@literal @}IncompatibleModifiers(Modifier.PUBLIC)
+ * {@literal @}IncompatibleModifiers(modifier = Modifier.PUBLIC)
  * {@literal @}interface MyAnnotation {}
  * 
* @@ -44,6 +43,11 @@ @Retention(RetentionPolicy.CLASS) // Element's source might not be available during analysis @Target(ElementType.ANNOTATION_TYPE) public @interface IncompatibleModifiers { + + /** @deprecated use {@link #modifier} instead */ + @Deprecated + javax.lang.model.element.Modifier[] value() default {}; + /** * The incompatible modifiers. The annotated element is illegal with the presence of any one or * more of these modifiers. @@ -51,5 +55,5 @@ *

Empty array has the same effect as not applying this annotation at all; duplicates are * allowed but have no effect. */ - Modifier[] value(); + Modifier[] modifier() default {}; } diff --git a/annotations/src/main/java/com/google/errorprone/annotations/Modifier.java b/annotations/src/main/java/com/google/errorprone/annotations/Modifier.java new file mode 100644 index 00000000000..c8b9bd83d09 --- /dev/null +++ b/annotations/src/main/java/com/google/errorprone/annotations/Modifier.java @@ -0,0 +1,42 @@ +/* + * Copyright 2021 The Error Prone Authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.google.errorprone.annotations; + +/** + * Modifiers in the Java language, as specified in: + * + *

+ */ +public enum Modifier { + PUBLIC, + PROTECTED, + PRIVATE, + ABSTRACT, + DEFAULT, + STATIC, + FINAL, + TRANSIENT, + VOLATILE, + SYNCHRONIZED, + NATIVE, + STRICTFP +} diff --git a/annotations/src/main/java/com/google/errorprone/annotations/RequiredModifiers.java b/annotations/src/main/java/com/google/errorprone/annotations/RequiredModifiers.java index ca14b836836..e63a77b9401 100644 --- a/annotations/src/main/java/com/google/errorprone/annotations/RequiredModifiers.java +++ b/annotations/src/main/java/com/google/errorprone/annotations/RequiredModifiers.java @@ -21,14 +21,13 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import javax.lang.model.element.Modifier; /** * Annotation declaring that the target annotation requires all the specified modifiers. For * example, an annotation declared as: * *
- * {@literal @}RequiredModifiers(Modifier.PUBLIC)
+ * {@literal @}RequiredModifiers(modifier = Modifier.PUBLIC)
  * {@literal @}interface MyAnnotation {}
  * 
* @@ -44,6 +43,11 @@ @Retention(RetentionPolicy.CLASS) // Element's source might not be available during analysis @Target(ElementType.ANNOTATION_TYPE) public @interface RequiredModifiers { + + /** @deprecated use {@link #modifier} instead */ + @Deprecated + javax.lang.model.element.Modifier[] value() default {}; + /** * The required modifiers. The annotated element is illegal if any one or more of these modifiers * are absent. @@ -51,5 +55,5 @@ *

Empty array has the same effect as not applying this annotation at all; duplicates are * allowed but have no effect. */ - Modifier[] value(); + Modifier[] modifier() default {}; }