@Target(value=ANNOTATION_TYPE) @Retention(value=RUNTIME) public @interface ConditionalPostconditionAnnotation
EnsuresQualifierIf. The value qualifier
 that is necessary for a conditional postcondition specified with EnsuresQualifierIf is
 specified here with the value qualifier.
 The annotation E that is meta-annotated as ConditionalPostconditionAnnotation must
 have an element called expression that is an array of Strings of the same format
 and with the same meaning as the value expression in EnsuresQualifierIf. E must
 also have an element result with the same meaning as the element result in EnsuresQualifierIf.
 
The established postcondition P has type specified by the qualifier field of this
 annotation. If the annotation E has elements annotated by QualifierArgument, their values
 are copied to the arguments (elements) of annotation P with the same names. Different element
 names may be used in E and P, if a QualifierArgument in E gives the name of the
 corresponding element in P.
 
For example, the following code declares a postcondition annotation for the MinLen qualifier:
 
  @ConditionalPostconditionAnnotation(qualifier = MinLen.class)
  @Target({ElementType.METHOD, ElementType.CONSTRUCTOR})
 public  @interface EnsuresMinLen {
   String[] expression();
   boolean result();
    @QualifierArgument("value")
   int targetValue() default 0;
 
 The expression element holds the expressions to which the qualifier applies and targetValue holds the value for the value argument of MinLen.
 The following code then uses the annotation on a method that ensures field to be
 @MinLen(4) upon returning true.
 
  @EnsuresMinLenIf(expression = "field", result = true, targetValue = 4")
 public boolean isFieldBool() {
   return field == "true" || field == "false";
 }
 EnsuresQualifier, 
QualifierArgument| Modifier and Type | Required Element and Description | 
|---|---|
Class<? extends Annotation> | 
qualifier
The qualifier that will be established as a postcondition. 
 | 
public abstract Class<? extends Annotation> qualifier