001    package edu.rice.cs.cunit.threadCheck.predicates;
002    
003    import edu.rice.cs.cunit.threadCheck.Combine;
004    
005    import java.lang.annotation.ElementType;
006    import java.lang.annotation.Retention;
007    import java.lang.annotation.RetentionPolicy;
008    import java.lang.annotation.Target;
009    
010    /**
011     * An annotation used to designate methods that are not allowed to be run by the event thread.
012     * 
013     * The annotation is constructed by using the @OnlyEventThread annotation and inverting its result.
014     * @author Mathias Ricken
015     */
016    @Retention(RetentionPolicy.RUNTIME)
017    @Target({ElementType.CONSTRUCTOR,ElementType.METHOD,ElementType.TYPE})
018    
019    @Combine(Combine.Mode.NOT)
020    public @interface NotEventThread {
021        OnlyEventThread value() default @OnlyEventThread;
022    }