package org.checkerframework.javacutil; import java.lang.annotation.Annotation; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; import com.sun.source.tree.Tree; /** * An implementation of AnnotationProvider returns annotations on * Java AST elements. */ public interface AnnotationProvider { /** * Returns the actual annotation mirror used to annotate this type, * whose name equals the passed annotationName if one exists, null otherwise. * * @param anno annotation class * @return the annotation mirror for anno */ public AnnotationMirror getDeclAnnotation(Element elt, Class<? extends Annotation> anno); /** * Return the annotation on <code>tree</code> that has the class * <code>target</code>. If no annotation for the given target class exists, * the result is <code>null</code> * * @param tree * The tree of which the annotation is returned * @param target * The class of the annotation */ public AnnotationMirror getAnnotationMirror(Tree tree, Class<? extends Annotation> target); }