Package com.google.auto.common
Class AnnotationMirrors
- java.lang.Object
-
- com.google.auto.common.AnnotationMirrors
-
public final class AnnotationMirrors extends java.lang.Object
A utility class for working withAnnotationMirror
instances.
-
-
Field Summary
Fields Modifier and Type Field Description private static com.google.common.base.Equivalence<javax.lang.model.element.AnnotationMirror>
ANNOTATION_MIRROR_EQUIVALENCE
-
Constructor Summary
Constructors Modifier Constructor Description private
AnnotationMirrors()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static com.google.common.base.Equivalence<javax.lang.model.element.AnnotationMirror>
equivalence()
Returns anEquivalence
forAnnotationMirror
as some implementations delegate equality tests toObject.equals(java.lang.Object)
whereas the documentation explicitly states that instance/reference equality is not the proper test.static com.google.common.collect.ImmutableSet<? extends javax.lang.model.element.AnnotationMirror>
getAnnotatedAnnotations(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returns all annotations that are present on the givenElement
which are themselves annotated withannotationType
.static java.util.Map.Entry<javax.lang.model.element.ExecutableElement,javax.lang.model.element.AnnotationValue>
getAnnotationElementAndValue(javax.lang.model.element.AnnotationMirror annotationMirror, java.lang.String elementName)
Returns aExecutableElement
and its associatedAnnotationValue
if such an element was either declared in the usage represented by the providedAnnotationMirror
, or if such an element was defined with a default.static javax.lang.model.element.AnnotationValue
getAnnotationValue(javax.lang.model.element.AnnotationMirror annotationMirror, java.lang.String elementName)
Returns anAnnotationValue
for the named element if such an element was either declared in the usage represented by the providedAnnotationMirror
, or if such an element was defined with a default.static com.google.common.collect.ImmutableMap<javax.lang.model.element.ExecutableElement,javax.lang.model.element.AnnotationValue>
getAnnotationValuesWithDefaults(javax.lang.model.element.AnnotationMirror annotation)
Returns theAnnotationMirror
's map ofAnnotationValue
indexed byExecutableElement
, supplying default values from the annotation if the annotation property has not been set.
-
-
-
Method Detail
-
equivalence
public static com.google.common.base.Equivalence<javax.lang.model.element.AnnotationMirror> equivalence()
Returns anEquivalence
forAnnotationMirror
as some implementations delegate equality tests toObject.equals(java.lang.Object)
whereas the documentation explicitly states that instance/reference equality is not the proper test.
-
getAnnotationValuesWithDefaults
public static com.google.common.collect.ImmutableMap<javax.lang.model.element.ExecutableElement,javax.lang.model.element.AnnotationValue> getAnnotationValuesWithDefaults(javax.lang.model.element.AnnotationMirror annotation)
Returns theAnnotationMirror
's map ofAnnotationValue
indexed byExecutableElement
, supplying default values from the annotation if the annotation property has not been set. This is equivalent toElements.getElementValuesWithDefaults(AnnotationMirror)
but can be called statically without anElements
instance.The iteration order of elements of the returned map will be the order in which the
ExecutableElement
s are defined inannotation
's type.
-
getAnnotationValue
public static javax.lang.model.element.AnnotationValue getAnnotationValue(javax.lang.model.element.AnnotationMirror annotationMirror, java.lang.String elementName)
Returns anAnnotationValue
for the named element if such an element was either declared in the usage represented by the providedAnnotationMirror
, or if such an element was defined with a default.- Throws:
java.lang.IllegalArgumentException
- if no element is defined with the given elementName.
-
getAnnotationElementAndValue
public static java.util.Map.Entry<javax.lang.model.element.ExecutableElement,javax.lang.model.element.AnnotationValue> getAnnotationElementAndValue(javax.lang.model.element.AnnotationMirror annotationMirror, java.lang.String elementName)
Returns aExecutableElement
and its associatedAnnotationValue
if such an element was either declared in the usage represented by the providedAnnotationMirror
, or if such an element was defined with a default.- Throws:
java.lang.IllegalArgumentException
- if no element is defined with the given elementName.
-
getAnnotatedAnnotations
public static com.google.common.collect.ImmutableSet<? extends javax.lang.model.element.AnnotationMirror> getAnnotatedAnnotations(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotationType)
Returns all annotations that are present on the givenElement
which are themselves annotated withannotationType
.
-
-