org.springframework.batch.core

## Class StepExecution

- java.lang.Object
- - org.springframework.batch.core.Entity
  - - org.springframework.batch.core.StepExecution

- All Implemented Interfaces:
    java.io.Serializable

      public class StepExecution
      extends Entity

  Batch domain object representation the execution of a step. Unlike `JobExecution`, there are additional properties related the processing of items such as commit count, etc.
  Author:
    Lucas Ward, Dave Syer
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `StepExecution(java.lang.String stepName, JobExecution jobExecution)` Constructor that substitutes in null for the execution id
    `StepExecution(java.lang.String stepName, JobExecution jobExecution, java.lang.Long id)` Constructor with mandatory properties.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addFailureException(java.lang.Throwable throwable)`
    `void` | `apply(StepContribution contribution)` On successful execution just before a chunk commit, this method should be called.
    `StepContribution` | `createStepContribution()` Factory method for `StepContribution`.
    `boolean` | `equals(java.lang.Object obj)` Attempt to establish identity based on id if both exist.
    `int` | `getCommitCount()` Returns the current number of commits for this execution
    `java.util.Date` | `getEndTime()` Returns the time that this execution ended
    `ExecutionContext` | `getExecutionContext()` Returns the `ExecutionContext` for this execution
    `ExitStatus` | `getExitStatus()`
    `java.util.List<java.lang.Throwable>` | `getFailureExceptions()`
    `int` | `getFilterCount()` Returns the current number of items filtered out of this execution
    `JobExecution` | `getJobExecution()` Accessor for the execution context information of the enclosing job.
    `java.lang.Long` | `getJobExecutionId()` Accessor for the job execution id.
    `JobParameters` | `getJobParameters()` Convenience method to get the current job parameters.
    `java.util.Date` | `getLastUpdated()`
    `int` | `getProcessSkipCount()`
    `int` | `getReadCount()` Returns the current number of items read for this execution
    `int` | `getReadSkipCount()`
    `int` | `getRollbackCount()` Returns the current number of rollbacks for this execution
    `int` | `getSkipCount()`
    `java.util.Date` | `getStartTime()` Gets the time this execution started
    `BatchStatus` | `getStatus()` Returns the current status of this step
    `java.lang.String` | `getStepName()`
    `java.lang.String` | `getSummary()`
    `int` | `getWriteCount()` Returns the current number of items written for this execution
    `int` | `getWriteSkipCount()`
    `int` | `hashCode()` Use ID if it exists to establish hash code, otherwise fall back to Object.hashCode().
    `void` | `incrementCommitCount()` Increment the number of commits
    `void` | `incrementRollbackCount()` On unsuccessful execution after a chunk has rolled back.
    `boolean` | `isTerminateOnly()`
    `void` | `setCommitCount(int commitCount)` Sets the current number of commits for this execution
    `void` | `setEndTime(java.util.Date endTime)` Sets the time that this execution ended
    `void` | `setExecutionContext(ExecutionContext executionContext)` Sets the `ExecutionContext` for this execution
    `void` | `setExitStatus(ExitStatus exitStatus)`
    `void` | `setFilterCount(int filterCount)` Public setter for the number of items filtered out of this execution.
    `void` | `setLastUpdated(java.util.Date lastUpdated)` Set the time when the StepExecution was last updated before persisting
    `void` | `setProcessSkipCount(int processSkipCount)` Set the number of records skipped during processing.
    `void` | `setReadCount(int readCount)` Sets the current number of read items for this execution
    `void` | `setReadSkipCount(int readSkipCount)` Set the number of records skipped on read
    `void` | `setRollbackCount(int rollbackCount)` Setter for number of rollbacks for this execution
    `void` | `setStartTime(java.util.Date startTime)` Sets the time this execution started
    `void` | `setStatus(BatchStatus status)` Sets the current status of this step
    `void` | `setTerminateOnly()` Set a flag that will signal to an execution environment that this execution (and its surrounding job) wishes to exit.
    `void` | `setWriteCount(int writeCount)` Sets the current number of written items for this execution
    `void` | `setWriteSkipCount(int writeSkipCount)` Set the number of records skipped on write
    `java.lang.String` | `toString()`
    `void` | `upgradeStatus(BatchStatus status)` Upgrade the status field if the provided value is greater than the existing one.

    - ### Methods inherited from class org.springframework.batch.core.Entity

      `getId, getVersion, incrementVersion, setId, setVersion`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### StepExecution

          public StepExecution(java.lang.String stepName,
                               JobExecution jobExecution,
                               java.lang.Long id)

      Constructor with mandatory properties.
      Parameters:
        `stepName` - the step to which this execution belongs
        `jobExecution` - the current job execution
        `id` - the id of this execution

    - #### StepExecution

          public StepExecution(java.lang.String stepName,
                               JobExecution jobExecution)

      Constructor that substitutes in null for the execution id
      Parameters:
        `stepName` - the step to which this execution belongs
        `jobExecution` - the current job execution

  - ### Method Detail

    - #### getExecutionContext

          public ExecutionContext getExecutionContext()

      Returns the `ExecutionContext` for this execution
      Returns:
        the attributes

    - #### setExecutionContext

          public void setExecutionContext(ExecutionContext executionContext)

      Sets the `ExecutionContext` for this execution
      Parameters:
        `executionContext` - the attributes

    - #### getCommitCount

          public int getCommitCount()

      Returns the current number of commits for this execution
      Returns:
        the current number of commits

    - #### setCommitCount

          public void setCommitCount(int commitCount)

      Sets the current number of commits for this execution
      Parameters:
        `commitCount` - the current number of commits

    - #### getEndTime

          public java.util.Date getEndTime()

      Returns the time that this execution ended
      Returns:
        the time that this execution ended

    - #### setEndTime

          public void setEndTime(java.util.Date endTime)

      Sets the time that this execution ended
      Parameters:
        `endTime` - the time that this execution ended

    - #### getReadCount

          public int getReadCount()

      Returns the current number of items read for this execution
      Returns:
        the current number of items read for this execution

    - #### setReadCount

          public void setReadCount(int readCount)

      Sets the current number of read items for this execution
      Parameters:
        `readCount` - the current number of read items for this execution

    - #### getWriteCount

          public int getWriteCount()

      Returns the current number of items written for this execution
      Returns:
        the current number of items written for this execution

    - #### setWriteCount

          public void setWriteCount(int writeCount)

      Sets the current number of written items for this execution
      Parameters:
        `writeCount` - the current number of written items for this execution

    - #### getRollbackCount

          public int getRollbackCount()

      Returns the current number of rollbacks for this execution
      Returns:
        the current number of rollbacks for this execution

    - #### getFilterCount

          public int getFilterCount()

      Returns the current number of items filtered out of this execution
      Returns:
        the current number of items filtered out of this execution

    - #### setFilterCount

          public void setFilterCount(int filterCount)

      Public setter for the number of items filtered out of this execution.
      Parameters:
        `filterCount` - the number of items filtered out of this execution to set

    - #### setRollbackCount

          public void setRollbackCount(int rollbackCount)

      Setter for number of rollbacks for this execution

    - #### getStartTime

          public java.util.Date getStartTime()

      Gets the time this execution started
      Returns:
        the time this execution started

    - #### setStartTime

          public void setStartTime(java.util.Date startTime)

      Sets the time this execution started
      Parameters:
        `startTime` - the time this execution started

    - #### getStatus

          public BatchStatus getStatus()

      Returns the current status of this step
      Returns:
        the current status of this step

    - #### setStatus

          public void setStatus(BatchStatus status)

      Sets the current status of this step
      Parameters:
        `status` - the current status of this step

    - #### upgradeStatus

          public void upgradeStatus(BatchStatus status)

      Upgrade the status field if the provided value is greater than the existing one. Clients using this method to set the status can be sure that they don't overwrite a failed status with an successful one.
      Parameters:
        `status` - the new status value

    - #### getStepName

          public java.lang.String getStepName()

      Returns:
        the name of the step

    - #### getJobExecutionId

          public java.lang.Long getJobExecutionId()

      Accessor for the job execution id.
      Returns:
        the jobExecutionId

    - #### setExitStatus

          public void setExitStatus(ExitStatus exitStatus)

      Parameters:
        `exitStatus` -

    - #### getExitStatus

          public ExitStatus getExitStatus()

      Returns:
        the exitCode

    - #### getJobExecution

          public JobExecution getJobExecution()

      Accessor for the execution context information of the enclosing job.
      Returns:
        the `JobExecution` that was used to start this step execution.

    - #### createStepContribution

          public StepContribution createStepContribution()

      Factory method for `StepContribution`.
      Returns:
        a new `StepContribution`

    - #### apply

          public void apply(StepContribution contribution)

      On successful execution just before a chunk commit, this method should be called. Synchronizes access to the `StepExecution` so that changes are atomic.
      Parameters:
        `contribution` -

    - #### incrementRollbackCount

          public void incrementRollbackCount()

      On unsuccessful execution after a chunk has rolled back.

    - #### isTerminateOnly

          public boolean isTerminateOnly()

      Returns:
        flag to indicate that an execution should halt

    - #### setTerminateOnly

          public void setTerminateOnly()

      Set a flag that will signal to an execution environment that this execution (and its surrounding job) wishes to exit.

    - #### getSkipCount

          public int getSkipCount()

      Returns:
        the total number of items skipped.

    - #### incrementCommitCount

          public void incrementCommitCount()

      Increment the number of commits

    - #### getJobParameters

          public JobParameters getJobParameters()

      Convenience method to get the current job parameters.
      Returns:
        the `JobParameters` from the enclosing job, or empty if that is null

    - #### getReadSkipCount

          public int getReadSkipCount()

      Returns:
        the number of records skipped on read

    - #### getWriteSkipCount

          public int getWriteSkipCount()

      Returns:
        the number of records skipped on write

    - #### setReadSkipCount

          public void setReadSkipCount(int readSkipCount)

      Set the number of records skipped on read
      Parameters:
        `readSkipCount` -

    - #### setWriteSkipCount

          public void setWriteSkipCount(int writeSkipCount)

      Set the number of records skipped on write
      Parameters:
        `writeSkipCount` -

    - #### getProcessSkipCount

          public int getProcessSkipCount()

      Returns:
        the number of records skipped during processing

    - #### setProcessSkipCount

          public void setProcessSkipCount(int processSkipCount)

      Set the number of records skipped during processing.
      Parameters:
        `processSkipCount` -

    - #### getLastUpdated

          public java.util.Date getLastUpdated()

      Returns:
        the Date representing the last time this execution was persisted.

    - #### setLastUpdated

          public void setLastUpdated(java.util.Date lastUpdated)

      Set the time when the StepExecution was last updated before persisting
      Parameters:
        `lastUpdated` -

    - #### getFailureExceptions

          public java.util.List<java.lang.Throwable> getFailureExceptions()

    - #### addFailureException

          public void addFailureException(java.lang.Throwable throwable)

    - #### equals

          public boolean equals(java.lang.Object obj)

      Description copied from class: `Entity`
      Attempt to establish identity based on id if both exist. If either id does not exist use Object.equals().
      Overrides:
        `equals` in class `Entity`
      See Also:
        `Object.equals(java.lang.Object)`

    - #### hashCode

          public int hashCode()

      Description copied from class: `Entity`
      Use ID if it exists to establish hash code, otherwise fall back to Object.hashCode(). Based on the same information as equals, so if that changes, this will. N.B. this follows the contract of Object.hashCode(), but will cause problems for anyone adding an unsaved `Entity` to a Set because Set.contains() will almost certainly return false for the `Entity` after it is saved. Spring Batch does not store any of its entities in Sets as a matter of course, so internally this is consistent. Clients should not be exposed to unsaved entities.
      Overrides:
        `hashCode` in class `Entity`
      See Also:
        `Object.hashCode()`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `Entity`

    - #### getSummary

          public java.lang.String getSummary()