001    package org.nakedobjects.applib.annotation;
002    
003    import java.lang.annotation.ElementType;
004    import java.lang.annotation.Inherited;
005    import java.lang.annotation.Retention;
006    import java.lang.annotation.RetentionPolicy;
007    import java.lang.annotation.Target;
008    
009    import org.nakedobjects.applib.spec.Specification;
010    
011    /**
012     * 
013     */
014    @Inherited
015    @Target( { ElementType.METHOD, ElementType.PARAMETER, ElementType.TYPE })
016    @Retention(RetentionPolicy.RUNTIME)
017    public @interface MustSatisfy {
018        /**
019         * The {@link Specification}(s) to be satisfied.
020         * 
021         * <p>
022         * If more than one is provided, then all must be satisfied (in effect &quot;AND&quot;ed together).
023         */
024        Class<? extends Specification>[] value();
025    }
026    
027    // Copyright (c) Naked Objects Group Ltd.