org.apache.bcel.classfile

## Class ElementValue

- java.lang.Object
- - org.apache.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;
      }

  Since:
    6.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static byte` | `ANNOTATION`
    `static byte` | `ARRAY`
    `static byte` | `CLASS`
    `protected ConstantPool` | `cpool` Deprecated. (since 6.0) will be made private and final; do not access directly, use getter
    `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`
    `protected int` | `type` Deprecated. (since 6.0) will be made private and final; do not access directly, use getter

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `ElementValue(int type, ConstantPool cpool)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `dump(DataOutputStream dos)`
    `int` | `getElementValueType()`
    `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()`
    `String` | `toShortString()`
    `String` | `toString()`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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

    - #### type

          @Deprecated
          protected int type

      Deprecated. (since 6.0) will be made private and final; do not access directly, use getter

    - #### cpool

          @Deprecated
          protected ConstantPool cpool

      Deprecated. (since 6.0) will be made private and final; do not access directly, use getter

  - ### Constructor Detail

    - #### ElementValue

          protected ElementValue(int type,
                                 ConstantPool cpool)

  - ### Method Detail

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

    - #### dump

          public abstract void dump(DataOutputStream dos)
                             throws IOException

      Throws:
        `IOException`

    - #### getElementValueType

          public int getElementValueType()

    - #### stringifyValue

          public abstract String stringifyValue()

    - #### toShortString

          public String toShortString()

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2004–2022 The Apache Software Foundation. All rights reserved.