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 "AND"ed together).
023 */
024 Class<? extends Specification>[] value();
025 }
026
027 // Copyright (c) Naked Objects Group Ltd.