class AppleVariableSignedIntegerBox extends AppleDataBox {
    long value;
    int intLength = 1;

    protected AppleVariableSignedIntegerBox(String type) {
        super(type, 15);
    }

    public int getIntLength() {
        return intLength;
    }

    public void setIntLength(int intLength) {
        this.intLength = intLength;
    }

    public long getValue() {
        //patched by Tobias Bley / UltraMixer (04/25/2014)
        if (!isParsed()) {
            parseDetails();
        }
        return value;
    }

    public void setValue(long value) {<FILL_FUNCTION_BODY>}

    @Override
    protected byte[] writeData() {
        int dLength = getDataLength();
        ByteBuffer b = ByteBuffer.wrap(new byte[dLength]);
        IsoTypeWriterVariable.write(value, b, dLength);
        return b.array();
    }

    @Override
    protected void parseData(ByteBuffer data) {
        int intLength = data.remaining();
        value = IsoTypeReaderVariable.read(data, intLength);
        this.intLength = intLength;
    }

    @Override
    protected int getDataLength() {
        return intLength;
    }
}


        if (value <= 127 && value > -128) {
            intLength = 1;
        } else if (value <= 32767 && value > -32768 && intLength < 2) {
            intLength = 2;
        } else if (value <= 8388607 && value > -8388608 && intLength < 3) {
            intLength = 3;
        } else {
            intLength = 4;
        }

        this.value = value;
    
<methods>public int getDataCountry() ,public int getDataLanguage() ,public int getDataType() ,public java.lang.String getLanguageString() ,public void setDataCountry(int) ,public void setDataLanguage(int) <variables>int dataCountry,int dataLanguage,int dataType,private static HashMap<java.lang.String,java.lang.String> language