Package org.pentaho.di.trans.steps.file
Class BaseFileInputStep<M extends BaseFileInputMeta<?,?,?>,D extends BaseFileInputStepData>
java.lang.Object
org.pentaho.di.trans.step.BaseStep
org.pentaho.di.trans.steps.file.BaseFileInputStep<M,D>
- All Implemented Interfaces:
org.pentaho.di.core.ExtensionDataInterface
,HasLogChannelInterface
,org.pentaho.di.core.logging.LoggingObjectInterface
,org.pentaho.di.core.logging.LoggingObjectLifecycleInterface
,org.pentaho.di.core.variables.VariableSpace
,StepInterface
,IBaseFileInputStepControl
- Direct Known Subclasses:
TextFileInput
public abstract class BaseFileInputStep<M extends BaseFileInputMeta<?,?,?>,D extends BaseFileInputStepData>
extends BaseStep
implements IBaseFileInputStepControl
This class contains base functionality for file-based input steps.
- Author:
- Alexander Buloichik
-
Field Summary
Fields inherited from class org.pentaho.di.trans.step.BaseStep
deadLockCounter, extensionDataMap, first, linesInput, linesOutput, linesRead, linesRejected, linesSkipped, linesUpdated, linesWritten, log, metaStore, repository, rowListeners, safeStopped, terminator, terminator_rows, variables
-
Constructor Summary
ConstructorDescriptionBaseFileInputStep
(StepMeta stepMeta, StepDataInterface stepDataInterface, int copyNr, TransMeta transMeta, Trans trans) -
Method Summary
Modifier and TypeMethodDescriptionboolean
checkFeedback
(long lines) Check feedback.protected void
Close last opened file/protected abstract IBaseFileInputReader
createReader
(M meta, D data, org.apache.commons.vfs2.FileObject file) Create reader for specific file.void
dispose
(StepMetaInterface smi, StepDataInterface sdi) Dispose step.boolean
failAfterBadFile
(String errorMsg) protected void
fillFileAdditionalFields
(D data, org.apache.commons.vfs2.FileObject file) Prepare file-dependent data for fill additional fields.protected boolean
protected abstract boolean
init()
Content-dependent initialization.boolean
init
(StepMetaInterface smi, StepDataInterface sdi) Initialize step before execute.protected boolean
Open next VFS file for processing.protected void
Prepare to process.boolean
processRow
(StepMetaInterface smi, StepDataInterface sdi) Process next row.Methods inherited from class org.pentaho.di.trans.step.BaseStep
addResultFile, addRowListener, addRowSetToInputRowSets, addRowSetToOutputRowSets, addStepListener, batchComplete, beforeStartProcessing, buildLog, canProcessOneRow, cleanup, clearInputRowSets, clearOutputRowSets, closeQuietly, copyVariablesFrom, decrementLinesRead, decrementLinesWritten, dispatch, environmentSubstitute, environmentSubstitute, environmentSubstitute, fieldSubstitute, findInputRowSet, findInputRowSet, findOutputRowSet, findOutputRowSet, getBooleanValueOfVariable, getClusterSize, getContainerObjectId, getCopy, getCurrentInputRowSetNr, getCurrentOutputRowSetNr, getDispatcher, getErrorRowMeta, getErrors, getExtensionDataMap, getFilename, getFirstInputRowSet, getInputRowMeta, getInputRowSets, getLinesInput, getLinesOutput, getLinesRead, getLinesRejected, getLinesSkipped, getLinesUpdated, getLinesWritten, getLogChannel, getLogChannelId, getLogFields, getLogLevel, getMetaStore, getNextClassNr, getObjectCopy, getObjectId, getObjectName, getObjectRevision, getObjectType, getOutputRowSets, getParent, getParentVariableSpace, getPartitionID, getPartitionTargets, getPreviewRowMeta, getProcessed, getRegistrationDate, getRemoteInputSteps, getRemoteOutputSteps, getRepartitioning, getRepository, getRepositoryDirectory, getResultFiles, getRow, getRowFrom, getRowHandler, getRowListeners, getRuntime, getServerSockets, getSlaveNr, getSocketRepository, getStatus, getStatusDescription, getStepDataInterface, getStepID, getStepListeners, getStepMeta, getStepMetaInterface, getStepname, getTrans, getTransMeta, getTypeId, getUniqueStepCountAcrossSlaves, getUniqueStepNrAcrossSlaves, getVariable, getVariable, handleGetRowFrom, handlePutRowTo, identifyErrorOutput, incrementLinesInput, incrementLinesOutput, incrementLinesRead, incrementLinesRejected, incrementLinesSkipped, incrementLinesUpdated, incrementLinesWritten, initBeforeStart, initializeVariablesFrom, injectVariables, isBasic, isDebug, isDetailed, isDistributed, isForcingSeparateLogging, isGatheringMetrics, isInitialising, isMapping, isPartitioned, isPaused, isRowLevel, isRunning, isSafeStopped, isStopped, isUsingThreadPriorityManagment, listVariables, logBasic, logBasic, logDebug, logDebug, logDetailed, logDetailed, logError, logError, logError, logMinimal, logMinimal, logRowlevel, logRowlevel, logSummary, markStart, markStop, openRemoteInputStepSocketsOnce, openRemoteOutputStepSocketsOnce, outputIsDone, pauseRunning, putError, putRow, putRowTo, removeRowListener, resumeRunning, rowsetInputSize, rowsetOutputSize, safeModeChecking, safeModeChecking, setCarteObjectId, setCopy, setCurrentInputRowSetNr, setCurrentOutputRowSetNr, setDistributed, setErrorRowMeta, setErrors, setForcingSeparateLogging, setGatheringMetrics, setInputRowMeta, setInputRowSets, setInternalVariables, setLinesInput, setLinesOutput, setLinesRead, setLinesRejected, setLinesSkipped, setLinesUpdated, setLinesWritten, setLogLevel, setMetaStore, setOutputDone, setOutputRowSets, setParentVariableSpace, setPartitioned, setPartitionID, setPartitionTargets, setPaused, setPaused, setPreviewRowMeta, setRepartitioning, setRepository, setRowHandler, setRunning, setSafeStopped, setServerSockets, setSocketRepository, setStepDataInterface, setStepListeners, setStepMeta, setStepMetaInterface, setStepname, setStopped, setTransMeta, setUsingThreadPriorityManagment, setVariable, shareVariablesWith, stopAll, stopRunning, stopRunning, swapFirstInputRowSetIfExists, toString, verifyInputDeadLock, waitUntilTransformationIsStarted
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.pentaho.di.trans.steps.file.IBaseFileInputStepControl
getErrors, getLinesInput, getLinesWritten, incrementLinesInput, incrementLinesUpdated, putRow, setErrors, stopAll
Methods inherited from interface org.pentaho.di.core.logging.LoggingObjectLifecycleInterface
callAfterLog, callBeforeLog
Methods inherited from interface org.pentaho.di.trans.step.StepInterface
afterFinishProcessing, subStatuses
-
Field Details
-
meta
-
data
-
-
Constructor Details
-
BaseFileInputStep
public BaseFileInputStep(StepMeta stepMeta, StepDataInterface stepDataInterface, int copyNr, TransMeta transMeta, Trans trans)
-
-
Method Details
-
init
protected abstract boolean init()Content-dependent initialization. -
createReader
protected abstract IBaseFileInputReader createReader(M meta, D data, org.apache.commons.vfs2.FileObject file) throws Exception Create reader for specific file.- Throws:
Exception
-
init
Initialize step before execute.- Specified by:
init
in interfaceStepInterface
- Overrides:
init
in classBaseStep
- Parameters:
smi
- The metadata to work withsdi
- The data to initialize
-
openNextFile
protected boolean openNextFile()Open next VFS file for processing. This method will support different parallelization methods later. -
handleOpenFileException
-
processRow
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws org.pentaho.di.core.exception.KettleException Process next row. This methods opens next file automatically.- Specified by:
processRow
in interfaceStepInterface
- Overrides:
processRow
in classBaseStep
- Parameters:
smi
- The steps metadata to work withsdi
- The steps temporary working data to work with (database connections, result sets, caches, temporary variables, etc.)- Returns:
- false if no more rows can be processed or an error occurred.
- Throws:
org.pentaho.di.core.exception.KettleException
-
prepareToRowProcessing
protected void prepareToRowProcessing() throws org.pentaho.di.core.exception.KettleExceptionPrepare to process. Executed only first time row processing. It can't be possible to prepare to process in the init() phrase, because files can be in fields from previous step.- Throws:
org.pentaho.di.core.exception.KettleException
-
checkFeedback
public boolean checkFeedback(long lines) Description copied from class:BaseStep
Check feedback.- Specified by:
checkFeedback
in interfaceIBaseFileInputStepControl
- Overrides:
checkFeedback
in classBaseStep
- Parameters:
lines
- the lines- Returns:
- true, if successful
-
closeLastFile
protected void closeLastFile()Close last opened file/ -
dispose
Dispose step.- Specified by:
dispose
in interfaceStepInterface
- Overrides:
dispose
in classBaseStep
- Parameters:
smi
- The metadata to work withsdi
- The data to dispose of
-
failAfterBadFile
- Specified by:
failAfterBadFile
in interfaceIBaseFileInputStepControl
- Parameters:
errorMsg
- Message to send to rejected row if enabled- Returns:
- If should stop processing after having problems with a file
-
fillFileAdditionalFields
protected void fillFileAdditionalFields(D data, org.apache.commons.vfs2.FileObject file) throws org.apache.commons.vfs2.FileSystemException Prepare file-dependent data for fill additional fields.- Throws:
org.apache.commons.vfs2.FileSystemException
-