org.springframework.batch.core.explore.support

## Class SimpleJobExplorer

- java.lang.Object
- - org.springframework.batch.core.explore.support.SimpleJobExplorer

- All Implemented Interfaces:
    JobExplorer

      public class SimpleJobExplorer
      extends java.lang.Object
      implements JobExplorer

  Implementation of `JobExplorer` using the injected DAOs.
  Since:
    2.0
  Author:
    Dave Syer, Lucas Ward, Michael Minella, Will Schipp, Mahmoud Ben Hassine
  See Also:
    `JobExplorer`, `JobInstanceDao`, `JobExecutionDao`, `StepExecutionDao`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimpleJobExplorer(JobInstanceDao jobInstanceDao, JobExecutionDao jobExecutionDao, StepExecutionDao stepExecutionDao, ExecutionContextDao ecDao)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<JobInstance>` | `findJobInstancesByJobName(java.lang.String jobName, int start, int count)` Fetch `JobInstance` values in descending order of creation (and there for usually of first execution) with a 'like'/wildcard criteria.
    `java.util.Set<JobExecution>` | `findRunningJobExecutions(java.lang.String jobName)` Retrieve running job executions.
    `JobExecution` | `getJobExecution(java.lang.Long executionId)` Retrieve a `JobExecution` by its id.
    `java.util.List<JobExecution>` | `getJobExecutions(JobInstance jobInstance)` Retrieve job executions by their job instance.
    `JobInstance` | `getJobInstance(java.lang.Long instanceId)`
    `int` | `getJobInstanceCount(java.lang.String jobName)` Query the repository for the number of unique `JobInstance`s associated with the supplied job name.
    `java.util.List<JobInstance>` | `getJobInstances(java.lang.String jobName, int start, int count)` Fetch `JobInstance` values in descending order of creation (and therefore usually of first execution).
    `java.util.List<java.lang.String>` | `getJobNames()` Query the repository for all unique `JobInstance` names (sorted alphabetically).
    `JobExecution` | `getLastJobExecution(JobInstance jobInstance)` Find the last `JobExecution` that has been created for a given `JobInstance`.
    `JobInstance` | `getLastJobInstance(java.lang.String jobName)` Find the last job instance by Id for the given job.
    `StepExecution` | `getStepExecution(java.lang.Long jobExecutionId, java.lang.Long executionId)` Retrieve a `StepExecution` by its id and parent `JobExecution` id.

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

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

- - ### Constructor Detail

    - #### SimpleJobExplorer

          public SimpleJobExplorer(JobInstanceDao jobInstanceDao,
                                   JobExecutionDao jobExecutionDao,
                                   StepExecutionDao stepExecutionDao,
                                   ExecutionContextDao ecDao)

  - ### Method Detail

    - #### getJobExecutions

          public java.util.List<JobExecution> getJobExecutions(JobInstance jobInstance)

      Description copied from interface: `JobExplorer`
      Retrieve job executions by their job instance. The corresponding step executions may not be fully hydrated (e.g. their execution context may be missing), depending on the implementation. Use `JobExplorer.getStepExecution(Long, Long)` to hydrate them in that case.
      Specified by:
        `getJobExecutions` in interface `JobExplorer`
      Parameters:
        `jobInstance` - the `JobInstance` to query
      Returns:
        the set of all executions for the specified `JobInstance`

    - #### getLastJobExecution

          @Nullable
          public JobExecution getLastJobExecution(JobInstance jobInstance)

      Description copied from interface: `JobExplorer`
      Find the last `JobExecution` that has been created for a given `JobInstance`.
      Specified by:
        `getLastJobExecution` in interface `JobExplorer`
      Parameters:
        `jobInstance` - the `JobInstance`
      Returns:
        the last `JobExecution` that has been created for this instance or `null` if no job execution is found for the given job instance.

    - #### findRunningJobExecutions

          public java.util.Set<JobExecution> findRunningJobExecutions(@Nullable
                                                                      java.lang.String jobName)

      Description copied from interface: `JobExplorer`
      Retrieve running job executions. The corresponding step executions may not be fully hydrated (e.g. their execution context may be missing), depending on the implementation. Use `JobExplorer.getStepExecution(Long, Long)` to hydrate them in that case.
      Specified by:
        `findRunningJobExecutions` in interface `JobExplorer`
      Parameters:
        `jobName` - the name of the job
      Returns:
        the set of running executions for jobs with the specified name

    - #### getJobExecution

          @Nullable
          public JobExecution getJobExecution(@Nullable
                                                        java.lang.Long executionId)

      Description copied from interface: `JobExplorer`
      Retrieve a `JobExecution` by its id. The complete object graph for this execution should be returned (unless otherwise indicated) including the parent `JobInstance` and associated `ExecutionContext` and `StepExecution` instances (also including their execution contexts).
      Specified by:
        `getJobExecution` in interface `JobExplorer`
      Parameters:
        `executionId` - the job execution id
      Returns:
        the `JobExecution` with this id, or null if not found

    - #### getStepExecution

          @Nullable
          public StepExecution getStepExecution(@Nullable
                                                          java.lang.Long jobExecutionId,
                                                          @Nullable
                                                          java.lang.Long executionId)

      Description copied from interface: `JobExplorer`
      Retrieve a `StepExecution` by its id and parent `JobExecution` id. The execution context for the step should be available in the result, and the parent job execution should have its primitive properties, but may not contain the job instance information.
      Specified by:
        `getStepExecution` in interface `JobExplorer`
      Parameters:
        `jobExecutionId` - the parent job execution id
        `executionId` - the step execution id
      Returns:
        the `StepExecution` with this id, or null if not found
      See Also:
        `JobExplorer.getJobExecution(Long)`

    - #### getJobInstance

          @Nullable
          public JobInstance getJobInstance(@Nullable
                                                      java.lang.Long instanceId)

      Specified by:
        `getJobInstance` in interface `JobExplorer`
      Parameters:
        `instanceId` - `Long` id for the jobInstance to obtain.
      Returns:
        the `JobInstance` with this id, or null

    - #### getLastJobInstance

          @Nullable
          public JobInstance getLastJobInstance(java.lang.String jobName)

      Description copied from interface: `JobExplorer`
      Find the last job instance by Id for the given job.
      Specified by:
        `getLastJobInstance` in interface `JobExplorer`
      Parameters:
        `jobName` - name of the job
      Returns:
        the last job instance by Id if any or null otherwise

    - #### getJobInstances

          public java.util.List<JobInstance> getJobInstances(java.lang.String jobName,
                                                             int start,
                                                             int count)

      Description copied from interface: `JobExplorer`
      Fetch `JobInstance` values in descending order of creation (and therefore usually of first execution).
      Specified by:
        `getJobInstances` in interface `JobExplorer`
      Parameters:
        `jobName` - the name of the job to query
        `start` - the start index of the instances to return
        `count` - the maximum number of instances to return
      Returns:
        the `JobInstance` values up to a maximum of count values

    - #### getJobNames

          public java.util.List<java.lang.String> getJobNames()

      Description copied from interface: `JobExplorer`
      Query the repository for all unique `JobInstance` names (sorted alphabetically).
      Specified by:
        `getJobNames` in interface `JobExplorer`
      Returns:
        the set of job names that have been executed

    - #### getJobInstanceCount

          public int getJobInstanceCount(@Nullable
                                         java.lang.String jobName)
                                  throws NoSuchJobException

      Description copied from interface: `JobExplorer`
      Query the repository for the number of unique `JobInstance`s associated with the supplied job name.
      Specified by:
        `getJobInstanceCount` in interface `JobExplorer`
      Parameters:
        `jobName` - the name of the job to query for
      Returns:
        the number of `JobInstance`s that exist within the associated job repository
      Throws:
        `NoSuchJobException` - thrown when there is no `JobInstance` for the jobName specified.

    - #### findJobInstancesByJobName

          public java.util.List<JobInstance> findJobInstancesByJobName(java.lang.String jobName,
                                                                       int start,
                                                                       int count)

      Description copied from interface: `JobExplorer`
      Fetch `JobInstance` values in descending order of creation (and there for usually of first execution) with a 'like'/wildcard criteria.
      Specified by:
        `findJobInstancesByJobName` in interface `JobExplorer`
      Parameters:
        `jobName` - the name of the job to query for.
        `start` - the start index of the instances to return.
        `count` - the maximum number of instances to return.
      Returns:
        a list of `JobInstance` for the job name requested.