public boolean removeStep(final StepDescriptor stepDescriptor) { // Remove any transitions that end in this step if (!getActionsWithResult(stepDescriptor).isEmpty()) { throw new IllegalArgumentException("Cannot remove step - it is a destination step of at least one transition."); } return descriptor.getSteps().remove(stepDescriptor); }
public Set<String> getLinkedStatusIds() { final Set<String> ids = new HashSet(); for (final Object o : descriptor.getSteps()) { final StepDescriptor stepDescriptor = (StepDescriptor) o; ids.add(getLinkedStatusId(stepDescriptor)); } return ImmutableSet.copyOf(ids); }
public List getSteps() { return getNullSafeUnmodifiableList(delegate.getSteps()); }
private StepDescriptor getLinkedStep(final String statusId) { if (statusId == null) { throw new IllegalArgumentException(); } for (final Object o : descriptor.getSteps()) { final StepDescriptor stepDescriptor = (StepDescriptor) o; if (statusId.equals(stepDescriptor.getMetaAttributes().get(JiraWorkflow.STEP_STATUS_KEY))) { return stepDescriptor; } } // not found return null; }
public List<Status> getLinkedStatusObjects() { final List steps = descriptor.getSteps(); final List statuses = Lists.newArrayListWithCapacity(steps.size()); ConstantsManager constantsManager = ComponentAccessor.getConstantsManager(); for (final Object o : steps) { final StepDescriptor stepDescriptor = (StepDescriptor) o; statuses.add(constantsManager.getStatusObject(getLinkedStatusId(stepDescriptor))); } return statuses; }
private boolean isStatusLinked(GenericValue status) { for (final Object o : workflow.getDescriptor().getSteps()) { StepDescriptor stepDescriptor = (StepDescriptor) o; if (status.getString("id").equals(stepDescriptor.getMetaAttributes().get(JiraWorkflow.STEP_STATUS_KEY))) { return true; } } return false; }
public List<GenericValue> getLinkedStatuses() { final List<StepDescriptor> steps = descriptor.getSteps(); final List<GenericValue> statuses = Lists.newArrayListWithCapacity(steps.size()); ConstantsManager constantsManager = ComponentAccessor.getConstantsManager(); for (final Object o : steps) { final StepDescriptor stepDescriptor = (StepDescriptor) o; final Status status = constantsManager.getStatus(getLinkedStatusId(stepDescriptor)); if (status != null) statuses.add(((IssueConstantImpl) status).getGenericValue()); } return statuses; }
private boolean findMoreStatuses() { boolean changed = false; while (!changed && hasMoreWorkflows()) { final JiraWorkflow workflow = workflowManager.getWorkflow(pendingWorkflowNames.removeFirst()); @SuppressWarnings ("unchecked") final List<StepDescriptor> steps = workflow.getDescriptor().getSteps(); for (StepDescriptor step : steps) { final String linkedStatusId = (String)step.getMetaAttributes().get("jira.status.id"); changed |= seenStatusIds.add(linkedStatusId); } } return changed; }
actions.addAll(descriptor.getCommonActions().values()); List<StepDescriptor> steps = descriptor.getSteps(); for (StepDescriptor step: steps)
private SortedMap<Integer, ActionDescriptor> getAllActionsMap() { final SortedMap<Integer, ActionDescriptor> actions = new TreeMap<Integer, ActionDescriptor>(); // Register all initial actions addActionsToMap(actions, descriptor.getInitialActions()); // Register all global actions addActionsToMap(actions, descriptor.getGlobalActions()); // Register all common actions actions.putAll(descriptor.getCommonActions()); // Register all normal actions final List steps = descriptor.getSteps(); for (final Object step : steps) { final StepDescriptor stepDescriptor = (StepDescriptor) step; for (final Object o : stepDescriptor.getActions()) { final ActionDescriptor actionDescriptor = (ActionDescriptor) o; // If the action id is already in the list - it is likely to be a common action :) // So no need to add it as it is already in the list if (!actions.containsKey(new Integer(actionDescriptor.getId()))) { actions.put(new Integer(actionDescriptor.getId()), actionDescriptor); } } } return actions; }
@Override public Map<String,StatusMapping> getStatusHolders(File xmlFile) throws Exception { Collection<Status> jiraStatuses = constantsManager.getStatusObjects(); Map<String,StatusMapping> holders = new HashMap<String, StatusMapping>(); String xml = FileUtils.readFileToString(xmlFile); WorkflowDescriptor descriptor = WorkflowUtil.convertXMLtoWorkflowDescriptor(xml); List<StepDescriptor> steps = descriptor.getSteps(); for(StepDescriptor step : steps) { if ((step.getMetaAttributes() != null) && step.getMetaAttributes().containsKey(JiraWorkflow.STEP_STATUS_KEY)) { String statusId = (String) step.getMetaAttributes().get(JiraWorkflow.STEP_STATUS_KEY); try { Status found = Iterables.find(jiraStatuses,new StatusNamePredicate(step.getName())); holders.put(statusId,new StatusMapping(statusId,step.getName(),found.getId(),getSuggestedName(jiraStatuses,found.getName()))); } catch (NoSuchElementException e) { holders.put(statusId, new StatusMapping(statusId, step.getName(), "-1", step.getName())); } } } return holders; }
public List getTransitionSteps() { List transitions = getWorkflow().getDescriptor().getSteps(); if(getTransition().getUnconditionalResult().getStep() == JiraWorkflow.ACTION_ORIGIN_STEP_ID) { StepDescriptor dummyStep = new DescriptorFactory().createStepDescriptor(); dummyStep.setId(JiraWorkflow.ACTION_ORIGIN_STEP_ID); dummyStep.setName(getText("admin.workflowtransitions.same.destination.step")); transitions.add(dummyStep); } return transitions; }
Map<String, StepDescriptor> statusStepMap = Maps.uniqueIndex(descriptor.getSteps(), new Function<StepDescriptor, String>()
private WorkflowBean jiraWorkflowToWorkflowBean(JiraWorkflow jiraWorkflow) { String name = jiraWorkflow.getName(); String description = jiraWorkflow.getDescription(); int steps = jiraWorkflow.getDescriptor().getSteps().size(); boolean isDefault = jiraWorkflow.isDefault(); String updateDate = jiraWorkflow.getUpdatedDate() != null ? dateTimeFormatter.forLoggedInUser().format(jiraWorkflow.getUpdatedDate()) : null; ApplicationUser updateAuthor = jiraWorkflow.getUpdateAuthor(); String updateAuthorName = userManager.isUserExisting(updateAuthor)?updateAuthor.getDisplayName():null; return new WorkflowBean(name, description, updateDate, updateAuthorName, steps, isDefault); } }
final Collection stepDescriptors = originalWorkflow.getDescriptor().getSteps();