Class AnnotationDescription.ForLoadedAnnotation<S extends java.lang.annotation.Annotation>

    • Field Detail

      • annotation

        private final S extends java.lang.annotation.Annotation annotation
        The represented annotation value.
      • annotationType

        private final java.lang.Class<S extends java.lang.annotation.Annotation> 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 Detail

      • ForLoadedAnnotation

        protected ForLoadedAnnotation​(S annotation)
        Creates a new annotation description for a loaded annotation.
        Parameters:
        annotation - The annotation to represent.
      • ForLoadedAnnotation

        private ForLoadedAnnotation​(S annotation,
                                    java.lang.Class<S> annotationType)
        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 Detail

      • of

        public static <U extends java.lang.annotation.Annotation> AnnotationDescription.Loadable<U> of​(U annotation)
        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

        public S 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 interface AnnotationDescription.Loadable<S extends java.lang.annotation.Annotation>
        Returns:
        A loaded version of this annotation description.
      • asValue

        private static java.util.Map<java.lang.String,​AnnotationValue<?,​?>> asValue​(java.lang.annotation.Annotation annotation)
        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

        public static AnnotationValue<?,​?> asValue​(java.lang.Object value,
                                                         java.lang.Class<?> type)
        Transforms an annotation property to an annotation value.
        Parameters:
        type - The annotation's type.
        value - The annotations value.
        Returns:
        An annotation value representation.
      • prepare

        public <T extends java.lang.annotation.Annotation> AnnotationDescription.Loadable<T> prepare​(java.lang.Class<T> annotationType)
        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 interface AnnotationDescription
        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.