@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; }
if (child == null && (!workflowSchemeService.isActive(scheme) || Objects.equal(map, scheme.getMappings()) || !magicDraft)) ServiceOutcome<AssignableWorkflowScheme> parentOutcome = workflowSchemeService.updateWorkflowScheme(user, parentBuilder.setMappings(map).build()); if (!parentOutcome.isValid()) AssignableWorkflowScheme newParent = parentBuilder.build(); ServiceOutcome<Void> validateOutcome = workflowSchemeService.validateUpdateWorkflowScheme(user, newParent); if (!validateOutcome.isValid())
AssignableWorkflowScheme newParent = parentBuilder.build(); ServiceOutcome<?> outcome = workflowSchemeService.validateUpdateWorkflowScheme(user, newParent); if (!outcome.isValid())
AssignableWorkflowScheme newParent = parentBuilder.build(); ServiceOutcome<Void> validateOutcome = workflowSchemeService.validateUpdateWorkflowScheme(user, newParent); if (!validateOutcome.isValid())
ServiceOutcome<? extends RestWorkflowScheme> updateDefault(final DefaultBean bean) { final AssignableWorkflowScheme.Builder builder = scheme.builder(); setDefaultMapping(builder, bean); boolean magicDraft = asBoolean(bean.getUpdateDraftIfNeeded()); return doUpdateMappings(builder.build(), magicDraft, new Function<DraftRestWorkflowScheme, ServiceOutcome<? extends RestWorkflowScheme>>() { @Override public ServiceOutcome<? extends RestWorkflowScheme> apply(DraftRestWorkflowScheme input) { return input.updateDefault(bean); } }); }
ServiceOutcome<? extends RestWorkflowScheme> updateWorkflowMappings(final WorkflowMappingBean bean) { boolean magicDraft = asBoolean(bean.isUpdateDraftIfNeeded()); final AssignableWorkflowScheme.Builder builder = scheme.builder(); mergeWorkflowMappings(builder, bean); return doUpdateMappings(builder.build(), magicDraft, new Function<DraftRestWorkflowScheme, ServiceOutcome<? extends RestWorkflowScheme>>() { @Override public ServiceOutcome<? extends RestWorkflowScheme> apply(DraftRestWorkflowScheme input) { return input.updateWorkflowMappings(bean); } }); }
ServiceOutcome<? extends RestWorkflowScheme> updateIssueTypeMappings(final IssueTypeMappingBean bean) { boolean magicDraft = asBoolean(bean.getUpdateDraftIfNeeded()); final AssignableWorkflowScheme.Builder builder = scheme.builder(); mergeIssueTypeMapping(builder, bean); return doUpdateMappings(builder.build(), magicDraft, new Function<DraftRestWorkflowScheme, ServiceOutcome<? extends RestWorkflowScheme>>() { @Override public ServiceOutcome<? extends RestWorkflowScheme> apply(DraftRestWorkflowScheme input) { return input.updateIssueTypeMappings(bean); } }); }
ServiceOutcome<? extends RestWorkflowScheme> deleteWorkflow(final String workflowName, boolean updateDraftIfNeeded) { return doUpdateMappings(scheme.builder().removeWorkflow(workflowName).build(), updateDraftIfNeeded, new Function<DraftRestWorkflowScheme, ServiceOutcome<? extends RestWorkflowScheme>>() { @Override public ServiceOutcome<? extends RestWorkflowScheme> apply(DraftRestWorkflowScheme input) { return input.deleteWorkflow(workflowName); } }); }
ServiceOutcome<? extends RestWorkflowScheme> removeIssueType(final String issueType, boolean updateDraftIfNeeded) { final AssignableWorkflowScheme.Builder builder = scheme.builder(); builder.removeMapping(issueType); return doUpdateMappings(builder.build(), updateDraftIfNeeded, new Function<DraftRestWorkflowScheme, ServiceOutcome<? extends RestWorkflowScheme>>() { @Override public ServiceOutcome<? extends RestWorkflowScheme> apply(DraftRestWorkflowScheme input) { return input.removeIssueType(issueType); } }); }
@Override public void replaceSchemeWithDraft(DraftWorkflowScheme draft) { AssignableWorkflowScheme parentScheme = getParentForDraft(draft.getId()) .builder() .setMappings(draft.getMappings()) .build(); updateWorkflowScheme(parentScheme); deleteWorkflowScheme(draft); }
private void cleanUpSchemes(AssignableWorkflowScheme intermediateScheme) { AssignableWorkflowScheme originalScheme = workflowSchemeManager.getParentForDraft(targetScheme.getId()); if (!workflowSchemeManager.isActive(originalScheme)) { workflowSchemeManager.deleteWorkflowScheme(originalScheme); intermediateScheme = intermediateScheme.builder() .setName(originalScheme.getName()) .setDescription(originalScheme.getDescription()) .build(); workflowSchemeManager.updateWorkflowScheme(intermediateScheme); } }
ServiceOutcome<AssignableRestWorkflowScheme> create(WorkflowSchemeBean bean) { final AssignableWorkflowScheme.Builder builder = workflowSchemeService.assignableBuilder(); builder.setName(bean.getName()); builder.setDescription(bean.getDescription()); builder.setMappings(getWorkflowMap(null, bean)); ApplicationUser user = getUser(); return respone(user, workflowSchemeService.createScheme(user, builder.build())); }
@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()); }
ServiceOutcome<? extends RestWorkflowScheme> removeDefault(boolean updateDraftIfNeeded) { final AssignableWorkflowScheme newScheme = scheme.builder().removeDefault().build(); return doUpdateMappings(newScheme, updateDraftIfNeeded, new Function<DraftRestWorkflowScheme, ServiceOutcome<? extends RestWorkflowScheme>>() { @Override public ServiceOutcome<? extends RestWorkflowScheme> apply(DraftRestWorkflowScheme input) { return input.removeDefault(); } }); }