Class LocalVariableAttribute

java.lang.Object
javassist.bytecode.AttributeInfo
javassist.bytecode.LocalVariableAttribute
Direct Known Subclasses:
LocalVariableTypeAttribute

public class LocalVariableAttribute extends AttributeInfo
LocalVariableTable_attribute.
  • Field Details

  • Constructor Details

    • LocalVariableAttribute

      public LocalVariableAttribute(ConstPool cp)
      Constructs an empty LocalVariableTable.
    • LocalVariableAttribute

      @Deprecated public LocalVariableAttribute(ConstPool cp, String name)
      Deprecated.
      Constructs an empty LocalVariableTable.
      Parameters:
      name - the attribute name. LocalVariableAttribute.tag or LocalVariableAttribute.typeTag.
      Since:
      3.1
      See Also:
  • Method Details

    • addEntry

      public void addEntry(int startPc, int length, int nameIndex, int descriptorIndex, int index)
      Appends a new entry to local_variable_table.
      Parameters:
      startPc - start_pc
      length - length
      nameIndex - name_index
      descriptorIndex - descriptor_index
      index - index
    • shiftIndex

      public void shiftIndex(int lessThan, int delta)
      For each local_variable_table[i].index, this method increases index by delta.
      Parameters:
      lessThan - the index does not change if it is less than this value.
    • tableLength

      public int tableLength()
      Returns local_variable_table_length. This represents the number of entries in the table.
    • startPc

      public int startPc(int i)
      Returns local_variable_table[i].start_pc. This represents the index into the code array from which the local variable is effective.
      Parameters:
      i - the i-th entry.
    • codeLength

      public int codeLength(int i)
      Returns local_variable_table[i].length. This represents the length of the code region in which the local variable is effective.
      Parameters:
      i - the i-th entry.
    • nameIndex

      public int nameIndex(int i)
      Returns the value of local_variable_table[i].name_index. This represents the name of the local variable.
      Parameters:
      i - the i-th entry.
    • variableName

      public String variableName(int i)
      Returns the name of the local variable specified by local_variable_table[i].name_index.
      Parameters:
      i - the i-th entry.
    • descriptorIndex

      public int descriptorIndex(int i)
      Returns the value of local_variable_table[i].descriptor_index. This represents the type descriptor of the local variable.

      If this attribute represents a LocalVariableTypeTable attribute, this method returns the value of local_variable_type_table[i].signature_index. It represents the type of the local variable.

      Parameters:
      i - the i-th entry.
    • signatureIndex

      public int signatureIndex(int i)
      This method is equivalent to descriptorIndex(). If this attribute represents a LocalVariableTypeTable attribute, this method should be used instead of descriptorIndex() since the method name is more appropriate.
      Parameters:
      i - the i-th entry.
      See Also:
    • descriptor

      public String descriptor(int i)
      Returns the type descriptor of the local variable specified by local_variable_table[i].descriptor_index.

      If this attribute represents a LocalVariableTypeTable attribute, this method returns the type signature of the local variable specified by local_variable_type_table[i].signature_index.

      Parameters:
      i - the i-th entry.
    • signature

      public String signature(int i)
      This method is equivalent to descriptor(). If this attribute represents a LocalVariableTypeTable attribute, this method should be used instead of descriptor() since the method name is more appropriate.

      To parse the string, call toFieldSignature(String) in SignatureAttribute.

      Parameters:
      i - the i-th entry.
      See Also:
    • index

      public int index(int i)
      Returns local_variable_table[i].index. This represents the index of the local variable.
      Parameters:
      i - the i-th entry.
    • copy

      public AttributeInfo copy(ConstPool newCp, Map<String,String> classnames)
      Makes a copy.
      Overrides:
      copy in class AttributeInfo
      Parameters:
      newCp - the constant pool table used by the new copy.
      classnames - should be null.