Package com.atlassian.bamboo.plan.stage
Class StageServiceImpl
java.lang.Object
com.atlassian.bamboo.plan.stage.StageServiceImpl
- All Implemented Interfaces:
StageService
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription@NotNull ImmutableChainStage
addStage
(@NotNull PlanKey planKey, @NotNull String stageName, @Nullable String stageDescription, boolean isManual, boolean isFinal) Adds a new stage to the specified plan.void
deleteStage
(@NotNull PlanKey planKey, long stageId, @NotNull BambooClosures.Throwing1<ImmutableChainStage, WebValidationException>... runBefore) Deletes the given stage and any jobs under the stage.@NotNull ImmutableChainStage
Get an individual stage from a plan.@NotNull List<ImmutableChainStage>
getStagesForPlan
(@NotNull PlanKey planKey) Get all stages in a plan, in order@NotNull ImmutableChainStage
getStageWithConsistencyGuarantee
(@NotNull PlanKey planKey, long stageId) Get an individual stage from a plan.@NotNull ImmutableChainStage
Moves stage to a different position in the plan structure.@NotNull ImmutableChainStage
updateStage
(@NotNull PlanKey planKey, long stageId, @NotNull String name, @NotNull String description, boolean manual, boolean isFinal, @Nullable Integer index, @NotNull BambooClosures.Throwing1<ImmutableChainStage, WebValidationException>... runBefore) Update the details of a stage.@NotNull ErrorCollection
validateStageForAdd
(@NotNull PlanKey planKey, @Nullable String stageName, @Nullable String stageDescription, boolean isManual, boolean isFinal) Validates a new stage for the specified plan.@NotNull ErrorCollection
validateStageForUpdate
(@NotNull PlanKey planKey, long stageId, @Nullable String name, @Nullable String description, boolean manual, boolean isFinal) Validates editing of a stage.
-
Constructor Details
-
StageServiceImpl
public StageServiceImpl()
-
-
Method Details
-
getStagesForPlan
@NotNull public @NotNull List<ImmutableChainStage> getStagesForPlan(@NotNull @NotNull PlanKey planKey) Description copied from interface:StageService
Get all stages in a plan, in order- Specified by:
getStagesForPlan
in interfaceStageService
- Parameters:
planKey
- of plan- Returns:
- list of immutable stages
-
getStage
@NotNull public @NotNull ImmutableChainStage getStage(@NotNull @NotNull PlanKey planKey, long stageId) throws WebValidationException Description copied from interface:StageService
Get an individual stage from a plan. In clustered mode, there is NO consistency guarantee.- Specified by:
getStage
in interfaceStageService
- Parameters:
planKey
- the plan the stage belongs tostageId
- the id of the stage- Returns:
- ImmutableChainStage representing the stage if it exists
- Throws:
WebValidationException
-
getStageWithConsistencyGuarantee
@NotNull public @NotNull ImmutableChainStage getStageWithConsistencyGuarantee(@NotNull @NotNull PlanKey planKey, long stageId) throws WebValidationException Description copied from interface:StageService
Get an individual stage from a plan. There is a guarantee that the data will be up-to-date.- Specified by:
getStageWithConsistencyGuarantee
in interfaceStageService
- Parameters:
planKey
- the plan the stage belongs tostageId
- the id of the stage- Returns:
- ImmutableChainStage representing the stage if it exists
- Throws:
WebValidationException
-
validateStageForAdd
@NotNull public @NotNull ErrorCollection validateStageForAdd(@NotNull @NotNull PlanKey planKey, @Nullable @Nullable String stageName, @Nullable @Nullable String stageDescription, boolean isManual, boolean isFinal) throws WebValidationException Description copied from interface:StageService
Validates a new stage for the specified plan.- Specified by:
validateStageForAdd
in interfaceStageService
- Parameters:
planKey
- of plan to add stage tostageName
- of stagestageDescription
- of stageisManual
- true if this stage is a manual stage- Returns:
- error collection containing any validation errors against the stage data.
- Throws:
WebValidationException
- if plan does not exist or it is not of the correct type
-
addStage
@NotNull public @NotNull ImmutableChainStage addStage(@NotNull @NotNull PlanKey planKey, @NotNull @NotNull String stageName, @Nullable @Nullable String stageDescription, boolean isManual, boolean isFinal) throws WebValidationException Description copied from interface:StageService
Adds a new stage to the specified plan. Currently will be added to the end of the list // todo allow people to add a stage to a specific index?- Specified by:
addStage
in interfaceStageService
- Parameters:
planKey
- of plan to add stage tostageName
- of stagestageDescription
- of stageisManual
- true if this stage is a manual stageisFinal
- true if stage is a final stage- Returns:
- created chain stage
- Throws:
WebValidationException
- if plan does not exist or it is not of the correct type, or if validation fails
-
validateStageForUpdate
@NotNull public @NotNull ErrorCollection validateStageForUpdate(@NotNull @NotNull PlanKey planKey, long stageId, @Nullable @Nullable String name, @Nullable @Nullable String description, boolean manual, boolean isFinal) throws WebValidationException Description copied from interface:StageService
Validates editing of a stage.- Specified by:
validateStageForUpdate
in interfaceStageService
- Parameters:
planKey
- of plan stage belongs tostageId
- if of the stage being editedname
- new name of stagedescription
- new description of stagemanual
- new value for id stage is manual or notisFinal
- if stage is final or not- Returns:
- error collection containing any validation errors that may have occurred against stage data.
- Throws:
WebValidationException
-
moveStage
@NotNull public @NotNull ImmutableChainStage moveStage(@NotNull @NotNull PlanKey planKey, long stageId, int index) throws WebValidationException Description copied from interface:StageService
Moves stage to a different position in the plan structure. Will remove all broken artifact subscriptions.- Specified by:
moveStage
in interfaceStageService
- Parameters:
planKey
- key of the plan the stage belongs tostageId
- if of the stage being updatedindex
- new position of the stage in the plan structure, must be a non-negative value. If the index is too big, the stage will be moved to the end of the list.- Returns:
ImmutableChainStage
representing the updated stage- Throws:
WebValidationException
- if any errors occur
-
updateStage
@NotNull public @NotNull ImmutableChainStage updateStage(@NotNull @NotNull PlanKey planKey, long stageId, @NotNull @NotNull String name, @NotNull @NotNull String description, boolean manual, boolean isFinal, @Nullable @Nullable Integer index, @NotNull @NotNull BambooClosures.Throwing1<ImmutableChainStage, WebValidationException>... runBefore) throws WebValidationExceptionDescription copied from interface:StageService
Update the details of a stage.- Specified by:
updateStage
in interfaceStageService
- Parameters:
planKey
- key of the plan the stage belongs tostageId
- if of the stage being updatedname
- the name of the stagedescription
- the description of the stagemanual
- indicates if the stage runs automatically or needs manual interventionindex
- position of the stage in the plan structure- Returns:
ImmutableChainStage
representing the updated stage- Throws:
WebValidationException
- if invalid
-
deleteStage
public void deleteStage(@NotNull @NotNull PlanKey planKey, long stageId, @NotNull @NotNull BambooClosures.Throwing1<ImmutableChainStage, WebValidationException>... runBefore) throws WebValidationExceptionDescription copied from interface:StageService
Deletes the given stage and any jobs under the stage.- Specified by:
deleteStage
in interfaceStageService
- Parameters:
planKey
- key for the plan the stage belongs to.stageId
- id if of the stage being deleted.runBefore
- code to execute after security and validation has passed but before the deletion occurs.- Throws:
WebValidationException
-