com.taleo.integration.client.customstep.csv
Class DifferencePostStep

java.lang.Object
  extended by com.taleo.integration.client.step.BaseStep
      extended by com.taleo.integration.client.step.BaseCustomStep
          extended by com.taleo.integration.client.customstep.BaseCustomStep
              extended by com.taleo.integration.client.customstep.csv.BaseCustomCsvStep
                  extended by com.taleo.integration.client.customstep.csv.BaseCustomCsvPostStep
                      extended by com.taleo.integration.client.customstep.csv.DifferencePostStep
All Implemented Interfaces:
com.taleo.integration.client.step.CustomStep, com.taleo.integration.client.step.Step

public class DifferencePostStep
extends BaseCustomCsvPostStep

Post-processing step to calculate the difference between a file (the target) and the current file in the pipeline (the source). Consequence is to remove matching records contained in the current pipeline file from the target. The result will become the new current file in the pipeline.

This step takes all parameters from its base class BaseCustomCsvPostStep and the following additional parameters:

Note: This operation requires sorting the file according to key fields. This is an unavoidable side effect of this step.

This class is dependent on:

Author:
Romain Guay, Taleo Corporation

Field Summary
 
Fields inherited from class com.taleo.integration.client.customstep.BaseCustomStep
parameterNames
 
Fields inherited from class com.taleo.integration.client.step.BaseCustomStep
parameters
 
Fields inherited from class com.taleo.integration.client.step.BaseStep
commType, ERROR_NULL_GLOBAL_CONFIG, ERROR_NULL_PIPELINE, ERROR_NULL_STEP_CONFIG, productCode, tempFolder, type, version
 
Constructor Summary
DifferencePostStep()
          Constructor without arguments.
 
Method Summary
protected  java.io.File difference(java.io.File sourceFile, java.io.File targetFile)
          Calculate the difference, i.e.
 void execute(com.taleo.ws.integration.client.Pipeline pipeline)
           
 java.lang.String getDescription()
           
 java.lang.String getIdentifier()
           
 java.lang.String[] getKeys()
          Get keys.
 java.lang.String getName()
           
 java.lang.String getTargetFile()
          Get the target file.
 void init(com.taleo.ws.integration.client.GlobalConfig config)
           
 void setKeys(java.lang.String[] keys)
          Set keys.
 void setTargetFile(java.lang.String targetFile)
          Set the target file.
protected  void sort(java.io.File inFile, java.io.File outFile, int[] indexes)
          Sort the inFile and write result to the outFile, removing all duplicates.
 
Methods inherited from class com.taleo.integration.client.customstep.csv.BaseCustomCsvPostStep
getSupportedPipeline
 
Methods inherited from class com.taleo.integration.client.customstep.csv.BaseCustomCsvStep
getColumnIndex, getColumnName, getCsvDelimiter, getCsvQuoteCharacter, isCsvHeaderPresent, setCsvDelimiter, setCsvHeaderPresent, setCsvQuoteCharacter
 
Methods inherited from class com.taleo.integration.client.customstep.BaseCustomStep
createTempFile, createTempFile, getEncoding, getTempFolder, isActive, registerParameterName, setActive, setEncoding, validateParameterNames
 
Methods inherited from class com.taleo.integration.client.step.BaseCustomStep
getType, init
 
Methods inherited from class com.taleo.integration.client.step.BaseStep
getAllProcessSupportPipeline, getCurrentFile, getCurrentFile, getCurrentMessage, getPostProcessSupportPipeline, getPreProcessSupportPipeline, isOriginalFile, validateLastStepType, validateMessageType, validatePipeline
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.taleo.integration.client.step.Step
validatePipeline
 

Constructor Detail

DifferencePostStep

public DifferencePostStep()
Constructor without arguments.

Method Detail

getTargetFile

public java.lang.String getTargetFile()
Get the target file.

Returns:

setTargetFile

public void setTargetFile(java.lang.String targetFile)
Set the target file.

Parameters:
targetFile -

getKeys

public java.lang.String[] getKeys()
Get keys.

Returns:

setKeys

public void setKeys(java.lang.String[] keys)
Set keys.

Parameters:
keys -

getIdentifier

public java.lang.String getIdentifier()
Specified by:
getIdentifier in interface com.taleo.integration.client.step.CustomStep
Specified by:
getIdentifier in interface com.taleo.integration.client.step.Step
Specified by:
getIdentifier in class com.taleo.integration.client.step.BaseCustomStep

getDescription

public java.lang.String getDescription()
Specified by:
getDescription in interface com.taleo.integration.client.step.CustomStep
Specified by:
getDescription in interface com.taleo.integration.client.step.Step
Specified by:
getDescription in class com.taleo.integration.client.step.BaseCustomStep

getName

public java.lang.String getName()
Specified by:
getName in interface com.taleo.integration.client.step.CustomStep
Specified by:
getName in interface com.taleo.integration.client.step.Step
Specified by:
getName in class com.taleo.integration.client.step.BaseCustomStep

init

public void init(com.taleo.ws.integration.client.GlobalConfig config)
Overrides:
init in class BaseCustomCsvStep

execute

public void execute(com.taleo.ws.integration.client.Pipeline pipeline)
             throws com.taleo.integration.client.step.StepException
Specified by:
execute in interface com.taleo.integration.client.step.Step
Overrides:
execute in class BaseCustomCsvStep
Throws:
com.taleo.integration.client.step.StepException

difference

protected java.io.File difference(java.io.File sourceFile,
                                  java.io.File targetFile)
                           throws java.io.IOException,
                                  InvalidCSVFileFormat
Calculate the difference, i.e. remove matching records contained in source file from target file.

Parameters:
sourceFile - The file containing records to be removed from target.
targetFile - The file in which matching records will be removed.
Returns:
The result file.
Throws:
java.io.IOException
InvalidCSVFileFormat

sort

protected void sort(java.io.File inFile,
                    java.io.File outFile,
                    int[] indexes)
             throws java.io.IOException,
                    InvalidCSVFileFormat
Sort the inFile and write result to the outFile, removing all duplicates.

Parameters:
inFile - The input file
outFile - The output file
indexes - The sort column indexes
Throws:
java.io.IOException
InvalidCSVFileFormat