Class AnnotationUtil


  • @Internal
    public class AnnotationUtil
    extends java.lang.Object
    Internal utility methods for annotations. For Internal and framework use only. Do not use in application code.
    Since:
    1.0
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.util.Set<java.lang.String> ADVICE_STEREOTYPES
      The advice stereotypes.
      static java.lang.String ANN_AROUND
      The around annotation type.
      static java.lang.String ANN_AROUND_CONSTRUCT
      The around annotation type.
      static java.lang.String ANN_INTERCEPTOR_BINDING
      Name of the interceptor binding type.
      static java.lang.String ANN_INTERCEPTOR_BINDING_QUALIFIER
      Name of the interceptor binding qualifier type.
      static java.lang.String ANN_INTERCEPTOR_BINDINGS
      Name of the repeatable interceptor bindings type.
      static java.lang.String ANN_INTRODUCTION
      The around annotation type.
      static java.lang.reflect.AnnotatedElement EMPTY_ANNOTATED_ELEMENT
      An empty re-usable element.
      static java.lang.String INJECT
      The meta annotation used for inject declarations.
      static java.util.List<java.lang.String> INTERNAL_ANNOTATION_NAMES  
      static java.lang.String KOTLIN_METADATA
      Constant for Kotlin metadata.
      static java.lang.String NAMED
      The meta annotation used for named qualifiers.
      static java.lang.String NON_NULL
      Simple Annotation name used for non-null.
      static java.lang.String NULLABLE
      Simple Annotation name used for nullable.
      static java.lang.String POST_CONSTRUCT
      The meta annotation used for post-construct declarations.
      static java.lang.String PRE_DESTROY
      The meta annotation used for pre-destroy declarations.
      static java.lang.String QUALIFIER
      The meta annotation used for qualifier declarations.
      static java.lang.String SCOPE
      The meta annotation used for scope declarations.
      static java.lang.String SINGLETON
      The meta annotation used for singleton scope.
      static java.util.List<java.lang.String> STEREOTYPE_EXCLUDES
      Packages excludes from stereotype processing.
      static java.lang.reflect.AnnotatedElement[] ZERO_ANNOTATED_ELEMENTS
      Constant indicating an zero annotation.
      static AnnotationValue<?>[] ZERO_ANNOTATION_VALUES
      Constant indicating an zero annotation values.
      static java.lang.annotation.Annotation[] ZERO_ANNOTATIONS
      Constant indicating an zero annotation.
    • Constructor Summary

      Constructors 
      Constructor Description
      AnnotationUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean areEqual​(java.lang.Object o1, java.lang.Object o2)
      Computes whether 2 annotation values are equal.
      static int calculateHashCode​(java.util.Map<? extends java.lang.CharSequence,​java.lang.Object> values)
      Calculates the hash code of annotation values.
      static java.util.List<java.lang.String> internListOf​(java.lang.Object... objects)
      Converts the given objects into a set of potentially cached and interned strings contained within an internal pool of lists.
      static java.util.Map<java.lang.String,​java.lang.Object> internMapOf​(java.lang.Object... values)
      Converts the given objects into a map of potentially cached and interned strings where the keys and values are alternating entries in the passed array.
      static java.util.Map<java.lang.String,​java.lang.Object> internMapOf​(java.lang.String key, java.lang.Object value)
      Converts the given objects into a map of potentially cached and interned strings where the keys and values are alternating entries in the passed array.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.Object... array)
      Create a new immutable Map from an array of values.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4, java.lang.String key5, java.lang.Object value5)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4, java.lang.String key5, java.lang.Object value5, java.lang.String key6, java.lang.Object value6)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4, java.lang.String key5, java.lang.Object value5, java.lang.String key6, java.lang.Object value6, java.lang.String key7, java.lang.Object value7)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4, java.lang.String key5, java.lang.Object value5, java.lang.String key6, java.lang.Object value6, java.lang.String key7, java.lang.Object value7, java.lang.String key8, java.lang.Object value8)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4, java.lang.String key5, java.lang.Object value5, java.lang.String key6, java.lang.Object value6, java.lang.String key7, java.lang.Object value7, java.lang.String key8, java.lang.Object value8, java.lang.String key9, java.lang.Object value9)
      Create a new immutable Map.
      static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1, java.lang.Object value1, java.lang.String key2, java.lang.Object value2, java.lang.String key3, java.lang.Object value3, java.lang.String key4, java.lang.Object value4, java.lang.String key5, java.lang.Object value5, java.lang.String key6, java.lang.Object value6, java.lang.String key7, java.lang.Object value7, java.lang.String key8, java.lang.Object value8, java.lang.String key9, java.lang.Object value9, java.lang.String key10, java.lang.Object value10)
      Create a new immutable Map.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • KOTLIN_METADATA

        public static final java.lang.String KOTLIN_METADATA
        Constant for Kotlin metadata.
        See Also:
        Constant Field Values
      • INTERNAL_ANNOTATION_NAMES

        public static final java.util.List<java.lang.String> INTERNAL_ANNOTATION_NAMES
      • STEREOTYPE_EXCLUDES

        public static final java.util.List<java.lang.String> STEREOTYPE_EXCLUDES
        Packages excludes from stereotype processing.
      • ZERO_ANNOTATIONS

        public static final java.lang.annotation.Annotation[] ZERO_ANNOTATIONS
        Constant indicating an zero annotation.
      • ZERO_ANNOTATED_ELEMENTS

        public static final java.lang.reflect.AnnotatedElement[] ZERO_ANNOTATED_ELEMENTS
        Constant indicating an zero annotation.
      • ZERO_ANNOTATION_VALUES

        public static final AnnotationValue<?>[] ZERO_ANNOTATION_VALUES
        Constant indicating an zero annotation values.
      • EMPTY_ANNOTATED_ELEMENT

        public static final java.lang.reflect.AnnotatedElement EMPTY_ANNOTATED_ELEMENT
        An empty re-usable element.
      • NULLABLE

        public static final java.lang.String NULLABLE
        Simple Annotation name used for nullable.
        See Also:
        Constant Field Values
      • NON_NULL

        public static final java.lang.String NON_NULL
        Simple Annotation name used for non-null.
        See Also:
        Constant Field Values
      • ANN_AROUND

        public static final java.lang.String ANN_AROUND
        The around annotation type.
        See Also:
        Constant Field Values
      • ANN_AROUND_CONSTRUCT

        public static final java.lang.String ANN_AROUND_CONSTRUCT
        The around annotation type.
        See Also:
        Constant Field Values
      • ANN_INTRODUCTION

        public static final java.lang.String ANN_INTRODUCTION
        The around annotation type.
        See Also:
        Constant Field Values
      • ANN_INTERCEPTOR_BINDING

        public static final java.lang.String ANN_INTERCEPTOR_BINDING
        Name of the interceptor binding type.
        See Also:
        Constant Field Values
      • ANN_INTERCEPTOR_BINDING_QUALIFIER

        public static final java.lang.String ANN_INTERCEPTOR_BINDING_QUALIFIER
        Name of the interceptor binding qualifier type.
        See Also:
        Constant Field Values
      • ADVICE_STEREOTYPES

        public static final java.util.Set<java.lang.String> ADVICE_STEREOTYPES
        The advice stereotypes.
      • ANN_INTERCEPTOR_BINDINGS

        public static final java.lang.String ANN_INTERCEPTOR_BINDINGS
        Name of the repeatable interceptor bindings type.
        See Also:
        Constant Field Values
      • INJECT

        public static final java.lang.String INJECT
        The meta annotation used for inject declarations.
        See Also:
        Constant Field Values
      • SCOPE

        public static final java.lang.String SCOPE
        The meta annotation used for scope declarations.
        See Also:
        Constant Field Values
      • SINGLETON

        public static final java.lang.String SINGLETON
        The meta annotation used for singleton scope.
        See Also:
        Constant Field Values
      • QUALIFIER

        public static final java.lang.String QUALIFIER
        The meta annotation used for qualifier declarations.
        See Also:
        Constant Field Values
      • NAMED

        public static final java.lang.String NAMED
        The meta annotation used for named qualifiers.
        See Also:
        Constant Field Values
      • PRE_DESTROY

        public static final java.lang.String PRE_DESTROY
        The meta annotation used for pre-destroy declarations.
        See Also:
        Constant Field Values
      • POST_CONSTRUCT

        public static final java.lang.String POST_CONSTRUCT
        The meta annotation used for post-construct declarations.
        See Also:
        Constant Field Values
    • Constructor Detail

      • AnnotationUtil

        public AnnotationUtil()
    • Method Detail

      • internListOf

        public static java.util.List<java.lang.String> internListOf​(java.lang.Object... objects)
        Converts the given objects into a set of potentially cached and interned strings contained within an internal pool of lists. See String.intern().

        This method serves the purpose of reducing memory footprint by pooling common lists of annotations in compiled AnnotationMetadata

        Parameters:
        objects - The objects
        Returns:
        A unmodifiable, pooled set of strings
      • internMapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> internMapOf​(java.lang.Object... values)
        Converts the given objects into a map of potentially cached and interned strings where the keys and values are alternating entries in the passed array. See String.intern().

        The values stored at even number positions will be converted to strings and interned.

        Parameters:
        values - The objects
        Returns:
        An unmodifiable set of strings
        See Also:
        CollectionUtils.mapOf(Object...)
      • internMapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> internMapOf​(java.lang.String key,
                                                                                         java.lang.Object value)
        Converts the given objects into a map of potentially cached and interned strings where the keys and values are alternating entries in the passed array. See String.intern().

        The values stored at even number positions will be converted to strings and interned.

        Parameters:
        key - The key
        value - The value
        Returns:
        An unmodifiable set of strings
        Since:
        3.0
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.Object... array)
        Create a new immutable Map from an array of values. String values must be sorted!
        Parameters:
        array - The key, value array
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key 1
        value1 - The value 1
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4,
                                                                                   java.lang.String key5,
                                                                                   java.lang.Object value5)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        key5 - The key5
        value5 - The value5
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4,
                                                                                   java.lang.String key5,
                                                                                   java.lang.Object value5,
                                                                                   java.lang.String key6,
                                                                                   java.lang.Object value6)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        key5 - The key5
        value5 - The value5
        key6 - The key6
        value6 - The value6
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4,
                                                                                   java.lang.String key5,
                                                                                   java.lang.Object value5,
                                                                                   java.lang.String key6,
                                                                                   java.lang.Object value6,
                                                                                   java.lang.String key7,
                                                                                   java.lang.Object value7)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        key5 - The key5
        value5 - The value5
        key6 - The key6
        value6 - The value6
        key7 - The key7
        value7 - The value7
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4,
                                                                                   java.lang.String key5,
                                                                                   java.lang.Object value5,
                                                                                   java.lang.String key6,
                                                                                   java.lang.Object value6,
                                                                                   java.lang.String key7,
                                                                                   java.lang.Object value7,
                                                                                   java.lang.String key8,
                                                                                   java.lang.Object value8)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        key5 - The key5
        value5 - The value5
        key6 - The key6
        value6 - The value6
        key7 - The key7
        value7 - The value7
        key8 - The key8
        value8 - The value8
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4,
                                                                                   java.lang.String key5,
                                                                                   java.lang.Object value5,
                                                                                   java.lang.String key6,
                                                                                   java.lang.Object value6,
                                                                                   java.lang.String key7,
                                                                                   java.lang.Object value7,
                                                                                   java.lang.String key8,
                                                                                   java.lang.Object value8,
                                                                                   java.lang.String key9,
                                                                                   java.lang.Object value9)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        key5 - The key5
        value5 - The value5
        key6 - The key6
        value6 - The value6
        key7 - The key7
        value7 - The value7
        key8 - The key8
        value8 - The value8
        key9 - The key9
        value9 - The value9
        Returns:
        The created map
      • mapOf

        public static java.util.Map<java.lang.String,​java.lang.Object> mapOf​(java.lang.String key1,
                                                                                   java.lang.Object value1,
                                                                                   java.lang.String key2,
                                                                                   java.lang.Object value2,
                                                                                   java.lang.String key3,
                                                                                   java.lang.Object value3,
                                                                                   java.lang.String key4,
                                                                                   java.lang.Object value4,
                                                                                   java.lang.String key5,
                                                                                   java.lang.Object value5,
                                                                                   java.lang.String key6,
                                                                                   java.lang.Object value6,
                                                                                   java.lang.String key7,
                                                                                   java.lang.Object value7,
                                                                                   java.lang.String key8,
                                                                                   java.lang.Object value8,
                                                                                   java.lang.String key9,
                                                                                   java.lang.Object value9,
                                                                                   java.lang.String key10,
                                                                                   java.lang.Object value10)
        Create a new immutable Map. String values must be sorted!
        Parameters:
        key1 - The key1
        value1 - The value1
        key2 - The key2
        value2 - The value2
        key3 - The key3
        value3 - The value3
        key4 - The key4
        value4 - The value4
        key5 - The key5
        value5 - The value5
        key6 - The key6
        value6 - The value6
        key7 - The key7
        value7 - The value7
        key8 - The key8
        value8 - The value8
        key9 - The key9
        value9 - The value9
        key10 - The key10
        value10 - The value10
        Returns:
        The created map
      • calculateHashCode

        public static int calculateHashCode​(java.util.Map<? extends java.lang.CharSequence,​java.lang.Object> values)
        Calculates the hash code of annotation values.
        Parameters:
        values - The map to calculate values' hash code
        Returns:
        The hash code
      • areEqual

        public static boolean areEqual​(java.lang.Object o1,
                                       java.lang.Object o2)
        Computes whether 2 annotation values are equal.
        Parameters:
        o1 - One object
        o2 - Another object
        Returns:
        Whether both objects are equal