diff options
Diffstat (limited to 'third_party/checker_framework_javacutil/java/org/checkerframework/javacutil/AnnotationProvider.java')
-rw-r--r-- | third_party/checker_framework_javacutil/java/org/checkerframework/javacutil/AnnotationProvider.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/third_party/checker_framework_javacutil/java/org/checkerframework/javacutil/AnnotationProvider.java b/third_party/checker_framework_javacutil/java/org/checkerframework/javacutil/AnnotationProvider.java new file mode 100644 index 0000000000..580be40ef4 --- /dev/null +++ b/third_party/checker_framework_javacutil/java/org/checkerframework/javacutil/AnnotationProvider.java @@ -0,0 +1,38 @@ +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); +} |