Additional annotations: @CallSuper, @Keep, etc.
These mirror the new support library annotations, but with source retention. Change-Id: Ib85ceeb37d596aae8cf12d4f8fede3982552d033
This commit is contained in:
38
core/java/android/annotation/CallSuper.java
Normal file
38
core/java/android/annotation/CallSuper.java
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* 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 android.annotation;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
/**
|
||||
* Denotes that any overriding methods should invoke this method as well.
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code
|
||||
* @CallSuper
|
||||
* public abstract void onFocusLost();
|
||||
* }</pre>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(SOURCE)
|
||||
@Target({METHOD})
|
||||
public @interface CallSuper {
|
||||
}
|
||||
58
core/java/android/annotation/CheckResult.java
Normal file
58
core/java/android/annotation/CheckResult.java
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* 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 android.annotation;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
/**
|
||||
* Denotes that the annotated method returns a result that it typically is
|
||||
* an error to ignore. This is usually used for methods that have no side effect,
|
||||
* so calling it without actually looking at the result usually means the developer
|
||||
* has misunderstood what the method does.
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code
|
||||
* public @CheckResult String trim(String s) { return s.trim(); }
|
||||
* ...
|
||||
* s.trim(); // this is probably an error
|
||||
* s = s.trim(); // ok
|
||||
* }</pre>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(SOURCE)
|
||||
@Target({METHOD})
|
||||
public @interface CheckResult {
|
||||
/** Defines the name of the suggested method to use instead, if applicable (using
|
||||
* the same signature format as javadoc.) If there is more than one possibility,
|
||||
* list them all separated by commas.
|
||||
* <p>
|
||||
* For example, ProcessBuilder has a method named {@code redirectErrorStream()}
|
||||
* which sounds like it might redirect the error stream. It does not. It's just
|
||||
* a getter which returns whether the process builder will redirect the error stream,
|
||||
* and to actually set it, you must call {@code redirectErrorStream(boolean)}.
|
||||
* In that case, the method should be defined like this:
|
||||
* <pre>
|
||||
* @CheckResult(suggest="#redirectErrorStream(boolean)")
|
||||
* public boolean redirectErrorStream() { ... }
|
||||
* </pre>
|
||||
*/
|
||||
String suggest() default "";
|
||||
}
|
||||
39
core/java/android/annotation/ColorInt.java
Normal file
39
core/java/android/annotation/ColorInt.java
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* 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 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.LOCAL_VARIABLE;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
/**
|
||||
* Denotes that the annotated element represents a packed color
|
||||
* int, {@code AARRGGBB}.
|
||||
* <p>
|
||||
* public abstract void setTextColor(@ColorInt int color);
|
||||
* }</pre>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(SOURCE)
|
||||
@Target({PARAMETER,METHOD,LOCAL_VARIABLE,FIELD})
|
||||
public @interface ColorInt {
|
||||
}
|
||||
55
core/java/android/annotation/FloatRange.java
Normal file
55
core/java/android/annotation/FloatRange.java
Normal file
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* 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 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.LOCAL_VARIABLE;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
/**
|
||||
* Denotes that the annotated element should be a float or double in the given range
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code
|
||||
* @FloatRange(from=0.0,to=1.0)
|
||||
* public float getAlpha() {
|
||||
* ...
|
||||
* }
|
||||
* }</pre>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(SOURCE)
|
||||
@Target({METHOD,PARAMETER,FIELD,LOCAL_VARIABLE})
|
||||
public @interface FloatRange {
|
||||
/** Smallest value. Whether it is inclusive or not is determined
|
||||
* by {@link #fromInclusive} */
|
||||
double from() default Double.NEGATIVE_INFINITY;
|
||||
/** Largest value. Whether it is inclusive or not is determined
|
||||
* by {@link #toInclusive} */
|
||||
double to() default Double.POSITIVE_INFINITY;
|
||||
|
||||
/** Whether the from value is included in the range */
|
||||
boolean fromInclusive() default true;
|
||||
|
||||
/** Whether the to value is included in the range */
|
||||
boolean toInclusive() default true;
|
||||
}
|
||||
47
core/java/android/annotation/IntRange.java
Normal file
47
core/java/android/annotation/IntRange.java
Normal file
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* 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 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.LOCAL_VARIABLE;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
/**
|
||||
* Denotes that the annotated element should be an int or long in the given range
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code
|
||||
* @IntRange(from=0,to=255)
|
||||
* public int getAlpha() {
|
||||
* ...
|
||||
* }
|
||||
* }</pre>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(SOURCE)
|
||||
@Target({METHOD,PARAMETER,FIELD,LOCAL_VARIABLE})
|
||||
public @interface IntRange {
|
||||
/** Smallest value, inclusive */
|
||||
long from() default Long.MIN_VALUE;
|
||||
/** Largest value, inclusive */
|
||||
long to() default Long.MAX_VALUE;
|
||||
}
|
||||
52
core/java/android/annotation/Size.java
Normal file
52
core/java/android/annotation/Size.java
Normal file
@@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) 2015 The Android Open Source Project
|
||||
*
|
||||
* 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 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.LOCAL_VARIABLE;
|
||||
import static java.lang.annotation.ElementType.METHOD;
|
||||
import static java.lang.annotation.ElementType.PARAMETER;
|
||||
import static java.lang.annotation.RetentionPolicy.SOURCE;
|
||||
|
||||
/**
|
||||
* Denotes that the annotated element should have a given size or length.
|
||||
* Note that "-1" means "unset". Typically used with a parameter or
|
||||
* return value of type array or collection.
|
||||
* <p>
|
||||
* Example:
|
||||
* <pre>{@code
|
||||
* public void getLocationInWindow(@Size(2) int[] location) {
|
||||
* ...
|
||||
* }
|
||||
* }</pre>
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@Retention(SOURCE)
|
||||
@Target({PARAMETER,LOCAL_VARIABLE,METHOD,FIELD})
|
||||
public @interface Size {
|
||||
/** An exact size (or -1 if not specified) */
|
||||
long value() default -1;
|
||||
/** A minimum size, inclusive */
|
||||
long min() default Long.MIN_VALUE;
|
||||
/** A maximum size, inclusive */
|
||||
long max() default Long.MAX_VALUE;
|
||||
/** The size must be a multiple of this factor */
|
||||
long multiple() default 1;
|
||||
}
|
||||
Reference in New Issue
Block a user