Interface StageService

  • All Known Implementing Classes:
    StageServiceImpl

    public interface StageService
    Service for performing stage related configuration
    Since:
    TODO
    • Method Detail

      • getStagesForPlan

        @NotNull
        @NotNull List<ImmutableChainStage> getStagesForPlan​(@NotNull
                                                            @NotNull PlanKey planKey)
        Get all stages in a plan, in order
        Parameters:
        planKey - of plan
        Returns:
        list of immutable stages
        Throws:
        NotFoundException - if the plan does not exist
        org.acegisecurity.AccessDeniedException - if user has no WRITE access to the plan
      • getStage

        @NotNull
        @NotNull ImmutableChainStage getStage​(@NotNull
                                              @NotNull PlanKey planKey,
                                              long stageId)
                                       throws WebValidationException
        Get an individual stage from a plan. In clustered mode, there is NO consistency guarantee.
        Parameters:
        planKey - the plan the stage belongs to
        stageId - the id of the stage
        Returns:
        ImmutableChainStage representing the stage if it exists
        Throws:
        NotFoundException - if the plan or stage does not exist
        org.acegisecurity.AccessDeniedException - if user has no WRITE access to the plan
        WebValidationException
      • getStageWithConsistencyGuarantee

        @NotNull
        @NotNull ImmutableChainStage getStageWithConsistencyGuarantee​(@NotNull
                                                                      @NotNull PlanKey planKey,
                                                                      long stageId)
                                                               throws WebValidationException
        Get an individual stage from a plan. There is a guarantee that the data will be up-to-date.
        Parameters:
        planKey - the plan the stage belongs to
        stageId - the id of the stage
        Returns:
        ImmutableChainStage representing the stage if it exists
        Throws:
        NotFoundException - if the plan or stage does not exist
        org.acegisecurity.AccessDeniedException - if user has no WRITE access to the plan
        WebValidationException
      • addStage

        @NotNull
        @NotNull ImmutableChainStage addStage​(@NotNull
                                              @NotNull PlanKey planKey,
                                              @NotNull
                                              @NotNull String name,
                                              @Nullable
                                              @Nullable String description,
                                              boolean isManual,
                                              boolean isFinal)
                                       throws WebValidationException
        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?
        Parameters:
        planKey - of plan to add stage to
        name - of stage
        description - of stage
        isManual - true if this stage is a manual stage
        isFinal - 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
      • validateStageForAdd

        @NotNull
        @NotNull ErrorCollection validateStageForAdd​(@NotNull
                                                     @NotNull PlanKey planKey,
                                                     @Nullable
                                                     @Nullable String name,
                                                     @Nullable
                                                     @Nullable String description,
                                                     boolean isManual,
                                                     boolean isFinal)
                                              throws WebValidationException
        Validates a new stage for the specified plan.
        Parameters:
        planKey - of plan to add stage to
        name - of stage
        description - of stage
        isManual - 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
      • validateStageForUpdate

        @NotNull
        @NotNull ErrorCollection validateStageForUpdate​(@NotNull
                                                        @NotNull PlanKey planKey,
                                                        long stageId,
                                                        @Nullable
                                                        @Nullable String name,
                                                        @Nullable
                                                        @Nullable String description,
                                                        boolean manual,
                                                        boolean isFinal)
                                                 throws WebValidationException
        Validates editing of a stage.
        Parameters:
        planKey - of plan stage belongs to
        stageId - if of the stage being edited
        name - new name of stage
        description - new description of stage
        manual - new value for id stage is manual or not
        isFinal - if stage is final or not
        Returns:
        error collection containing any validation errors that may have occurred against stage data.
        Throws:
        WebValidationException
      • moveStage

        @NotNull
        @NotNull ImmutableChainStage moveStage​(@NotNull
                                               @NotNull PlanKey planKey,
                                               long stageId,
                                               int index)
                                        throws WebValidationException
        Moves stage to a different position in the plan structure. Will remove all broken artifact subscriptions.
        Parameters:
        planKey - key of the plan the stage belongs to
        stageId - if of the stage being updated
        index - 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