/*
  * (non-Javadoc)
  *
  * @see
  * org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer
  * #handleReceivedData(byte[], int, double,
  * org.eclipse.core.runtime.IProgressMonitor)
  */
 protected void handleReceivedData(byte[] buf, int bytes, double factor, IProgressMonitor monitor)
     throws IOException {
   if (bytes == -1) {
     done = true;
   } else {
     int fileBytes = bytes;
     if ((bytesReceived + bytes) > fileLength) {
       fileBytes = (int) (fileLength - bytesReceived);
     }
     bytesReceived += fileBytes;
     localFileContents.write(buf, 0, fileBytes);
     fireTransferReceiveDataEvent();
     monitor.worked((int) Math.round(factor * fileBytes));
     if (fileBytes != bytes) {
       scpUtil.checkAck(buf[fileBytes], remoteFileContents);
       done = true;
     }
   }
 }