001    package edu.rice.cs.cunit.threadCheck.subAnnot.predicates;
002    
003    import edu.rice.cs.cunit.threadCheck.subAnnot.PredicateLink;
004    import edu.rice.cs.cunit.threadCheck.subAnnot.Predicates;
005    import edu.rice.cs.cunit.threadCheck.subAnnot.InvariantAnnotation;
006    
007    import java.lang.annotation.RetentionPolicy;
008    import java.lang.annotation.Retention;
009    
010    /**
011     * This annotation inverts the other invariant annotation using Boolean not.
012     *
013     * Note that this is not compatible with standard Java, but requires xajavac.
014     * For more information about xajavac, see http://ricken.us/research/xajavac
015     *
016     * @author Mathias Ricken
017     */
018    @Retention(RetentionPolicy.RUNTIME)
019    @PredicateLink(value= Predicates.class, method="checkNot", arguments=true)
020    public @interface Not extends InvariantAnnotation {
021        public abstract InvariantAnnotation value();
022    }