@Override public boolean renameWorkflow(String oldName, String newName) { boolean changed = false; for (DraftState state : Lists.newArrayList(getAll())) { Map<String, String> newMap = Maps.newHashMap(); boolean newMapChanged = false; for (Map.Entry<String, String> entry : state.getMappings().entrySet()) { if (oldName.equals(entry.getValue())) { newMapChanged = true; newMap.put(entry.getKey(), newName); } else { newMap.put(entry.getKey(), entry.getValue()); } } if (newMapChanged) { addState(state.builder().setMappings(newMap).build()); changed = true; } } return changed; }
@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); }
@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); }