Package 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 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
  Description
  `SimpleJobExplorer(JobInstanceDao jobInstanceDao, JobExecutionDao jobExecutionDao, StepExecutionDao stepExecutionDao, ExecutionContextDao ecDao)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `List<JobInstance>`
  `findJobInstancesByJobName(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.
  `Set<JobExecution>`
  `findRunningJobExecutions(String jobName)`
  Retrieve running job executions.
  `JobExecution`
  `getJobExecution(Long executionId)`
  Retrieve a `JobExecution` by its id.
  `List<JobExecution>`
  `getJobExecutions(JobInstance jobInstance)`
  Retrieve job executions by their job instance.
  `JobInstance`
  `getJobInstance(Long instanceId)`
  `int`
  `getJobInstanceCount(String jobName)`
  Query the repository for the number of unique `JobInstance`s associated with the supplied job name.
  `List<JobInstance>`
  `getJobInstances(String jobName, int start, int count)`
  Fetch `JobInstance` values in descending order of creation (and therefore usually of first execution).
  `List<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(String jobName)`
  Find the last job instance by Id for the given job.
  `StepExecution`
  `getStepExecution(Long jobExecutionId, 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 Details

  - ### SimpleJobExplorer

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

- ## Method Details

  - ### getJobExecutions

    public 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 Set<JobExecution> findRunningJobExecutions(@Nullable 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 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 Long jobExecutionId, @Nullable 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 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(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 List<JobInstance> getJobInstances(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 List<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 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 List<JobInstance> findJobInstancesByJobName(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.