@Override public DraftWorkflowScheme getDraft(long id) { DraftWorkflowSchemeStore.DraftState draftScheme = draftWorkflowSchemeStore.get(id); return toWorkflowScheme(draftScheme); }
private DraftWorkflowScheme getDraftForParent(long parentId) { DraftWorkflowSchemeStore.DraftState draftScheme = draftWorkflowSchemeStore.getDraftForParent(parentId); return toWorkflowScheme(draftScheme); }
public AssignableWorkflowScheme getParentForDraft(long draftSchemeId) { long parentId = draftWorkflowSchemeStore.getParentId(draftSchemeId); return getWorkflowSchemeObj(parentId); }
@Override @Nonnull public DraftWorkflowScheme createDraftOf(ApplicationUser creator, @Nonnull AssignableWorkflowScheme workflowScheme) { notNull("workflowScheme", workflowScheme); Assertions.not("workflowScheme.default", workflowScheme.isDefault()); notNull("workflowScheme.id", workflowScheme.getId()); Assertions.not("scheme already has draft.", hasDraft(workflowScheme)); final DraftWorkflowSchemeStore.DraftState.Builder builder = draftWorkflowSchemeStore.builder(workflowScheme.getId()); builder.setMappings(workflowScheme.getMappings()); builder.setLastModifiedUser(creator != null ? creator.getKey() : null); final DraftWorkflowSchemeStore.DraftState state = draftWorkflowSchemeStore.create(builder.build()); return toWorkflowScheme(state); }
public void updateSchemesForRenamedWorkflow(final String oldWorkflowName, final String newWorkflowName) { if (StringUtils.isBlank(oldWorkflowName)) { throw new IllegalArgumentException("oldWorkflowName must not be null or empty string"); } if (StringUtils.isBlank(newWorkflowName)) { throw new IllegalArgumentException("newWorkflowName must not be null or empty string"); } //TODO: Will have to fix this for workflow schemes. ofBizDelegator.bulkUpdateByAnd(getEntityName(), ImmutableMap.of(COLUMN_WORKFLOW, newWorkflowName), ImmutableMap.of(COLUMN_WORKFLOW, oldWorkflowName)); draftWorkflowSchemeStore.renameWorkflow(oldWorkflowName, newWorkflowName); clearWorkflowCache(); }
@Override public Iterable<WorkflowScheme> getSchemesForWorkflowIncludingDrafts(JiraWorkflow workflow) { if (workflow.isSystemWorkflow()) { throw new IllegalArgumentException("Can't get schemes for system workflow"); } Collection<GenericValue> schemes = getSchemesForWorkflow(workflow); Iterable<DraftWorkflowSchemeStore.DraftState> draftSchemeStates = draftWorkflowSchemeStore.getSchemesUsingWorkflow(workflow); Collection<WorkflowScheme> allSchemes = Lists.newArrayListWithCapacity(schemes.size() + Iterables.size(draftSchemeStates)); for (GenericValue schemeGenericValue : schemes) { allSchemes.add(toWorkflowScheme(schemeGenericValue)); } for (DraftWorkflowSchemeStore.DraftState draftState : draftSchemeStates) { allSchemes.add(toWorkflowScheme(draftState)); } return allSchemes; }
@Override public boolean hasDraft(@Nonnull AssignableWorkflowScheme scheme) { notNull("scheme", scheme); return !scheme.isDefault() && scheme.getId() != null && draftWorkflowSchemeStore.hasDraftForParent(scheme.getId()); }
void doDeleteScheme(AssignableWorkflowScheme scheme) { checkMigration(scheme); try { super.deleteScheme(scheme.getId()); } catch (GenericEntityException e) { throw new DataAccessException(e); } draftWorkflowSchemeStore.deleteByParentId(scheme.getId()); eventPublisher.publish(new WorkflowSchemeDeletedEvent(scheme.getId(), scheme.getName())); }
@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); }