package org.checkerframework.framework.qual; import java.lang.annotation.Annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * A meta-annotation that indicates that an annotation is a postcondition annotation, i.e., a * type-specialized version of {@link EnsuresQualifier}. The annotation that is annotated as {@link * PostconditionAnnotation} must have a value called {@code value} that is an array of {@code * String}s of the same format and with the same meaning as the value {@code expression} in {@link * EnsuresQualifier}. * * <p>The value {@code qualifier} that is necessary for a postcondition specified with {@link * EnsuresQualifier} is hard-coded here with the value {@code qualifier}. * * @author Stefan Heule * @see EnsuresQualifier */ @Target({ElementType.ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface PostconditionAnnotation { /** The hard-coded qualifier for the postcondition. */ Class<? extends Annotation> qualifier(); }