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, Annotation and Enum instances.
  • Field Details

    • unloadedComponentType

      private final 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 List<? extends AnnotationValue<?,?>> values
      A list of values of the array elements.
  • Constructor Details

    • ForDescriptionArray

      public ForDescriptionArray(Class<?> unloadedComponentType, TypeDescription componentType, 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 Details

    • of

      public static <W extends 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 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[],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 ClassLoader classLoader)
      Returns the loaded value of this annotation.
      Parameters:
      classLoader - The class loader for loading this value or null for using the boot loader.
      Returns:
      The loaded value of this annotation.
    • hashCode

      @Enhance("hashCode") public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(@MaybeNull Object other)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object