Package org.springframework.batch.core

# Interface Step

All Known Implementing Classes:
  `AbstractStep`, `DelegateStep`, `FlowStep`, `JobStep`, `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
  Description
  `static final String`
  `STEP_TYPE_KEY`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `execute(StepExecution stepExecution)`
  Process the step and assign progress and status meta information to the `StepExecution` provided.
  `String`
  `getName()`
  `int`
  `getStartLimit()`
  `boolean`
  `isAllowStartIfComplete()`

- ## Field Details

  - ### STEP_TYPE_KEY

    static final String STEP_TYPE_KEY
    See Also:
      - Constant Field Values

- ## Method Details

  - ### getName

    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