Class LocalVariableAttribute

    • Constructor Detail

      • 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:
        tag, typeTag
    • Method Detail

      • 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.
      • variableNameByIndex

        public String variableNameByIndex​(int index)
        Returns the name of the local variable with given index. If you want to get the parameter name of method with correct order, you should using this method.
        Parameters:
        index - the index of the local variable.
      • 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:
        descriptorIndex(int), SignatureAttribute.toFieldSignature(String)
      • 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:
        descriptor(int), SignatureAttribute.toFieldSignature(String)
      • 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.