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