Package org.apache.tomcat.util.bcel.classfile

## Class ElementValue

- java.lang.Object
- - org.apache.tomcat.util.bcel.classfile.ElementValue

- Direct Known Subclasses:
    `AnnotationElementValue`, `ArrayElementValue`, `ClassElementValue`, `EnumElementValue`, `SimpleElementValue`

      public abstract class ElementValue
      extends java.lang.Object

  The element_value structure is documented at https://docs.oracle.com/javase/specs/jvms/se11/html/jvms-4.html#jvms-4.7.16.1

       element_value {
           u1 tag;
           union {
               u2 const_value_index;

               {   u2 type_name_index;
                   u2 const_name_index;
               } enum_const_value;

               u2 class_info_index;

               annotation annotation_value;

               {   u2            num_values;
                   element_value values[num_values];
               } array_value;
           } value;
       }

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static byte` | `ANNOTATION` |
    `static byte` | `ARRAY` |
    `static byte` | `CLASS` |
    `static byte` | `ENUM_CONSTANT` |
    `static byte` | `PRIMITIVE_BOOLEAN` |
    `static byte` | `PRIMITIVE_BYTE` |
    `static byte` | `PRIMITIVE_CHAR` |
    `static byte` | `PRIMITIVE_DOUBLE` |
    `static byte` | `PRIMITIVE_FLOAT` |
    `static byte` | `PRIMITIVE_INT` |
    `static byte` | `PRIMITIVE_LONG` |
    `static byte` | `PRIMITIVE_SHORT` |
    `static byte` | `STRING` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static ElementValue` | `readElementValue​(java.io.DataInput input, ConstantPool cpool)` | Reads an `element_value` as an `ElementValue`.
    `static ElementValue` | `readElementValue​(java.io.DataInput input, ConstantPool cpool, int arrayNesting)` | Reads an `element_value` as an `ElementValue`.
    `abstract java.lang.String` | `stringifyValue()` |

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### STRING

          public static final byte STRING

      See Also:
        Constant Field Values

    - #### ENUM_CONSTANT

          public static final byte ENUM_CONSTANT

      See Also:
        Constant Field Values

    - #### CLASS

          public static final byte CLASS

      See Also:
        Constant Field Values

    - #### ANNOTATION

          public static final byte ANNOTATION

      See Also:
        Constant Field Values

    - #### ARRAY

          public static final byte ARRAY

      See Also:
        Constant Field Values

    - #### PRIMITIVE_INT

          public static final byte PRIMITIVE_INT

      See Also:
        Constant Field Values

    - #### PRIMITIVE_BYTE

          public static final byte PRIMITIVE_BYTE

      See Also:
        Constant Field Values

    - #### PRIMITIVE_CHAR

          public static final byte PRIMITIVE_CHAR

      See Also:
        Constant Field Values

    - #### PRIMITIVE_DOUBLE

          public static final byte PRIMITIVE_DOUBLE

      See Also:
        Constant Field Values

    - #### PRIMITIVE_FLOAT

          public static final byte PRIMITIVE_FLOAT

      See Also:
        Constant Field Values

    - #### PRIMITIVE_LONG

          public static final byte PRIMITIVE_LONG

      See Also:
        Constant Field Values

    - #### PRIMITIVE_SHORT

          public static final byte PRIMITIVE_SHORT

      See Also:
        Constant Field Values

    - #### PRIMITIVE_BOOLEAN

          public static final byte PRIMITIVE_BOOLEAN

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### readElementValue

          public static ElementValue readElementValue​(java.io.DataInput input,
                                                      ConstantPool cpool)
                                               throws java.io.IOException

      Reads an `element_value` as an `ElementValue`.
      Parameters:
        `input` - Raw data input.
        `cpool` - Constant pool.
      Returns:
        a new ElementValue.
      Throws:
        `java.io.IOException` - if an I/O error occurs.

    - #### readElementValue

          public static ElementValue readElementValue​(java.io.DataInput input,
                                                      ConstantPool cpool,
                                                      int arrayNesting)
                                               throws java.io.IOException

      Reads an `element_value` as an `ElementValue`.
      Parameters:
        `input` - Raw data input.
        `cpool` - Constant pool.
        `arrayNesting` - level of current array nesting.
      Returns:
        a new ElementValue.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      Since:
        6.7.0

    - #### stringifyValue

          public abstract java.lang.String stringifyValue()