Class AnnotationMirrors


  • public final class AnnotationMirrors
    extends java.lang.Object
    A utility class for working with AnnotationMirror 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 an Equivalence for AnnotationMirror as some implementations delegate equality tests to Object.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 given Element which are themselves annotated with annotationType.
      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 a ExecutableElement and its associated AnnotationValue if such an element was either declared in the usage represented by the provided AnnotationMirror, 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 an AnnotationValue for the named element if such an element was either declared in the usage represented by the provided AnnotationMirror, 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 the AnnotationMirror's map of AnnotationValue indexed by ExecutableElement, supplying default values from the annotation if the annotation property has not been set.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ANNOTATION_MIRROR_EQUIVALENCE

        private static final com.google.common.base.Equivalence<javax.lang.model.element.AnnotationMirror> ANNOTATION_MIRROR_EQUIVALENCE
    • Constructor Detail

      • AnnotationMirrors

        private AnnotationMirrors()
    • Method Detail

      • equivalence

        public static com.google.common.base.Equivalence<javax.lang.model.element.AnnotationMirror> equivalence()
        Returns an Equivalence for AnnotationMirror as some implementations delegate equality tests to Object.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 the AnnotationMirror's map of AnnotationValue indexed by ExecutableElement, supplying default values from the annotation if the annotation property has not been set. This is equivalent to Elements.getElementValuesWithDefaults(AnnotationMirror) but can be called statically without an Elements instance.

        The iteration order of elements of the returned map will be the order in which the ExecutableElements are defined in annotation's type.

      • getAnnotationValue

        public static javax.lang.model.element.AnnotationValue getAnnotationValue​(javax.lang.model.element.AnnotationMirror annotationMirror,
                                                                                  java.lang.String elementName)
        Returns an AnnotationValue for the named element if such an element was either declared in the usage represented by the provided AnnotationMirror, 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 a ExecutableElement and its associated AnnotationValue if such an element was either declared in the usage represented by the provided AnnotationMirror, 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 given Element which are themselves annotated with annotationType.