Package com.atlassian.bamboo.plan.job
Class JobServiceImpl
- java.lang.Object
-
- com.atlassian.bamboo.plan.job.JobServiceImpl
-
- All Implemented Interfaces:
JobService
public class JobServiceImpl extends Object implements JobService
-
-
Constructor Summary
Constructors Constructor Description JobServiceImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description @NotNull ImmutableJob
addJob(@NotNull PlanKey chainKey, long stageId, @Nullable String jobKeyString, @Nullable String name, @Nullable String description, boolean suspended)
Add a job to an existing stage in the planImmutableJob
cloneJob(@NotNull String sourceJobKeyString, @NotNull PlanKey chainKey, long stageId, @NotNull String newJobKeyString, @NotNull String name, @Nullable String description, boolean suspended)
Copy the given job and give the copy the key, name, description and suspended state provided.void
deleteJob(@NotNull PlanKey jobKey, @NotNull BambooClosures.Throwing1<ImmutableJob,WebValidationException>... runBefore)
Remove a job.@NotNull ImmutableJob
getJob(@NotNull PlanKey jobKey)
Get an individual job.@NotNull List<ImmutableJob>
getJobsForPlan(@NotNull PlanKey planKey)
Assumption is made thatAbstractImmutableChain.getAllJobs()
will return 2-level sorted list of jobs@NotNull List<ImmutableJob>
getJobsForStage(@NotNull PlanKey planKey, long stageId)
Get all jobs in a particular stage, ordered alphabetically@NotNull ImmutableJob
getJobWithConsistencyGuarantee(@NotNull PlanKey jobKey)
Get an individual job.@NotNull ImmutableJob
updateJob(@NotNull PlanKey jobKey, @NotNull String name, @Nullable String description, boolean suspended, long stageId, @NotNull BambooClosures.Throwing1<ImmutableJob,WebValidationException>... runBefore)
Update the details of a jobErrorCollection
validateJobForAdd(@NotNull PlanKey planKey, long stageId, @Nullable String jobKey, @Nullable String name, @Nullable String description, boolean suspended)
Validates the parameters for adding a job.ErrorCollection
validateJobForClone(@Nullable String sourceJobKeyString, @NotNull PlanKey chainKey, long stageId, @Nullable String newJobKey, @Nullable String name, @Nullable String description, @Nullable Boolean suspended)
Validates the parameters for cloning a job.@NotNull ErrorCollection
validateJobForUpdate(@NotNull PlanKey jobKey, @NotNull String name, @Nullable String description, boolean suspended, long stageId)
Validate editing of a job
-
-
-
Method Detail
-
getJobsForPlan
@NotNull public @NotNull List<ImmutableJob> getJobsForPlan(@NotNull @NotNull PlanKey planKey)
Assumption is made thatAbstractImmutableChain.getAllJobs()
will return 2-level sorted list of jobs- Specified by:
getJobsForPlan
in interfaceJobService
- Parameters:
planKey
- of plan- Returns:
- list of immutable jobs
-
getJobsForStage
@NotNull public @NotNull List<ImmutableJob> getJobsForStage(@NotNull @NotNull PlanKey planKey, long stageId)
Description copied from interface:JobService
Get all jobs in a particular stage, ordered alphabetically- Specified by:
getJobsForStage
in interfaceJobService
- Parameters:
planKey
- of planstageId
- id of the stage- Returns:
- list of immutable jobs
-
getJob
@NotNull public @NotNull ImmutableJob getJob(@NotNull @NotNull PlanKey jobKey)
Description copied from interface:JobService
Get an individual job. In clustered mode, there is NO consistency guarantee.- Specified by:
getJob
in interfaceJobService
- Parameters:
jobKey
- of the job to get- Returns:
- the job
-
getJobWithConsistencyGuarantee
@NotNull public @NotNull ImmutableJob getJobWithConsistencyGuarantee(@NotNull @NotNull PlanKey jobKey)
Description copied from interface:JobService
Get an individual job. There is a guarantee that the data will be up-to-date.- Specified by:
getJobWithConsistencyGuarantee
in interfaceJobService
- Parameters:
jobKey
- of the job to get- Returns:
- the job
-
validateJobForAdd
public ErrorCollection validateJobForAdd(@NotNull @NotNull PlanKey planKey, long stageId, @Nullable @Nullable String jobKey, @Nullable @Nullable String name, @Nullable @Nullable String description, boolean suspended) throws WebValidationException
Description copied from interface:JobService
Validates the parameters for adding a job.- Specified by:
validateJobForAdd
in interfaceJobService
- Parameters:
planKey
- of the plan to add job to.stageId
- of the stage to add the job to.jobKey
- key of the job to add. May be full or partial job key.name
- name of the job to add.description
- description of the job.suspended
- sets the job's suspended status.- Returns:
- error collection containing any validation errors that may have occurred against job data.
- Throws:
WebValidationException
-
addJob
@NotNull public @NotNull ImmutableJob addJob(@NotNull @NotNull PlanKey chainKey, long stageId, @Nullable @Nullable String jobKeyString, @Nullable @Nullable String name, @Nullable @Nullable String description, boolean suspended) throws WebValidationException
Description copied from interface:JobService
Add a job to an existing stage in the plan- Specified by:
addJob
in interfaceJobService
- Parameters:
chainKey
- of the plan to add the jobstageId
- of the stage to add the jobjobKeyString
- of the job to add. May be full or partial job key.name
- name of the jobdescription
- description of the jobsuspended
- sets the job suspended status- Returns:
- added job
- Throws:
WebValidationException
-
validateJobForClone
public ErrorCollection validateJobForClone(@Nullable @Nullable String sourceJobKeyString, @NotNull @NotNull PlanKey chainKey, long stageId, @Nullable @Nullable String newJobKey, @Nullable @Nullable String name, @Nullable @Nullable String description, @Nullable @Nullable Boolean suspended) throws WebValidationException
Description copied from interface:JobService
Validates the parameters for cloning a job.- Specified by:
validateJobForClone
in interfaceJobService
- Parameters:
sourceJobKeyString
- key of the job to clone. Must be full job key.chainKey
- key of the plan to add the new job to.stageId
- id of the stage to add the new job to.newJobKey
- key of the new job. May be full or partial job key.name
- name of the new job.description
- description of the new job.suspended
- suspended state of the new job.- Returns:
- error collection containing any validation errors that may have occurred against job data.
- Throws:
WebValidationException
-
cloneJob
public ImmutableJob cloneJob(@NotNull @NotNull String sourceJobKeyString, @NotNull @NotNull PlanKey chainKey, long stageId, @NotNull @NotNull String newJobKeyString, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended) throws WebValidationException
Description copied from interface:JobService
Copy the given job and give the copy the key, name, description and suspended state provided.- Specified by:
cloneJob
in interfaceJobService
- Parameters:
sourceJobKeyString
- key of the source job to copy. Must be full job key.chainKey
- of the plan to add the new job.stageId
- of the stage to add the new job.newJobKeyString
- key to give to the new job. May be full or partial job key.name
- The name of the cloned job.description
- The description of the cloned job.suspended
- The suspended state of the cloned job.- Returns:
- the result of the copy.
- Throws:
WebValidationException
-
deleteJob
public void deleteJob(@NotNull @NotNull PlanKey jobKey, @NotNull @NotNull BambooClosures.Throwing1<ImmutableJob,WebValidationException>... runBefore) throws WebValidationException
Description copied from interface:JobService
Remove a job.- Specified by:
deleteJob
in interfaceJobService
- Parameters:
jobKey
- of jobrunBefore
- code to execute after security and validation has passed but before the deletion occurs.- Throws:
WebValidationException
-
validateJobForUpdate
@NotNull public @NotNull ErrorCollection validateJobForUpdate(@NotNull @NotNull PlanKey jobKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended, long stageId)
Description copied from interface:JobService
Validate editing of a job- Specified by:
validateJobForUpdate
in interfaceJobService
- Parameters:
jobKey
- of the job to updatename
- new name of the jobdescription
- new description of the jobsuspended
- sets the job suspended status- Returns:
- error collection containing any validation errors that may have occurred against job data.
-
updateJob
@NotNull public @NotNull ImmutableJob updateJob(@NotNull @NotNull PlanKey jobKey, @NotNull @NotNull String name, @Nullable @Nullable String description, boolean suspended, long stageId, @NotNull @NotNull BambooClosures.Throwing1<ImmutableJob,WebValidationException>... runBefore) throws WebValidationException
Description copied from interface:JobService
Update the details of a job- Specified by:
updateJob
in interfaceJobService
- Parameters:
jobKey
- of the job to updatename
- new name of the jobdescription
- new description of the jobsuspended
- sets the job suspended statusstageId
- new stage for the jobrunBefore
- code to execute after security and validation has passed but before the update occurs.- Returns:
- updated job
- Throws:
WebValidationException
-
-