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