Class StepContextRepeatCallback
- java.lang.Object
- org.springframework.batch.core.scope.context.StepContextRepeatCallback
- All Implemented Interfaces:
RepeatCallback
public abstract class StepContextRepeatCallback extends java.lang.Object implements RepeatCallback
Convenient base class for clients who need to do something in a repeat callback inside aStep
.- Author:
- Dave Syer, Mahmoud Ben Hassine
Constructor Summary
Constructors Constructor Description StepContextRepeatCallback(StepExecution stepExecution)
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract RepeatStatus
doInChunkContext(RepeatContext context, ChunkContext chunkContext)
Do the work required for this chunk of the step.RepeatStatus
doInIteration(RepeatContext context)
Manage theStepContext
lifecycle.
Constructor Detail
StepContextRepeatCallback
public StepContextRepeatCallback(StepExecution stepExecution)
- Parameters:
stepExecution
- instance ofStepExecution
to be used by StepContextRepeatCallback.
Method Detail
doInIteration
public RepeatStatus doInIteration(RepeatContext context) throws java.lang.Exception
Manage theStepContext
lifecycle. Business processing should be delegated todoInChunkContext(RepeatContext, ChunkContext)
. This is to ensure that the current thread has a reference to the context, even if the callback is executed in a pooled thread. Handles the registration and unregistration of the step context, so clients should not duplicate those calls.- Specified by:
doInIteration
in interfaceRepeatCallback
- Parameters:
context
- the current context passed in by the caller.- Returns:
- an
RepeatStatus
which is continuable if there is (or may be) more data to process. - Throws:
java.lang.Exception
- if there is a problem with the processing.- See Also:
RepeatCallback.doInIteration(RepeatContext)
doInChunkContext
public abstract RepeatStatus doInChunkContext(RepeatContext context, ChunkContext chunkContext) throws java.lang.Exception
Do the work required for this chunk of the step. TheChunkContext
provided is managed by the base class, so that if there is still work to do for the task in hand state can be stored here. In a multi-threaded client, the base class ensures that only one thread at a time can be working on each instance ofChunkContext
. Workers should signal that they are finished with a context by removing all the attributes they have added. If a worker does not remove them another thread might see stale state.- Parameters:
context
- the currentRepeatContext
chunkContext
- the chunk context in which to carry out the work- Returns:
- the repeat status from the execution
- Throws:
java.lang.Exception
- implementations can throw an exception if anything goes wrong