1 package spoon.aval.annotation;2 3 import java.lang.annotation.Retention ;4 import java.lang.annotation.RetentionPolicy ;5 6 import spoon.aval.Validator;7 import spoon.aval.annotation.structure.AValTarget;8 import spoon.aval.annotation.structure.Requires;9 import spoon.reflect.declaration.CtAnnotationType;10 /**11 * Meta annotation that gives the implementation for a validator.12 *13 */14 @Retention (RetentionPolicy.RUNTIME)15 @AValTarget(CtAnnotationType.class)16 @Requires(value=Retention .class,message="AValidator annotations should have a Retention Policy of RUNTIME")17 public @interface Implementation {18 19 /**20 * Contains the Validator that implements this meta-annotation21 * @see spoon.aval.Validator22 */23 Class <? extends Validator> value();24 }25