All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.packenius.datadivider.javaclass.attr.LocalVariable Maven / Gradle / Ivy

package com.packenius.datadivider.javaclass.attr;

import com.packenius.datadivider.javaclass.ConstantPoolEntryCrossPointer;
import com.packenius.dumpapi.DumpBlock;
import com.packenius.dumpapi.DumpReader;
import com.packenius.dumpapi.DumpReader.BigEndianUnsigned2ByteInteger;

/**
 * @author Christian Packenius, 2016.
 */
public class LocalVariable extends DumpBlock {
    /**
     * Index innerhalb der entsprechenden Tabelle.
     */
    public final int id;

    public final int startPC;

    public final int length;

    public final int nameIndex;

    public final int descriptorIndex;

    public final int index;

    /**
     * Konstruktor.
     */
    public LocalVariable(DumpReader reader, int id) {
        super(reader);

        this.id = id;

        startPC = reader.readBigEndianU2("Start PC: ##DEC##").value;
        length = reader.readBigEndianU2("Length: ##DEC##").value;

        BigEndianUnsigned2ByteInteger nameDumpBlock = reader.readBigEndianU2("Name index: ###DEC##");
        nameDumpBlock.setCrossPointer(new ConstantPoolEntryCrossPointer(nameDumpBlock.value));
        nameIndex = nameDumpBlock.value;

        BigEndianUnsigned2ByteInteger descDumpBlock = reader.readBigEndianU2("Descriptor index: ###DEC##");
        descDumpBlock.setCrossPointer(new ConstantPoolEntryCrossPointer(descDumpBlock.value));
        descriptorIndex = descDumpBlock.value;

        index = reader.readBigEndianU2("Local variable index: ###DEC##").value;

        setEndAddress(reader);
    }

    @Override
    public String toString() {
        return "Local Variable";
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy