private ServiceOutcome<DraftRestWorkflowScheme> doUpdateMappings(DraftWorkflowScheme build) { if (build.getMappings().equals(child.getMappings())) { return ServiceOutcomeImpl.ok(this); } final ServiceOutcome<DraftWorkflowScheme> outcome = workflowSchemeService.updateWorkflowScheme(user, build); if (!outcome.isValid()) { return ServiceOutcomeImpl.error(outcome); } else { child = outcome.getReturnedValue(); return ServiceOutcomeImpl.ok(this); } } }
@Override public AssignableWorkflowScheme copyDraft(DraftWorkflowScheme draft, ApplicationUser user, String newDescription) { AssignableWorkflowScheme.Builder copyOfDraftBuilder = new AssignableWorkflowSchemeBuilder() .setName(getNameForCopy(draft)) .setDescription(newDescription) .setMappings(draft.getMappings()); return createScheme(copyOfDraftBuilder.build()); }
@Override public void replaceSchemeWithDraft(DraftWorkflowScheme draft) { AssignableWorkflowScheme parentScheme = getParentForDraft(draft.getId()) .builder() .setMappings(draft.getMappings()) .build(); updateWorkflowScheme(parentScheme); deleteWorkflowScheme(draft); }
@Nonnull @Override public DraftWorkflowScheme createDraft(ApplicationUser creator, @Nonnull DraftWorkflowScheme workflowScheme) { notNull("workflowScheme", workflowScheme); AssignableWorkflowScheme parentScheme = workflowScheme.getParentScheme(); notNull("workflowScheme.parentScheme", parentScheme); notNull("workflowScheme.parentScheme.id", parentScheme.getId()); Assertions.not("scheme already has draft.", hasDraft(parentScheme)); final DraftWorkflowSchemeStore.DraftState.Builder builder = draftWorkflowSchemeStore.builder(parentScheme.getId()); builder.setMappings(workflowScheme.getMappings()); builder.setLastModifiedUser(creator != null ? creator.getKey() : null); final DraftWorkflowSchemeStore.DraftState state = draftWorkflowSchemeStore.create(builder.build()); return toWorkflowScheme(state); }
public DraftState addStateForScheme(DraftWorkflowScheme scheme) { return addState(new MockDraftWorkflowSchemeState.Builder(scheme.getParentScheme().getId()) .setId(scheme.getId()) .setMappings(scheme.getMappings()) .setLastModifiedDate(scheme.getLastModifiedDate()).build()); }
@Override public AssignableWorkflowScheme cleanUpSchemeDraft(Project project, ApplicationUser user) { AssignableWorkflowScheme workflowScheme = getWorkflowSchemeObj(project); if (workflowScheme.isDefault()) { return null; } List<Project> projectsUsing = getProjectsUsing(workflowScheme); if (projectsUsing.size() > 1) { return null; } DraftWorkflowScheme draft = getDraftForParent(workflowScheme); if (draft == null) { return null; } AssignableWorkflowScheme.Builder copyOfDraftBuilder = new AssignableWorkflowSchemeBuilder() .setName(getNameForCopy(draft)) .setDescription(getDescriptionForCopy(user, workflowScheme)) .setMappings(draft.getMappings()); AssignableWorkflowScheme scheme = createScheme(copyOfDraftBuilder.build()); deleteWorkflowScheme(draft); return scheme; }