blob: 1245960eddd1b342302be00f73f10c28b8b41aad [file] [log] [blame]
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);
}