@Documented @Retention(value=RUNTIME) @Target(value=METHOD) @InheritedAnnotation @Repeatable(value=EnsuresQualifierIf.List.class) public @interface EnsuresQualifierIf
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(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
Returns the Java expressions for which the qualifier holds if the method terminates with
return value
result() . |
Class<? extends Annotation> |
qualifier
Returns the qualifier that is guaranteed to hold if the method terminates with return value
result() . |
boolean |
result
Returns the return value of the method that needs to hold for the postcondition to hold.
|
public abstract String[] expression
result()
.result()
public abstract Class<? extends Annotation> qualifier
result()
.result()