public class AnnotationUtils extends Object
| Modifier and Type | Method and Description | 
|---|---|
| static @Interned String | annotationName(AnnotationMirror annotation) | 
| static Comparator<AnnotationMirror> | annotationOrdering()provide ordering for  AnnotationMirrorbased on their fully
 qualified name. | 
| static boolean | areSame(@Nullable AnnotationMirror a1,
       @Nullable AnnotationMirror a2)Checks if both annotations are the same. | 
| static boolean | areSame(Collection<? extends AnnotationMirror> c1,
       Collection<? extends AnnotationMirror> c2)Checks that two collections contain the same annotations. | 
| static boolean | areSameByClass(AnnotationMirror am,
              Class<? extends Annotation> anno)Checks that the annotation  amhas the name ofanno. | 
| static boolean | areSameByName(AnnotationMirror am,
             @Interned String aname)Checks that the annotation  amhas the nameaname. | 
| static boolean | areSameIgnoringValues(AnnotationMirror a1,
                     AnnotationMirror a2) | 
| static void | clear() | 
| static boolean | containsSame(Collection<? extends AnnotationMirror> c,
            AnnotationMirror anno)Checks that the collection contains the annotation. | 
| static boolean | containsSameByClass(Collection<? extends AnnotationMirror> c,
                   Class<? extends Annotation> anno)Checks that the collection contains the annotation. | 
| static boolean | containsSameIgnoringValues(Collection<? extends AnnotationMirror> c,
                          AnnotationMirror anno)Checks that the collection contains the annotation ignoring values. | 
| static <V> Map<AnnotationMirror,V> | createAnnotationMap()Create a map suitable for storing  AnnotationMirroras keys. | 
| static Set<AnnotationMirror> | createAnnotationSet()Constructs a  Setsuitable for storingAnnotationMirrors. | 
| static AnnotationMirror | fromClass(Elements elements,
         Class<? extends Annotation> clazz)Creates an  AnnotationMirrorgiven by a particular annotation
 class. | 
| static AnnotationMirror | fromName(Elements elements,
        CharSequence name)Creates an  AnnotationMirrorgiven by a particular
 fully-qualified name. | 
| static <T> T | getElementValue(AnnotationMirror anno,
               CharSequence name,
               Class<T> expectedType,
               boolean useDefaults)Get the attribute with the name  nameof the annotationanno. | 
| static <T> List<T> | getElementValueArray(AnnotationMirror anno,
                    CharSequence name,
                    Class<T> expectedType,
                    boolean useDefaults)Get the attribute with the name  nameof the annotationanno, where the attribute has an array type. | 
| static Class<?> | getElementValueClass(AnnotationMirror anno,
                    CharSequence name,
                    boolean useDefaults)Get the Class that is referenced by attribute 'name'. | 
| static Name | getElementValueClassName(AnnotationMirror anno,
                        CharSequence name,
                        boolean useDefaults)Get the Name of the class that is referenced by attribute 'name'. | 
| static <T extends Enum<T>> | getElementValueEnum(AnnotationMirror anno,
                   CharSequence name,
                   Class<T> t,
                   boolean useDefaults)Version that is suitable for Enum elements. | 
| static <T extends Enum<T>> | getElementValueEnumArray(AnnotationMirror anno,
                        CharSequence name,
                        Class<T> t,
                        boolean useDefaults)Get the attribute with the name  nameof the annotationanno, or the default value if no attribute is present explicitly,
 where the attribute has an array type and the elements areEnums. | 
| static Map<? extends ExecutableElement,? extends AnnotationValue> | getElementValuesWithDefaults(AnnotationMirror ad)Returns the values of an annotation's attributes, including defaults. | 
| static <T> boolean | hasElementValue(AnnotationMirror anno,
               CharSequence name)Verify whether the attribute with the name  nameexists in
 the annotationanno. | 
| static boolean | hasInheritedMeta(AnnotationMirror anno)Returns true if the given annotation has a @Inherited meta-annotation. | 
| static <T> void | updateMappingToImmutableSet(Map<T,Set<AnnotationMirror>> map,
                           T key,
                           Set<AnnotationMirror> newQual)See checkers.types.QualifierHierarchy#updateMappingToMutableSet(QualifierHierarchy, Map, Object, AnnotationMirror)
 (Not linked because it is in an independent project. | 
public static void clear()
public static AnnotationMirror fromName(Elements elements, CharSequence name)
AnnotationMirror given by a particular
 fully-qualified name.  getElementValues on the result returns an
 empty map.elements - the element utilities to usename - the name of the annotation to createAnnotationMirror of type  namepublic static AnnotationMirror fromClass(Elements elements, Class<? extends Annotation> clazz)
AnnotationMirror given by a particular annotation
 class.elements - the element utilities to useclazz - the annotation classAnnotationMirror of type given typepublic static final @Interned String annotationName(AnnotationMirror annotation)
public static boolean areSame(@Nullable AnnotationMirror a1, @Nullable AnnotationMirror a2)
AnnotationMirror.equals(Object).  The equals method returns
 true iff both annotations are the same and annotate the same annotation
 target (e.g. field, variable, etc).public static boolean areSameIgnoringValues(AnnotationMirror a1, AnnotationMirror a2)
areSame(AnnotationMirror, AnnotationMirror)public static boolean areSameByName(AnnotationMirror am, @Interned String aname)
am has the name aname. Values
 are ignored.public static boolean areSameByClass(AnnotationMirror am, Class<? extends Annotation> anno)
am has the name of anno.
 Values are ignored.public static boolean areSame(Collection<? extends AnnotationMirror> c1, Collection<? extends AnnotationMirror> c2)
public static boolean containsSame(Collection<? extends AnnotationMirror> c, AnnotationMirror anno)
public static boolean containsSameByClass(Collection<? extends AnnotationMirror> c, Class<? extends Annotation> anno)
public static boolean containsSameIgnoringValues(Collection<? extends AnnotationMirror> c, AnnotationMirror anno)
public static Comparator<AnnotationMirror> annotationOrdering()
AnnotationMirror based on their fully
 qualified name.  The ordering ignores annotation values when ordering.
 The ordering is meant to be used as TreeSet or TreeMap
 ordering.  A Set should not contain two annotations that only
 differ in values.public static <V> Map<AnnotationMirror,V> createAnnotationMap()
AnnotationMirror as keys.
 It can store one instance of AnnotationMirror of a given
 declared type, regardless of the annotation element values.V - the value of the mapAnnotationMirror as keypublic static Set<AnnotationMirror> createAnnotationSet()
Set suitable for storing AnnotationMirrors.
 It stores at most once instance of AnnotationMirror of a given
 type, regardless of the annotation element values.AnnotationMirror as elementpublic static boolean hasInheritedMeta(AnnotationMirror anno)
public static Map<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror ad)
ad - annotation to examineAnnotationMirror.getElementValues(), 
JavacElements.getElementValuesWithDefaults(AnnotationMirror)public static <T> boolean hasElementValue(AnnotationMirror anno, CharSequence name)
name exists in
 the annotation anno.anno - the annotation to examinename - the name of the attributepublic static <T> T getElementValue(AnnotationMirror anno, CharSequence name, Class<T> expectedType, boolean useDefaults)
name of the annotation
 anno. The result is expected to have type expectedType.
 
 Note 1: The method does not work well for attributes of an array
 type (as it would return a list of AnnotationValues). Use
 getElementValueArray instead.
 
 Note 2: The method does not work for attributes of an enum type,
 as the AnnotationValue is a VarSymbol and would be cast to the enum type,
 which doesn't work. Use getElementValueEnum instead.
anno - the annotation to disassemblename - the name of the attribute to accessexpectedType - the expected type used to cast the return typeuseDefaults - whether to apply default values to the attribute.public static <T extends Enum<T>> T getElementValueEnum(AnnotationMirror anno, CharSequence name, Class<T> t, boolean useDefaults)
public static <T> List<T> getElementValueArray(AnnotationMirror anno, CharSequence name, Class<T> expectedType, boolean useDefaults)
name of the annotation
 anno, where the attribute has an array type. One element of the
 result is expected to have type expectedType.
 Parameter useDefaults is used to determine whether default values
 should be used for annotation values. Finding defaults requires
 more computation, so should be false when no defaulting is needed.anno - the annotation to disassemblename - the name of the attribute to accessexpectedType - the expected type used to cast the return typeuseDefaults - whether to apply default values to the attribute.public static <T extends Enum<T>> List<T> getElementValueEnumArray(AnnotationMirror anno, CharSequence name, Class<T> t, boolean useDefaults)
name of the annotation
 anno, or the default value if no attribute is present explicitly,
 where the attribute has an array type and the elements are Enums.
 One element of the result is expected to have type expectedType.public static Name getElementValueClassName(AnnotationMirror anno, CharSequence name, boolean useDefaults)
public static Class<?> getElementValueClass(AnnotationMirror anno, CharSequence name, boolean useDefaults)
public static <T> void updateMappingToImmutableSet(Map<T,Set<AnnotationMirror>> map, T key, Set<AnnotationMirror> newQual)