Class AbstractExtractStep
java.lang.Object
com.kingsrook.qqq.backend.core.processes.implementations.etl.streamedwithfrontend.AbstractExtractStep
- All Implemented Interfaces:
BackendStep
- Direct Known Subclasses:
BulkInsertExtractStep
,ExtractViaQueryStep
Base class for the Extract logic of Streamed ETL processes.
These steps are invoked by both the "preview" and the "execute" steps of a
StreamedETLWithFrontend process.
Key here, is that subclasses here should put records that they're "Extracting"
into the recordPipe member. That is to say, DO NOT use the recordList in
the Step input/output objects.
Ideally, they'll also stop once they've hit the "limit" number of records
(though if you keep going, the pipe will get terminated and the job will be
cancelled, etc...).
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateRecordPipe
(RunBackendStepInput runBackendStepInput, Integer overrideCapacity) Create the record pipe to be used for this process step.doCount
(RunBackendStepInput runBackendStepInput) getLimit()
Getter for limitvoid
preRun
(RunBackendStepInput runBackendStepInput, RunBackendStepOutput runBackendStepOutput) Allow subclasses to do an action before the run begins.void
Setter for limitvoid
setRecordPipe
(RecordPipe recordPipe) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.kingsrook.qqq.backend.core.actions.processes.BackendStep
run
-
Constructor Details
-
AbstractExtractStep
public AbstractExtractStep()
-
-
Method Details
-
preRun
public void preRun(RunBackendStepInput runBackendStepInput, RunBackendStepOutput runBackendStepOutput) throws QException Allow subclasses to do an action before the run begins.- Throws:
QException
-
doCount
- Throws:
QException
-
setRecordPipe
-
getRecordPipe
-
getLimit
Getter for limit -
setLimit
Setter for limit -
createRecordPipe
public RecordPipe createRecordPipe(RunBackendStepInput runBackendStepInput, Integer overrideCapacity) Create the record pipe to be used for this process step. Here in case a subclass needs a different type of pipe - for example, a DistinctFilteringRecordPipe.
-