public class AnnotationAttributes extends LinkedHashMap<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.
AnnotationUtils.getAnnotationAttributes(java.lang.annotation.Annotation)
,
AnnotatedElementUtils
,
Serialized FormAbstractMap.SimpleEntry<K,V>, AbstractMap.SimpleImmutableEntry<K,V>
Constructor and Description |
---|
AnnotationAttributes()
Create a new, empty
AnnotationAttributes instance. |
AnnotationAttributes(AnnotationAttributes other)
Create a new
AnnotationAttributes instance, wrapping the provided
map and all its key-value pairs. |
AnnotationAttributes(Class<? extends Annotation> annotationType)
Create a new, empty
AnnotationAttributes instance for the
specified annotationType . |
AnnotationAttributes(int initialCapacity)
Create a new, empty
AnnotationAttributes instance with the
given initial capacity to optimize performance. |
AnnotationAttributes(Map<String,Object> map)
Create a new
AnnotationAttributes instance, wrapping the provided
map and all its key-value pairs. |
AnnotationAttributes(String annotationType,
ClassLoader classLoader)
Create a new, empty
AnnotationAttributes instance for the
specified annotationType . |
Modifier and Type | Method and Description |
---|---|
Class<? extends Annotation> |
annotationType()
Get the type of annotation represented by this
AnnotationAttributes . |
static AnnotationAttributes |
fromMap(Map<String,Object> map)
Return an
AnnotationAttributes instance based on the given map. |
AnnotationAttributes |
getAnnotation(String attributeName)
Get the
AnnotationAttributes stored under the specified
attributeName . |
<A extends Annotation> |
getAnnotation(String attributeName,
Class<A> annotationType)
Get the annotation of type
annotationType stored under the
specified attributeName . |
AnnotationAttributes[] |
getAnnotationArray(String attributeName)
Get the array of
AnnotationAttributes stored under the specified
attributeName . |
<A extends Annotation> |
getAnnotationArray(String attributeName,
Class<A> annotationType)
Get the array of type
annotationType stored under the specified
attributeName . |
boolean |
getBoolean(String attributeName)
Get the value stored under the specified
attributeName as a boolean. |
<T> Class<? extends T> |
getClass(String attributeName)
Get the value stored under the specified
attributeName as a class. |
Class<?>[] |
getClassArray(String attributeName)
Get the value stored under the specified
attributeName as an
array of classes. |
<E extends Enum<?>> |
getEnum(String attributeName)
Get the value stored under the specified
attributeName as an enum. |
<N extends Number> |
getNumber(String attributeName)
Get the value stored under the specified
attributeName as a number. |
String |
getString(String attributeName)
Get the value stored under the specified
attributeName as a string. |
String[] |
getStringArray(String attributeName)
Get the value stored under the specified
attributeName as an
array of strings. |
String |
toString() |
clear, containsValue, entrySet, forEach, get, getOrDefault, keySet, removeEldestEntry, replaceAll, values
clone, compute, computeIfAbsent, computeIfPresent, containsKey, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
equals, hashCode
finalize, getClass, notify, notifyAll, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, containsKey, equals, hashCode, isEmpty, merge, put, putAll, putIfAbsent, remove, remove, replace, replace, size
public AnnotationAttributes()
AnnotationAttributes
instance.public AnnotationAttributes(int initialCapacity)
AnnotationAttributes
instance with the
given initial capacity to optimize performance.initialCapacity
- initial size of the underlying mappublic AnnotationAttributes(Map<String,Object> map)
AnnotationAttributes
instance, wrapping the provided
map and all its key-value pairs.map
- original source of annotation attribute key-value pairsfromMap(Map)
public AnnotationAttributes(AnnotationAttributes other)
AnnotationAttributes
instance, wrapping the provided
map and all its key-value pairs.other
- original source of annotation attribute key-value pairsfromMap(Map)
public AnnotationAttributes(Class<? extends Annotation> annotationType)
AnnotationAttributes
instance for the
specified annotationType
.annotationType
- the type of annotation represented by this
AnnotationAttributes
instance; never null
public AnnotationAttributes(String annotationType, @Nullable ClassLoader classLoader)
AnnotationAttributes
instance for the
specified annotationType
.annotationType
- the annotation type name represented by this
AnnotationAttributes
instance; never null
classLoader
- the ClassLoader to try to load the annotation type on,
or null
to just store the annotation type name@Nullable public Class<? extends Annotation> annotationType()
AnnotationAttributes
.null
if unknownpublic String getString(String attributeName)
attributeName
as a string.attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic String[] getStringArray(String attributeName)
attributeName
as an
array of strings.
If the value stored under the specified attributeName
is
a string, it will be wrapped in a single-element array before
returning it.
attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic boolean getBoolean(String attributeName)
attributeName
as a boolean.attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic <N extends Number> N getNumber(String attributeName)
attributeName
as a number.attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic <E extends Enum<?>> E getEnum(String attributeName)
attributeName
as an enum.attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic <T> Class<? extends T> getClass(String attributeName)
attributeName
as a class.attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic Class<?>[] getClassArray(String attributeName)
attributeName
as an
array of classes.
If the value stored under the specified attributeName
is a class,
it will be wrapped in a single-element array before returning it.
attributeName
- the name of the attribute to get;
never null
or emptyIllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic AnnotationAttributes getAnnotation(String attributeName)
AnnotationAttributes
stored under the specified
attributeName
.
Note: if you expect an actual annotation, invoke
getAnnotation(String, Class)
instead.
attributeName
- the name of the attribute to get;
never null
or emptyAnnotationAttributes
IllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic <A extends Annotation> A getAnnotation(String attributeName, Class<A> annotationType)
annotationType
stored under the
specified attributeName
.attributeName
- the name of the attribute to get;
never null
or emptyannotationType
- the expected annotation type; never null
IllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic AnnotationAttributes[] getAnnotationArray(String attributeName)
AnnotationAttributes
stored under the specified
attributeName
.
If the value stored under the specified attributeName
is
an instance of AnnotationAttributes
, 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.
attributeName
- the name of the attribute to get;
never null
or emptyAnnotationAttributes
IllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic <A extends Annotation> A[] getAnnotationArray(String attributeName, Class<A> annotationType)
annotationType
stored under the specified
attributeName
.
If the value stored under the specified attributeName
is
an Annotation
, it will be wrapped in a single-element array
before returning it.
attributeName
- the name of the attribute to get;
never null
or emptyannotationType
- the expected annotation type; never null
IllegalArgumentException
- if the attribute does not exist or
if it is not of the expected typepublic String toString()
toString
in class AbstractMap<String,Object>
@Nullable public static AnnotationAttributes fromMap(@Nullable Map<String,Object> map)
AnnotationAttributes
instance based on the given map.
If the map is already an AnnotationAttributes
instance, 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 the AnnotationAttributes(Map)
constructor.
map
- original source of annotation attribute key-value pairs