@Override
    public byte[] getInterval(int start, int end)
    {
        validateInterval(start, end);

        if (comp == CompressionType.None)
            return parentFile.getInterval(start, end);

        byte[] data = parentFile.getContents();
        if (comp == CompressionType.Lz)
            data = LZ.decompress(data);
        else if (comp == CompressionType.LzWithHeader)
            data = LZ.decompressHeadered(data);
        else
            throw new UnsupportedOperationException("Bad LZFile Type: " + comp);

        int len = end - start;
        byte[] thisdata = new byte[len];
        System.arraycopy(data, start, thisdata, 0, len);
        return thisdata;
    }