package org.checkerframework.javacutil; import com.sun.source.tree.Tree; import java.lang.annotation.Annotation; import javax.lang.model.element.AnnotationMirror; import javax.lang.model.element.Element; /** 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} that has the class {@code target}. If no annotation for * the given target class exists, the result is {@code null} * * @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); }