Class AnnotationValue

    • Field Detail

      • name

        private final java.lang.String name
    • Constructor Detail

      • AnnotationValue

        AnnotationValue​(java.lang.String name)
    • Method Detail

      • createByteValue

        public static AnnotationValue createByteValue​(java.lang.String name,
                                                      byte b)
      • createShortValue

        public static AnnotationValue createShortValue​(java.lang.String name,
                                                       short s)
      • createIntegerValue

        public static AnnotationValue createIntegerValue​(java.lang.String name,
                                                         int i)
      • createCharacterValue

        public static AnnotationValue createCharacterValue​(java.lang.String name,
                                                           char c)
      • createFloatValue

        public static AnnotationValue createFloatValue​(java.lang.String name,
                                                       float f)
      • createDoubleValue

        public static AnnotationValue createDoubleValue​(java.lang.String name,
                                                        double d)
      • createLongValue

        public static AnnotationValue createLongValue​(java.lang.String name,
                                                      long l)
      • createBooleanValue

        public static AnnotationValue createBooleanValue​(java.lang.String name,
                                                         boolean bool)
      • createStringValue

        public static AnnotationValue createStringValue​(java.lang.String name,
                                                        java.lang.String string)
      • createClassValue

        public static AnnotationValue createClassValue​(java.lang.String name,
                                                       Type type)
      • createEnumValue

        public static AnnotationValue createEnumValue​(java.lang.String name,
                                                      DotName typeName,
                                                      java.lang.String value)
      • name

        public final java.lang.String name()
        Returns the name of this value, which is typically the parameter name in the annotation declaration. The value may not represent a parameter (e.g an array element member), in which case name will simply return an empty string ("")
        Returns:
        the name of this value
      • value

        public abstract java.lang.Object value()
        Returns a detyped value that represents the underlying annotation value. It is recommended that the type specific methods be used instead.
        Returns:
        the underlying value
      • kind

        public abstract AnnotationValue.Kind kind()
        Returns the kind of this value. The kind includes all Java primitives, String and Enum types, nested values, and finally arrays of the above. Since the return type is itself an enumeration, it can be used with Java switch statements.

        A special AnnotationValue.Kind.UNKNOWN kind is used to refer to components of zero-length arrays, as the underlying type is not known.

        Returns:
        the kind of value
        Since:
        2.0
      • componentKind

        public AnnotationValue.Kind componentKind()
        Returns the kind of value that represents the component type of this array if it can be determined. Otherwise, this method returns AnnotationValue.Kind.UNKNOWN. This happens when the annotation value represents an empty array. If the underlying value is not an array an exception will be thrown.
        Returns:
        the kind of component, or AnnotationValue.Kind.UNKNOWN if it can not be determined.
        Throws:
        java.lang.IllegalArgumentException - if not an array
        Since:
        2.0
      • asInt

        public int asInt()
        Converts the underlying numerical type to an integer as if it was casted in Java.
        Returns:
        an integer representing the numerical parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not numerical
      • asLong

        public long asLong()
        Converts the underlying numerical type to an long as if it was casted in Java.
        Returns:
        a long representing the numerical parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not numerical
      • asShort

        public short asShort()
        Converts the underlying numerical type to a short as if it was casted in Java.
        Returns:
        a short representing the numerical parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not numerical
      • asByte

        public byte asByte()
        Converts the underlying numerical type to a byte as if it was casted in Java.
        Returns:
        a byte representing the numerical parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not numerical
      • asFloat

        public float asFloat()
        Converts the underlying numerical type to a float as if it was casted in Java.
        Returns:
        a float representing the numerical parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not numerical
      • asDouble

        public double asDouble()
        Converts the underlying numerical type to a double as if it was casted in Java.
        Returns:
        a double representing the numerical parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not numerical
      • asChar

        public char asChar()
        Returns the underlying character value as Java primitive char.
        Returns:
        a char representing the character parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not a character
      • asBoolean

        public boolean asBoolean()
        Returns the underlying boolean value as Java primitive boolean.
        Returns:
        a boolean representing the character parameter
        Throws:
        java.lang.IllegalArgumentException - if the value is not a boolean
      • asString

        public java.lang.String asString()
        Returns the string representation of the underlying value type. The representation may or may not be convertible to the type it represents. This is best used on String types, but can also provide a useful way to quickly convert a value to a String.
        Returns:
        a string representing the value parameter
      • asEnum

        public java.lang.String asEnum()
        Returns the constant name, in string form, that represents the Java enumeration of this value. The value is the same as the one returned by Enum.name().
        Returns:
        the string name of a Java enumeration
        Throws:
        java.lang.IllegalArgumentException - if the value is not an enum
      • asEnumType

        public DotName asEnumType()
        Returns the type name, in DotName form, that represents the Java enumeration of this value. The value is the same as the one returned by Object.getClass().
        Returns:
        the type name of a Java enumeration
        Throws:
        java.lang.IllegalArgumentException - if the value is not an enum
      • asClass

        public Type asClass()
        Returns the class name, in Type form, that represents a Java Class used by this value. In addition to standard class name, it can also refer to specialty types, such as Void and primitive types (e.g. int.class). More specifically, any erased type that a method can return is a valid annotation Class type.
        Returns:
        the Java type of this value
        Throws:
        java.lang.IllegalArgumentException - if the value is not a Class
      • asNested

        public AnnotationInstance asNested()
        Returns a nested annotation represented by this value. The nested annotation will have a null target, but may contain an arbitrary amount of nested values
        Returns:
        the underlying nested annotation instance
        Throws:
        java.lang.IllegalArgumentException - if the value is not a nested annotation
      • asIntArray

        public int[] asIntArray()
        Converts an underlying numerical array to a Java primitive integer array.
        Returns:
        an int array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a numerical array.
      • asLongArray

        public long[] asLongArray()
        Converts an underlying numerical array to a Java primitive long array.
        Returns:
        a long array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a numerical array.
      • asShortArray

        public short[] asShortArray()
        Converts an underlying numerical array to a Java primitive short array.
        Returns:
        a short array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a numerical array.
      • asByteArray

        public byte[] asByteArray()
        Converts an underlying numerical array to a Java primitive byte array.
        Returns:
        a byte array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a numerical array.
      • asFloatArray

        public float[] asFloatArray()
        Converts an underlying numerical array to a Java primitive float array.
        Returns:
        a float array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a numerical array.
      • asDoubleArray

        public double[] asDoubleArray()
        Converts an underlying numerical array to a Java primitive double array.
        Returns:
        a double array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a numerical array.
      • asCharArray

        public char[] asCharArray()
        Returns the underlying character array.
        Returns:
        a character array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a character array.
      • asBooleanArray

        public boolean[] asBooleanArray()
        Returns the underlying boolean array.
        Returns:
        a boolean array that represents this value
        Throws:
        java.lang.IllegalArgumentException - if this value is not a boolean array.
      • asStringArray

        public java.lang.String[] asStringArray()
        Returns a string array representation of the underlying array value. The behavior is identical to asString() as if it were applied to every array element.
        Returns:
        a string array representing the underlying array value
        Throws:
        java.lang.IllegalArgumentException - if this value is not an array
      • asEnumArray

        public java.lang.String[] asEnumArray()
        Returns an array of the constant name, in string form, that represents the Java enumeration of each array element The individual element values are the same as the one returned by Enum.name().
        Returns:
        an array of string names of a Java enums
        Throws:
        java.lang.IllegalArgumentException - if the value is not an enum array
      • asEnumTypeArray

        public DotName[] asEnumTypeArray()
        Returns an array of the type name, in DotName form, that represents the Java enumeration of each array element. The individual element values are the same as the one returned by Object.getClass(). Note that JLS restricts an enum array parameter to the same type. Also, when an empty array is specified in a value, it's types can not be determined.
        Returns:
        an array of string type names of Java enum array elements
        Throws:
        java.lang.IllegalArgumentException - if the value is not an enum array
      • asClassArray

        public Type[] asClassArray()
        Returns an array of class types representing the underlying class array value. Each element has the same behavior as asClass()
        Returns:
        a class array representing this class array value
        Throws:
        java.lang.IllegalArgumentException - if the value is not a class array
      • asNestedArray

        public AnnotationInstance[] asNestedArray()
        Returns an array of nested annotations representing the underlying annotation array value. Each element has the same behavior as asNested()
        Returns:
        an annotation array representing this annotation array value
        Throws:
        java.lang.IllegalArgumentException - if the value is not an annotation array
      • toString

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

        public boolean equals​(java.lang.Object o)
        Compares this annotation value to another annotation value, and returns true if equal.
        Overrides:
        equals in class java.lang.Object
        Parameters:
        o - the annotation value to compare to.
        Returns:
        true if equal, false if not
        See Also:
        Object.equals(Object)
      • hashCode

        public int hashCode()
        Computes a hash code for this annotation value.
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hash code for this annotation value
        See Also:
        Object.hashCode()