Package org.apache.batchee.container.impl.controller

## Class SingleThreadedStepController

- java.lang.Object
- - org.apache.batchee.container.impl.controller.BaseStepController
  - - org.apache.batchee.container.impl.controller.SingleThreadedStepController

- All Implemented Interfaces:
    `Controller`, `ExecutionElementController`
  Direct Known Subclasses:
    `BatchletStepController`, `ChunkStepController`

      public abstract class SingleThreadedStepController
      extends BaseStepController
      implements Controller

  When a partitioned step is run, this controller will only be used for the partition threads, NOT the top-level main thread that the step executes upon.

  When a non-partitioned step is run this controller will be used as well (and there will be no separate main thread with controller).

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected javax.batch.api.partition.PartitionCollector` | `collectorProxy` |

    - ### Fields inherited from class org.apache.batchee.container.impl.controller.BaseStepController

      `analyzerStatusQueue, jobExecutionImpl, jobInstance, kernelService, persistenceManagerService, restartAfterCompletion, rootJobExecutionId, step, stepContext, stepName, stepStatus, transactionManager`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `SingleThreadedStepController​(RuntimeJobExecution jobExecutionImpl, Step step, StepContextImpl stepContext, long rootJobExecutionId, BlockingQueue<PartitionDataWrapper> analyzerStatusQueue, ServicesManager servicesManager)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `invokeCollectorIfPresent()` |
    `protected void` | `invokePostStepArtifacts()` |
    `protected void` | `invokePreStepArtifacts()` |
    `protected void` | `sendCollectorDataToAnalyzerIfPresent​(Serializable data)` |
    `protected void` | `sendStatusFromPartitionToAnalyzerIfPresent()` |
    `protected void` | `setupStepArtifacts()` |

    - ### Methods inherited from class org.apache.batchee.container.impl.controller.BaseStepController

      `execute, getLastRunStepExecutions, invokeCoreStep, isRestartExecution, markJobAndStepFailed, persistExitStatusAndEndTimestamp, persistUserData, resolveUserData, setParentStepContext, setStepContext, shouldStepBeExecuted, statusStarting, storeUserData, toString, updateBatchStatus`

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

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

    - ### Methods inherited from interface org.apache.batchee.container.Controller

      `getLastRunStepExecutions, stop`

- - ### Field Detail

    - #### collectorProxy

          protected javax.batch.api.partition.PartitionCollector collectorProxy

  - ### Constructor Detail

    - #### SingleThreadedStepController

          protected SingleThreadedStepController​(RuntimeJobExecution jobExecutionImpl,
                                                 Step step,
                                                 StepContextImpl stepContext,
                                                 long rootJobExecutionId,
                                                 BlockingQueue<PartitionDataWrapper> analyzerStatusQueue,
                                                 ServicesManager servicesManager)

  - ### Method Detail

    - #### setupStepArtifacts

          protected void setupStepArtifacts()

      Specified by:
        `setupStepArtifacts` in class `BaseStepController`

    - #### invokePreStepArtifacts

          protected void invokePreStepArtifacts()

      Specified by:
        `invokePreStepArtifacts` in class `BaseStepController`

    - #### invokePostStepArtifacts

          protected void invokePostStepArtifacts()

      Specified by:
        `invokePostStepArtifacts` in class `BaseStepController`

    - #### invokeCollectorIfPresent

          protected void invokeCollectorIfPresent()

    - #### sendCollectorDataToAnalyzerIfPresent

          protected void sendCollectorDataToAnalyzerIfPresent​(Serializable data)

    - #### sendStatusFromPartitionToAnalyzerIfPresent

          protected void sendStatusFromPartitionToAnalyzerIfPresent()

      Specified by:
        `sendStatusFromPartitionToAnalyzerIfPresent` in class `BaseStepController`