package javax.lang.model.element; import java.lang.annotation.Annotation; import java.lang.annotation.AnnotationTypeMismatchException; import java.lang.annotation.IncompleteAnnotationException; import java.util.List; import java.util.Set; import javax.lang.model.element.Modifier; import javax.lang.model.type.*; import javax.lang.model.util.*; import checkers.javari.quals.*; public interface Element { TypeMirror asType() @ReadOnly; ElementKind getKind() @ReadOnly; List<? extends AnnotationMirror> getAnnotationMirrors() @ReadOnly; <A extends Annotation> @PolyRead A getAnnotation(Class<A> annotationType) @PolyRead; @PolyRead Set<Modifier> getModifiers() @PolyRead; @PolyRead Name getSimpleName() @PolyRead; @PolyRead Element getEnclosingElement() @PolyRead; @PolyRead List<? extends Element> getEnclosedElements() @PolyRead; boolean equals(@ReadOnly Object obj) @ReadOnly; int hashCode() @ReadOnly; <R, P> R accept(ElementVisitor<R, P> v, P p) @ReadOnly; }