org.springframework.batch.core.partition

## Interface StepExecutionSplitter

- All Known Implementing Classes:
    JsrStepExecutionSplitter, SimpleStepExecutionSplitter

      public interface StepExecutionSplitter

  Strategy interface for generating input contexts for a partitioned step execution independent from the fabric they are going to run on.
  Since:
    2.0
  Author:
    Dave Syer

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.String` | `getStepName()` The name of the step configuration that will be executed remotely.
    `java.util.Set<StepExecution>` | `split(StepExecution stepExecution, int gridSize)` Partition the provided `StepExecution` into a set of parallel executable instances with the same parent `JobExecution`.

- - ### Method Detail

    - #### getStepName

          java.lang.String getStepName()

      The name of the step configuration that will be executed remotely. Remote workers are going to execute a the same step for each execution context in the partition.
      Returns:
        the name of the step that will execute the business logic

    - #### split

          java.util.Set<StepExecution> split(StepExecution stepExecution,
                                             int gridSize)
                                      throws JobExecutionException

      Partition the provided `StepExecution` into a set of parallel executable instances with the same parent `JobExecution`. The grid size will be treated as a hint for the size of the collection to be returned. It may or may not correspond to the physical size of an execution grid.
      On a restart clients of the `StepExecutionSplitter` should expect it to reconstitute the state of the last failed execution and only return those executions that need to be restarted. Thus the grid size hint will be ignored on a restart.
      Parameters:
        `stepExecution` - the `StepExecution` to be partitioned.
        `gridSize` - a hint for the splitter if the size of the grid is known
      Returns:
        a set of `StepExecution` instances for remote processing
      Throws:
        `JobExecutionException` - if the split cannot be made