Class AnnotationAttributes
- All Implemented Interfaces:
Serializable,Cloneable,Map<String,Object>
LinkedHashMap subclass representing annotation attribute
key-value pairs as read by AnnotationUtils,
AnnotatedElementUtils, and Spring's reflection- and ASM-based
AnnotationMetadata implementations.
Provides 'pseudo-reification' to avoid noisy Map generics in the calling code as well as convenience methods for looking up annotation attributes in a type-safe fashion.
- Since:
- 3.1.1
- Author:
- Chris Beams, Sam Brannen, Juergen Hoeller
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class java.util.AbstractMap
AbstractMap.SimpleEntry<K extends Object,V extends Object>, AbstractMap.SimpleImmutableEntry<K extends Object, V extends Object> -
Constructor Summary
ConstructorsConstructorDescriptionCreate a new, emptyAnnotationAttributesinstance.AnnotationAttributes(int initialCapacity) Create a new, emptyAnnotationAttributesinstance with the given initial capacity to optimize performance.AnnotationAttributes(Class<? extends Annotation> annotationType) Create a new, emptyAnnotationAttributesinstance for the specifiedannotationType.AnnotationAttributes(String annotationType, ClassLoader classLoader) Create a new, emptyAnnotationAttributesinstance for the specifiedannotationType.AnnotationAttributes(Map<String, Object> map) Create a newAnnotationAttributesinstance, wrapping the provided map and all its key-value pairs.Create a newAnnotationAttributesinstance, wrapping the provided map and all its key-value pairs. -
Method Summary
Modifier and TypeMethodDescriptionClass<? extends Annotation>Get the type of annotation represented by thisAnnotationAttributes.static AnnotationAttributesReturn anAnnotationAttributesinstance based on the given map.getAnnotation(String attributeName) Get theAnnotationAttributesstored under the specifiedattributeName.<A extends Annotation>
AgetAnnotation(String attributeName, Class<A> annotationType) Get the annotation of typeannotationTypestored under the specifiedattributeName.getAnnotationArray(String attributeName) Get the array ofAnnotationAttributesstored under the specifiedattributeName.<A extends Annotation>
A[]getAnnotationArray(String attributeName, Class<A> annotationType) Get the array of typeannotationTypestored under the specifiedattributeName.booleangetBoolean(String attributeName) Get the value stored under the specifiedattributeNameas a boolean.<T> Class<? extends T>Get the value stored under the specifiedattributeNameas a class.Class<?>[]getClassArray(String attributeName) Get the value stored under the specifiedattributeNameas an array of classes.<E extends Enum<?>>
EGet the value stored under the specifiedattributeNameas an enum.<N extends Number>
NGet the value stored under the specifiedattributeNameas a number.Get the value stored under the specifiedattributeNameas a string.String[]getStringArray(String attributeName) Get the value stored under the specifiedattributeNameas an array of strings.toString()Methods inherited from class java.util.LinkedHashMap
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, valuesMethods inherited from class java.util.HashMap
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, sizeMethods inherited from class java.util.AbstractMap
equals, hashCodeMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
-
Constructor Details
-
AnnotationAttributes
public AnnotationAttributes()Create a new, emptyAnnotationAttributesinstance. -
AnnotationAttributes
public AnnotationAttributes(int initialCapacity) Create a new, emptyAnnotationAttributesinstance with the given initial capacity to optimize performance.- Parameters:
initialCapacity- initial size of the underlying map
-
AnnotationAttributes
Create a newAnnotationAttributesinstance, wrapping the provided map and all its key-value pairs.- Parameters:
map- original source of annotation attribute key-value pairs- See Also:
-
AnnotationAttributes
Create a newAnnotationAttributesinstance, wrapping the provided map and all its key-value pairs.- Parameters:
other- original source of annotation attribute key-value pairs- See Also:
-
AnnotationAttributes
Create a new, emptyAnnotationAttributesinstance for the specifiedannotationType.- Parameters:
annotationType- the type of annotation represented by thisAnnotationAttributesinstance; nevernull- Since:
- 4.2
-
AnnotationAttributes
Create a new, emptyAnnotationAttributesinstance for the specifiedannotationType.- Parameters:
annotationType- the annotation type name represented by thisAnnotationAttributesinstance; nevernullclassLoader- the ClassLoader to try to load the annotation type on, ornullto just store the annotation type name- Since:
- 4.3.2
-
-
Method Details
-
annotationType
Get the type of annotation represented by thisAnnotationAttributes.- Returns:
- the annotation type, or
nullif unknown - Since:
- 4.2
-
getString
Get the value stored under the specifiedattributeNameas a string.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getStringArray
Get the value stored under the specifiedattributeNameas an array of strings.If the value stored under the specified
attributeNameis a string, it will be wrapped in a single-element array before returning it.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getBoolean
Get the value stored under the specifiedattributeNameas a boolean.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getNumber
Get the value stored under the specifiedattributeNameas a number.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getEnum
Get the value stored under the specifiedattributeNameas an enum.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getClass
Get the value stored under the specifiedattributeNameas a class.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getClassArray
Get the value stored under the specifiedattributeNameas an array of classes.If the value stored under the specified
attributeNameis a class, it will be wrapped in a single-element array before returning it.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the value
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getAnnotation
Get theAnnotationAttributesstored under the specifiedattributeName.Note: if you expect an actual annotation, invoke
getAnnotation(String, Class)instead.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the
AnnotationAttributes - Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getAnnotation
Get the annotation of typeannotationTypestored under the specifiedattributeName.- Parameters:
attributeName- the name of the attribute to get; nevernullor emptyannotationType- the expected annotation type; nevernull- Returns:
- the annotation
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type- Since:
- 4.2
-
getAnnotationArray
Get the array ofAnnotationAttributesstored under the specifiedattributeName.If the value stored under the specified
attributeNameis an instance ofAnnotationAttributes, it will be wrapped in a single-element array before returning it.Note: if you expect an actual array of annotations, invoke
getAnnotationArray(String, Class)instead.- Parameters:
attributeName- the name of the attribute to get; nevernullor empty- Returns:
- the array of
AnnotationAttributes - Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type
-
getAnnotationArray
Get the array of typeannotationTypestored under the specifiedattributeName.If the value stored under the specified
attributeNameis anAnnotation, it will be wrapped in a single-element array before returning it.- Parameters:
attributeName- the name of the attribute to get; nevernullor emptyannotationType- the expected annotation type; nevernull- Returns:
- the annotation array
- Throws:
IllegalArgumentException- if the attribute does not exist or if it is not of the expected type- Since:
- 4.2
-
toString
- Overrides:
toStringin classAbstractMap<String,Object>
-
fromMap
Return anAnnotationAttributesinstance based on the given map.If the map is already an
AnnotationAttributesinstance, it will be cast and returned immediately without creating a new instance. Otherwise a new instance will be created by passing the supplied map to theAnnotationAttributes(Map)constructor.- Parameters:
map- original source of annotation attribute key-value pairs
-