Class AnnotationValue.ForDescriptionArray<U,​V>

  • Type Parameters:
    U - The component type of the annotation's value when it is not loaded.
    V - The component 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.
    • Constructor Detail

      • 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 Detail

      • 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 AnnotationAnnotationValue<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.
      • 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​(ClassLoader classLoader)
        Returns the loaded value of this annotation.
        Parameters:
        classLoader - The class loader for loading this value.
        Returns:
        The loaded value of this annotation.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object