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 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 final byte`
  `ANNOTATION`
  `static final byte`
  `ARRAY`
  `static final byte`
  `CLASS`
  `static final byte`
  `ENUM_CONSTANT`
  `static final byte`
  `PRIMITIVE_BOOLEAN`
  `static final byte`
  `PRIMITIVE_BYTE`
  `static final byte`
  `PRIMITIVE_CHAR`
  `static final byte`
  `PRIMITIVE_DOUBLE`
  `static final byte`
  `PRIMITIVE_FLOAT`
  `static final byte`
  `PRIMITIVE_INT`
  `static final byte`
  `PRIMITIVE_LONG`
  `static final byte`
  `PRIMITIVE_SHORT`
  `static final byte`
  `STRING`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static ElementValue`
  `readElementValue(DataInput input, ConstantPool cpool)`
  Reads an `element_value` as an `ElementValue`.
  `static ElementValue`
  `readElementValue(DataInput input, ConstantPool cpool, int arrayNesting)`
  Reads an `element_value` as an `ElementValue`.
  `abstract String`
  `stringifyValue()`

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

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

- ## Field Details

  - ### 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 Details

  - ### readElementValue

    public static ElementValue readElementValue(DataInput input, ConstantPool cpool) throws IOException
    Reads an `element_value` as an `ElementValue`.
    Parameters:
      `input` - Raw data input.
      `cpool` - Constant pool.
    Returns:
      a new ElementValue.
    Throws:
      `IOException` - if an I/O error occurs.

  - ### readElementValue

    public static ElementValue readElementValue(DataInput input, ConstantPool cpool, int arrayNesting) throws 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:
      `IOException` - if an I/O error occurs.
    Since:
      6.7.0

  - ### stringifyValue

    public abstract String stringifyValue()