@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; }
@Override public boolean deleteByParentId(long parentId) { boolean changed = false; for (Iterator<DraftState> iterator = workflowState.values().iterator(); iterator.hasNext(); ) { DraftState next = iterator.next(); if (next.getParentSchemeId() == parentId) { iterator.remove(); changed = true; } } return changed; }
@Override public Iterable<DraftState> getSchemesUsingWorkflow(JiraWorkflow jiraWorkflow) { List<DraftState> states = new ArrayList<DraftState>(); for (Map.Entry<Long, DraftState> entry : workflowState.entrySet()) { DraftState state = entry.getValue(); if (state.getMappings().containsValue(jiraWorkflow.getName())) { states.add(state); } } return states; }
@Override public Long getParentId(long id) { DraftState state = get(id); return state != null ? state.getParentSchemeId() : null; }
@Override public boolean delete(DraftState state) { return delete(state.getId()); }
@Override public DraftState getDraftForParent(long parentId) { for (DraftState state : getAll()) { if (parentId == state.getParentSchemeId()) { return state; } } return null; }
private DraftWorkflowScheme toWorkflowScheme(DraftWorkflowSchemeStore.DraftState state) { if (state == null) { return null; } else { final ApplicationUser userByKey = userManager.getUserByKey(state.getLastModifiedUser()); return new DraftWorkflowSchemeImpl(state, userByKey, getWorkflowSchemeObj(state.getParentSchemeId())); } }
@Override public void update(DraftState state, GenericValue schemeGv) { Long parentId = schemeGv.getLong(SchemeTable.Columns.PARENT); if (parentId == null || !parentId.equals(state.getParentSchemeId())) { throw new DataAccessException("Trying to change the parent of a draft."); } schemeGv.set(SchemeTable.Columns.UPDATED_DATE, currentDate()); schemeGv.set(SchemeTable.Columns.UPDATED_USER, state.getLastModifiedUser()); delegator.store(schemeGv); }
DefaultWorkflowSchemeStateBuilder(DraftState state) { super(state); this.parentId = state.getParentSchemeId(); this.lastModifiedDate = state.getLastModifiedDate(); this.lastModifiedUser = state.getLastModifiedUser(); }
@Override public GenericValue create(DraftState state) { FieldMap fieldMap = FieldMap.build(SchemeTable.Columns.PARENT, state.getParentSchemeId()); fieldMap.add(SchemeTable.Columns.UPDATED_DATE, currentDate()); fieldMap.add(SchemeTable.Columns.UPDATED_USER, state.getLastModifiedUser()); return delegator.createValue(SchemeTable.ENTITY, fieldMap); }
public DraftState addState(DraftState state) { state = new MockDraftWorkflowSchemeState.Builder(state) .setLastModifiedDate(nextDate()).build(); workflowState.put(state.getId(), state); return state; }
DraftWorkflowSchemeImpl(DraftWorkflowSchemeStore.DraftState state, ApplicationUser lastModifiedUser, AssignableWorkflowScheme parent) { super(state.getId(), state.getMappings()); this.lastModifiedUser = lastModifiedUser; this.lastModifiedDate = state.getLastModifiedDate(); this.parent = parent; }
public Builder(DraftWorkflowSchemeStore.DraftState state) { this.id = state.getId(); this.parentId = state.getParentSchemeId(); this.schemeMap = newHashMap(state.getMappings()); this.lastModifiedDate = state.getLastModifiedDate(); this.lastModifiedUser = state.getLastModifiedUser(); }
MockDraftWorkflowSchemeState(DraftWorkflowSchemeStore.DraftState scheme) { this.id = scheme.getId(); this.mappings = Maps.newHashMap(scheme.getMappings()); this.lastModifiedUser = scheme.getLastModifiedUser(); this.lastModifiedDate = scheme.getLastModifiedDate(); this.parentSchemeId = scheme.getParentSchemeId(); }