org.springframework.batch.core

## Interface Step

- All Known Implementing Classes:
    AbstractStep, BatchletStep, DecisionStep, DelegateStep, FlowStep, JobStep, PartitionStep, PartitionStep, TaskletStep

      public interface Step

  Batch domain interface representing the configuration of a step. As with the `Job`, a `Step` is meant to explicitly represent the configuration of a step by a developer, but also the ability to execute the step.
  Author:
    Dave Syer

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static java.lang.String` | `STEP_TYPE_KEY`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `execute(StepExecution stepExecution)` Process the step and assign progress and status meta information to the `StepExecution` provided.
    `java.lang.String` | `getName()`
    `int` | `getStartLimit()`
    `boolean` | `isAllowStartIfComplete()`

- - ### Field Detail

    - #### STEP_TYPE_KEY

          static final java.lang.String STEP_TYPE_KEY

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### getName

          java.lang.String getName()

      Returns:
        the name of this step.

    - #### isAllowStartIfComplete

          boolean isAllowStartIfComplete()

      Returns:
        true if a step that is already marked as complete can be started again.

    - #### getStartLimit

          int getStartLimit()

      Returns:
        the number of times a job can be started with the same identifier.

    - #### execute

          void execute(StepExecution stepExecution)
                throws JobInterruptedException

      Process the step and assign progress and status meta information to the `StepExecution` provided. The `Step` is responsible for setting the meta information and also saving it if required by the implementation.
      It is not safe to re-use an instance of `Step` to process multiple concurrent executions.
      Parameters:
        `stepExecution` - an entity representing the step to be executed
      Throws:
        `JobInterruptedException` - if the step is interrupted externally