package org.j7zip.SevenZip.Common; import org.j7zip.SevenZip.ICompressProgressInfo; public class LocalCompressProgressInfo implements ICompressProgressInfo { ICompressProgressInfo _progress; boolean _inStartValueIsAssigned; boolean _outStartValueIsAssigned; long _inStartValue; long _outStartValue; public void Init(ICompressProgressInfo progress, long inStartValue, long outStartValue) { _progress = progress; _inStartValueIsAssigned = (inStartValue != ICompressProgressInfo.INVALID); if (_inStartValueIsAssigned) _inStartValue = inStartValue; _outStartValueIsAssigned = (outStartValue != ICompressProgressInfo.INVALID); if (_outStartValueIsAssigned) _outStartValue = outStartValue; } public int SetRatioInfo(long inSize, long outSize) { long inSizeNew, outSizeNew; long inSizeNewPointer; long outSizeNewPointer; if (_inStartValueIsAssigned && inSize != ICompressProgressInfo.INVALID) { inSizeNew = _inStartValue + (inSize); // *inSize inSizeNewPointer = inSizeNew; } else inSizeNewPointer = ICompressProgressInfo.INVALID; if (_outStartValueIsAssigned && outSize != ICompressProgressInfo.INVALID) { outSizeNew = _outStartValue + (outSize); outSizeNewPointer = outSizeNew; } else outSizeNewPointer = ICompressProgressInfo.INVALID; return _progress.SetRatioInfo(inSizeNewPointer, outSizeNewPointer); } }