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

        protected 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.
      • resolve

        public U[] resolve()
        Resolves the unloaded value of this annotation.
        Returns:
        The unloaded value of this annotation.
      • load

        public AnnotationValue.Loaded<V[]> load​(java.lang.ClassLoader classLoader)
                                         throws java.lang.ClassNotFoundException
        Returns the loaded value of this annotation.
        Parameters:
        classLoader - The class loader for loading this value.
        Returns:
        The loaded value of this annotation.
        Throws:
        java.lang.ClassNotFoundException - If a type that represents a loaded value cannot be found.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object