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