@Documented @Retention(value=RUNTIME) @Target(value=METHOD) @InheritedAnnotation @Repeatable(value=EnsuresQualifiersIf.class) public @interface EnsuresQualifierIf
result
. The expressions for which the annotation must hold after the method's execution
are indicated by expression
and are specified using a string. The qualifier is specified
by the qualifier
annotation argument.
Here is an example use:
@EnsuresQualifierIf(result = true, expression = "#1", qualifier = Odd.class)
boolean isOdd(final 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
.
EnsuresQualifier
Modifier and Type | Required Element and Description |
---|---|
String[] |
expression
The Java expressions for which the qualifier holds if the method terminates with return value
result() . |
Class<? extends Annotation> |
qualifier
The qualifier that is guaranteed to hold if the method terminates with return value
result() . |
boolean |
result
The return value of the method that needs to hold for the postcondition to hold.
|
public abstract String[] expression
result()
.public abstract Class<? extends Annotation> qualifier
result()
.