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
`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
`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()