@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[] | expressionReturns the Java expressions for which the qualifier holds if the method terminates with return
 value  result(). | 
| Class<? extends Annotation> | qualifierReturns the qualifier that is guaranteed to hold if the method terminates with return value
  result(). | 
| boolean | resultReturns 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()