Package serp.bytecode

Class ConstantValue

    • Field Detail

      • _valueIndex

        int _valueIndex
    • Constructor Detail

      • ConstantValue

        ConstantValue​(int nameIndex,
                      Attributes owner)
    • Method Detail

      • 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 java.lang.String getTypeName()
        Return the type of constant this attribute represents, or null if not set.
      • getType

        public java.lang.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 java.lang.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​(java.lang.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 java.lang.String getStringValue()
        Get the value of this string constant.
      • setStringValue

        public void setStringValue​(java.lang.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​(java.io.DataInput in,
                  int length)
           throws java.io.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:
        java.io.IOException
      • write

        void write​(java.io.DataOutput out,
                   int length)
            throws java.io.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:
        java.io.IOException