Annotation 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(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.

See Also:
See the Checker Framework Manual:
Syntax of Java expressions
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static @interface 
    A wrapper annotation that makes the EnsuresQualifierIf annotation repeatable.
  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Returns the Java expressions for which the qualifier holds if the method terminates with return value result().
    Class<? extends Annotation>
    Returns the qualifier that is guaranteed to hold if the method terminates with return value result().
    boolean
    Returns the return value of the method that needs to hold for the postcondition to hold.
  • Element Details

    • expression

      String[] expression
      Returns the Java expressions for which the qualifier holds if the method terminates with return value result().
      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> qualifier
      Returns the qualifier that is guaranteed to hold if the method terminates with return value result().
      Returns:
      the qualifier that is guaranteed to hold if the method terminates with return value result()
    • result

      boolean result
      Returns 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