Class AnnotationDescription.ForLoadedAnnotation<S extends Annotation>
java.lang.Object
net.bytebuddy.description.annotation.AnnotationDescription.AbstractBase
net.bytebuddy.description.annotation.AnnotationDescription.ForLoadedAnnotation<S>
- Type Parameters:
S
- The type of the annotation.
- All Implemented Interfaces:
AnnotationDescription
,AnnotationDescription.Loadable<S>
- Enclosing interface:
- AnnotationDescription
public static class AnnotationDescription.ForLoadedAnnotation<S extends Annotation>
extends AnnotationDescription.AbstractBase
implements AnnotationDescription.Loadable<S>
A description of an already loaded annotation.
-
Nested Class Summary
Nested classes/interfaces inherited from interface net.bytebuddy.description.annotation.AnnotationDescription
AnnotationDescription.AbstractBase, AnnotationDescription.AnnotationInvocationHandler<T extends Annotation>, AnnotationDescription.Builder, AnnotationDescription.ForLoadedAnnotation<S extends Annotation>, AnnotationDescription.Latent, AnnotationDescription.Loadable<S extends Annotation>, AnnotationDescription.RenderingDispatcher
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final S
The represented annotation value.The annotation's loaded type which might be loaded by a different class loader than the value's annotation type but must be structurally equal to it.private static final Object[]
An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call.Fields inherited from interface net.bytebuddy.description.annotation.AnnotationDescription
UNDEFINED
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ForLoadedAnnotation
(S annotation) Creates a new annotation description for a loaded annotation.private
ForLoadedAnnotation
(S annotation, Class<S> annotationType) Creates a new annotation description for a loaded annotation. -
Method Summary
Modifier and TypeMethodDescriptionprivate static Map<String,
AnnotationValue<?, ?>> asValue
(Annotation annotation) Extracts the annotation values of an annotation into a property map.static AnnotationValue<?,
?> Transforms an annotation property to an annotation value.private static <T> T
doPrivileged
(PrivilegedAction<T> action) A proxy forjava.security.AccessController#doPrivileged
that is activated if available.Returns a description of the annotation type of this annotation.AnnotationValue<?,
?> getValue
(MethodDescription.InDefinedShape property) Returns a value of this annotation.load()
Loads this annotation description.static <U extends Annotation>
AnnotationDescription.Loadable<U>of
(U annotation) Creates a description of the given annotation.<T extends Annotation>
AnnotationDescription.Loadable<T>Links this annotation description to a given annotation type such that it can be loaded.Methods inherited from class net.bytebuddy.description.annotation.AnnotationDescription.AbstractBase
equals, getElementTypes, getRetention, getValue, hashCode, isDocumented, isInherited, isSupportedOn, isSupportedOn, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface net.bytebuddy.description.annotation.AnnotationDescription
getElementTypes, getRetention, getValue, isDocumented, isInherited, isSupportedOn, isSupportedOn
-
Field Details
-
NO_ARGUMENT
An empty array that can be used to indicate no arguments to avoid an allocation on a reflective call. -
annotation
The represented annotation value. -
annotationType
The annotation's loaded type which might be loaded by a different class loader than the value's annotation type but must be structurally equal to it.
-
-
Constructor Details
-
ForLoadedAnnotation
Creates a new annotation description for a loaded annotation.- Parameters:
annotation
- The annotation to represent.
-
ForLoadedAnnotation
Creates a new annotation description for a loaded annotation.- Parameters:
annotation
- The annotation to represent.annotationType
- The annotation's loaded type which might be loaded by a different class loader than the value's annotation type but must be structurally equal to it.
-
-
Method Details
-
doPrivileged
A proxy forjava.security.AccessController#doPrivileged
that is activated if available.- Type Parameters:
T
- The type of the action's resolved value.- Parameters:
action
- The action to execute from a privileged context.- Returns:
- The action's resolved value.
-
of
Creates a description of the given annotation.- Type Parameters:
U
- The type of the annotation.- Parameters:
annotation
- The annotation to be described.- Returns:
- A description of the given annotation.
-
load
Loads this annotation description. This causes all classes referenced by the annotation value to be loaded. Without specifying a class loader, the annotation's class loader which was used to prepare this instance is used.- Specified by:
load
in interfaceAnnotationDescription.Loadable<S extends Annotation>
- Returns:
- A loaded version of this annotation description.
-
asValue
Extracts the annotation values of an annotation into a property map.- Parameters:
annotation
- The annotation to convert.- Returns:
- A mapping of property names to their annotation value.
-
asValue
Transforms an annotation property to an annotation value.- Parameters:
type
- The annotation's type.value
- The annotations value.- Returns:
- An annotation value representation.
-
getValue
Returns a value of this annotation.- Specified by:
getValue
in interfaceAnnotationDescription
- Parameters:
property
- The property being accessed.- Returns:
- The value for the supplied property.
-
prepare
Links this annotation description to a given annotation type such that it can be loaded. This does not cause the values of this annotation to be loaded.- Specified by:
prepare
in interfaceAnnotationDescription
- Type Parameters:
T
- The type of the annotation.- Parameters:
annotationType
- The loaded annotation type of this annotation description.- Returns:
- A loadable version of this annotation description.
-
getAnnotationType
Returns a description of the annotation type of this annotation.- Specified by:
getAnnotationType
in interfaceAnnotationDescription
- Returns:
- A description of the annotation type of this annotation.
-