Annotation Interface EnsuresQualifierIf
@Documented
@Retention(RUNTIME)
@Target(METHOD)
@InheritedAnnotation
@Repeatable(List.class)
public @interface EnsuresQualifierIf
A conditional postcondition annotation to indicate that a method ensures that certain expressions
have a certain qualifier once the method has terminated, and if the result is as indicated by
result
. The expressions for which the qualifier holds after the method's execution are
indicated by expression
and are specified using a string. The qualifier is specified by
the qualifier
annotation element.
Here is an example use:
@EnsuresQualifierIf(result = true, expression = "#1", qualifier = Odd.class)
boolean isOdd(int p1, int p2) {
return p1 % 2 == 1;
}
This annotation is only applicable to methods with a boolean return type.
Some type systems have specialized versions of this annotation, such as
org.checkerframework.checker.nullness.qual.EnsuresNonNullIf
and
org.checkerframework.checker.lock.qual.EnsuresLockHeldIf
.
- See Also:
- See the Checker Framework Manual:
- Syntax of Java expressions
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic @interface
A wrapper annotation that makes theEnsuresQualifierIf
annotation repeatable. -
Required Element Summary
Modifier and TypeRequired ElementDescriptionString[]
Returns the Java expressions for which the qualifier holds if the method terminates with return valueresult()
.Class<? extends Annotation>
Returns the qualifier that is guaranteed to hold if the method terminates with return valueresult()
.boolean
Returns the return value of the method that needs to hold for the postcondition to hold.
-
Element Details
-
result
boolean resultReturns the return value of the method that needs to hold for the postcondition to hold.- Returns:
- the return value of the method that needs to hold for the postcondition to hold
-
expression
String[] expressionReturns the Java expressions for which the qualifier holds if the method terminates with return valueresult()
.- Returns:
- the Java expressions for which the qualifier holds if the method terminates with return
value
result()
- See the Checker Framework Manual:
- Syntax of Java expressions
-
qualifier
Class<? extends Annotation> qualifierReturns the qualifier that is guaranteed to hold if the method terminates with return valueresult()
.- Returns:
- the qualifier that is guaranteed to hold if the method terminates with return value
result()
-