blob: 8ed857a9b2dc27d0583238865e885f9c5276cbb1 [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</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);
}