Class AnnotationValue.ForDescriptionArray<U,V>
- java.lang.Object
-
- net.bytebuddy.description.annotation.AnnotationValue.AbstractBase<U,V>
-
- net.bytebuddy.description.annotation.AnnotationValue.ForDescriptionArray<U,V>
-
- Type Parameters:
U- The array type of the annotation's value when it is not loaded.V- The array type of the annotation's value when it is loaded.
- All Implemented Interfaces:
AnnotationValue<U,V>
- Enclosing interface:
- AnnotationValue<T,S>
public static class AnnotationValue.ForDescriptionArray<U,V> extends AnnotationValue.AbstractBase<U,V>
Describes a complex array that is the value of an annotation. Complex arrays are arrays that might trigger the loading of user-defined types, i.e.Class,AnnotationandEnuminstances.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAnnotationValue.ForDescriptionArray.Loaded<W>Represents a loaded complex array.-
Nested classes/interfaces inherited from interface net.bytebuddy.description.annotation.AnnotationValue
AnnotationValue.AbstractBase<U,V>, AnnotationValue.ForAnnotationDescription<U extends java.lang.annotation.Annotation>, AnnotationValue.ForConstant<U>, AnnotationValue.ForDescriptionArray<U,V>, AnnotationValue.ForEnumerationDescription<U extends java.lang.Enum<U>>, AnnotationValue.ForIncompatibleType<U,V>, AnnotationValue.ForMismatchedType<U,V>, AnnotationValue.ForMissingType<U,V>, AnnotationValue.ForMissingValue<U,V>, AnnotationValue.ForTypeDescription<U extends java.lang.Class<U>>, AnnotationValue.RenderingDispatcher, AnnotationValue.Sort, AnnotationValue.State
-
-
Field Summary
Fields Modifier and Type Field Description private TypeDescriptioncomponentTypeA description of the component type when it is loaded.private java.lang.Class<?>unloadedComponentTypeThe component type for arrays containing unloaded versions of the annotation array's values.private java.util.List<? extends AnnotationValue<?,?>>valuesA list of values of the array elements.-
Fields inherited from interface net.bytebuddy.description.annotation.AnnotationValue
UNDEFINED
-
-
Constructor Summary
Constructors Constructor Description ForDescriptionArray(java.lang.Class<?> unloadedComponentType, TypeDescription componentType, java.util.List<? extends AnnotationValue<?,?>> values)Creates a new complex array.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object other)AnnotationValue<U,V>filter(MethodDescription.InDefinedShape property, TypeDefinition typeDefinition)Filters this annotation value as a valid value of the provided property.AnnotationValue.SortgetSort()Returns the property type of the annotation value.AnnotationValue.StategetState()Returns the state of the represented annotation value.inthashCode()AnnotationValue.Loaded<V>load(java.lang.ClassLoader classLoader)Returns the loaded value of this annotation.static AnnotationValue<TypeDescription[],java.lang.Class<?>[]>of(TypeDescription[] typeDescription)Creates a new complex array of annotation descriptions.static <W extends java.lang.annotation.Annotation>
AnnotationValue<AnnotationDescription[],W[]>of(TypeDescription annotationType, AnnotationDescription[] annotationDescription)Creates a new complex array of annotation descriptions.static <W extends java.lang.Enum<W>>
AnnotationValue<EnumerationDescription[],W[]>of(TypeDescription enumerationType, EnumerationDescription[] enumerationDescription)Creates a new complex array of enumeration descriptions.Uresolve()Resolves the unloaded value of this annotation.java.lang.StringtoString()-
Methods inherited from class net.bytebuddy.description.annotation.AnnotationValue.AbstractBase
filter, resolve
-
-
-
-
Field Detail
-
unloadedComponentType
private final java.lang.Class<?> unloadedComponentType
The component type for arrays containing unloaded versions of the annotation array's values.
-
componentType
private final TypeDescription componentType
A description of the component type when it is loaded.
-
values
private final java.util.List<? extends AnnotationValue<?,?>> values
A list of values of the array elements.
-
-
Constructor Detail
-
ForDescriptionArray
public ForDescriptionArray(java.lang.Class<?> unloadedComponentType, TypeDescription componentType, java.util.List<? extends AnnotationValue<?,?>> values)Creates a new complex array.- Parameters:
unloadedComponentType- The component type for arrays containing unloaded versions of the annotation array's values.componentType- A description of the component type when it is loaded.values- A list of values of the array elements.
-
-
Method Detail
-
of
public static <W extends java.lang.Enum<W>> AnnotationValue<EnumerationDescription[],W[]> of(TypeDescription enumerationType, EnumerationDescription[] enumerationDescription)
Creates a new complex array of enumeration descriptions.- Type Parameters:
W- The type of the enumeration.- Parameters:
enumerationType- A description of the type of the enumeration.enumerationDescription- An array of enumeration descriptions.- Returns:
- A description of the array of enumeration values.
-
of
public static <W extends java.lang.annotation.Annotation> AnnotationValue<AnnotationDescription[],W[]> of(TypeDescription annotationType, AnnotationDescription[] annotationDescription)
Creates a new complex array of annotation descriptions.- Type Parameters:
W- The type of the annotation.- Parameters:
annotationType- A description of the type of the annotation.annotationDescription- An array of annotation descriptions.- Returns:
- A description of the array of enumeration values.
-
of
public static AnnotationValue<TypeDescription[],java.lang.Class<?>[]> of(TypeDescription[] typeDescription)
Creates a new complex array of annotation descriptions.- Parameters:
typeDescription- A description of the types contained in the array.- Returns:
- A description of the array of enumeration values.
-
getState
public AnnotationValue.State getState()
Returns the state of the represented annotation value.- Returns:
- The state represented by this instance.
-
getSort
public AnnotationValue.Sort getSort()
Returns the property type of the annotation value.- Returns:
- The property type of the annotation value.
-
filter
public AnnotationValue<U,V> filter(MethodDescription.InDefinedShape property, TypeDefinition typeDefinition)
Filters this annotation value as a valid value of the provided property.- Parameters:
property- The property to filter against.typeDefinition- The expected type.- Returns:
- This annotation value or a new annotation value that describes why this value is not a valid value for the supplied property.
-
resolve
public U resolve()
Resolves the unloaded value of this annotation. The return value of this method is not defined if this annotation value is invalid.- Returns:
- The unloaded value of this annotation.
-
load
public AnnotationValue.Loaded<V> load(@MaybeNull java.lang.ClassLoader classLoader)
Returns the loaded value of this annotation.- Parameters:
classLoader- The class loader for loading this value ornullfor using the boot loader.- Returns:
- The loaded value of this annotation.
-
hashCode
@Enhance("hashCode") public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(@MaybeNull java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-