Package serp.bytecode

Class ConstantValue

All Implemented Interfaces:
BCEntity, VisitAcceptor

public class ConstantValue extends Attribute
A constant value for a member field.
  • Field Details

    • _valueIndex

      int _valueIndex
  • Constructor Details

    • ConstantValue

      ConstantValue(int nameIndex, Attributes owner)
  • Method Details

    • getLength

      int getLength()
      Description copied from class: Attribute
      Return the length of the bytecode representation of this attribute in bytes, excluding the name index.
      Overrides:
      getLength in class Attribute
    • getField

      public BCField getField()
      Return the owning field.
    • getValueIndex

      public int getValueIndex()
      Return the ConstantPool index of the ConstantEntry holding the value of this constant. Defaults to 0.
    • setValueIndex

      public void setValueIndex(int valueIndex)
      Set the ConstantPool of the ConstantEntry holding the value of this constant.
    • getTypeName

      public String getTypeName()
      Return the type of constant this attribute represents, or null if not set.
    • getType

      public Class getType()
      Return the type of constant this attribute represents (String.class, int.class, etc), or null if not set.
    • getTypeBC

      public BCClass getTypeBC()
      Return the bytecode for the type of constant this attribute represents.
    • getValue

      public Object getValue()
      Return the value of this constant as an Object of the appropriate type (String, Integer, Double, etc), or null if not set.
    • setValue

      public void setValue(Object value)
      Set the value of this constant using the appropriate wrapper Object type (String, Integer, Double, etc). Types that are not directly supported will be converted accordingly if possible.
    • getIntValue

      public int getIntValue()
      Get the value of this int constant, or 0 if not set.
    • setIntValue

      public void setIntValue(int value)
      Set the value of this int constant.
    • getFloatValue

      public float getFloatValue()
      Get the value of this float constant.
    • setFloatValue

      public void setFloatValue(float value)
      Set the value of this float constant.
    • getDoubleValue

      public double getDoubleValue()
      Get the value of this double constant.
    • setDoubleValue

      public void setDoubleValue(double value)
      Set the value of this double constant.
    • getLongValue

      public long getLongValue()
      Get the value of this long constant.
    • setLongValue

      public void setLongValue(long value)
      Set the value of this long constant.
    • getStringValue

      public String getStringValue()
      Get the value of this string constant.
    • setStringValue

      public void setStringValue(String value)
      Set the value of this string constant.
    • acceptVisit

      public void acceptVisit(BCVisitor visit)
      Description copied from interface: VisitAcceptor
      Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
    • read

      void read(Attribute other)
      Description copied from class: Attribute
      Copy the information from the given attribute to this one. Does nothing by default.
      Overrides:
      read in class Attribute
    • read

      void read(DataInput in, int length) throws IOException
      Description copied from class: Attribute
      Read the attribute bytecode from the given stream, up to length bytes, excluding the name index. Does nothing by default.
      Overrides:
      read in class Attribute
      Throws:
      IOException
    • write

      void write(DataOutput out, int length) throws IOException
      Description copied from class: Attribute
      Write the attribute bytecode to the given stream, up to length bytes, excluding the name index. Does nothing by default.
      Overrides:
      write in class Attribute
      Throws:
      IOException