Class StepContextRepeatCallback

java.lang.Object
org.springframework.batch.core.scope.context.StepContextRepeatCallback
All Implemented Interfaces:
RepeatCallback

public abstract class StepContextRepeatCallback extends Object implements RepeatCallback
Convenient base class for clients who need to do something in a repeat callback inside a Step.
Author:
Dave Syer, Mahmoud Ben Hassine
  • Constructor Details

    • StepContextRepeatCallback

      public StepContextRepeatCallback(StepExecution stepExecution)
      Parameters:
      stepExecution - instance of StepExecution to be used by StepContextRepeatCallback.
  • Method Details

    • doInIteration

      public RepeatStatus doInIteration(RepeatContext context) throws Exception
      Manage the StepContext lifecycle. Business processing should be delegated to doInChunkContext(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 interface RepeatCallback
      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:
      Exception - if there is a problem with the processing.
      See Also:
    • doInChunkContext

      public abstract RepeatStatus doInChunkContext(RepeatContext context, ChunkContext chunkContext) throws Exception
      Do the work required for this chunk of the step. The ChunkContext 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 of ChunkContext. 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 current RepeatContext
      chunkContext - the chunk context in which to carry out the work
      Returns:
      the repeat status from the execution
      Throws:
      Exception - implementations can throw an exception if anything goes wrong