code: @Override
  	public void process(final Task<Diff> task)
  		throws ConfigurationException, IOException, SQLConsumerException
  	{
  
  		try {
  			List<String> data = dataFileEncoder.encodeTask(task);
  
  			for (String d : data) {
  				this.writer.write(d + ";");
  				this.writer.flush();
  			}
  
  			if (task.getTaskType() == TaskTypes.TASK_FULL
  					|| task.getTaskType() == TaskTypes.TASK_PARTIAL_LAST) {
  
  				if (this.dataFile.length() > LIMIT_SQL_FILE_SIZE) {
  					writeHeader();
  				}
  
  				if (!MODE_STATISTICAL_OUTPUT) {
  					System.out.println(task.toString());
  				}
  
  			}
  			else {
  				System.out.println(task.toString());
  			}
  
  		}
  		catch (DecodingException e) {
  
  			throw ErrorFactory.createSQLConsumerException(
  					ErrorKeys.DIFFTOOL_SQLCONSUMER_FILEWRITER_EXCEPTION, e);
  
  		}
  		catch (EncodingException e) {
  
  			throw ErrorFactory.createSQLConsumerException(
  					ErrorKeys.DIFFTOOL_SQLCONSUMER_FILEWRITER_EXCEPTION, e);
  		}
  	}
docs: This method will process the given DiffTask and send it to the specified
  output.
  
  @param task
  DiffTask
  
  @throws ConfigurationException
  if problems occurred while initializing the components
  
  @throws IOException
  if problems occurred while writing the output (to file or
  archive)
  
  @throws SQLConsumerException
  if problems occurred while writing the output (to the sql
  producer database)