public boolean isTransitionWithoutStepChange(ActionDescriptor transition) { return transition.getUnconditionalResult().getStep() == JiraWorkflow.ACTION_ORIGIN_STEP_ID; }
protected void deleteWorkflowDescriptor() throws WorkflowException { getTransition().getUnconditionalResult().getPostFunctions().remove(count - 1); } }
@Override public Integer apply(final ActionDescriptor input) { final ResultDescriptor result = input.getUnconditionalResult(); return result != null && result.getPostFunctions() != null ? result.getPostFunctions().size() : 0 ; } });
public boolean isTransitionWithoutStepChange() { return getTransition().getUnconditionalResult().getStep() == JiraWorkflow.ACTION_ORIGIN_STEP_ID; }
protected List getDescriptorCollection() { return getTransition().getUnconditionalResult().getPostFunctions(); }
private Set<String> getFunctionClassnames(ActionDescriptor action) { List<FunctionDescriptor> functions = action.getUnconditionalResult().getPostFunctions(); functions.addAll(action.getPostFunctions()); Set<String> classNames = new HashSet<String>(); for (FunctionDescriptor function : functions) { Set<Map.Entry<String,String>> args = (Set<Map.Entry<String,String>>) function.getArgs().entrySet(); classNames.addAll(getClassnamesFromArgs(args)); } return classNames; }
private Set<String> getValidatorClassnames(ActionDescriptor action) { List<ValidatorDescriptor> validators = action.getUnconditionalResult().getValidators(); validators.addAll(action.getValidators()); Set<String> classNames = new HashSet<String>(); for (ValidatorDescriptor validator : validators) { Set<Map.Entry<String,String>> args = (Set<Map.Entry<String,String>>) validator.getArgs().entrySet(); classNames.addAll(getClassnamesFromArgs(args)); } return classNames; }
public Collection<FunctionDescriptor> getPostFunctionsForTransition(final ActionDescriptor actionDescriptor) { final Collection<FunctionDescriptor> allPostFunctions = Lists.newArrayList(); if ((actionDescriptor.getUnconditionalResult() != null) && (actionDescriptor.getUnconditionalResult().getPostFunctions() != null)) { allPostFunctions.addAll(actionDescriptor.getUnconditionalResult().getPostFunctions()); } final List conditionalResults = actionDescriptor.getConditionalResults(); if (conditionalResults != null) { for (final Object conditionalResult : conditionalResults) { final ResultDescriptor resultDescriptor = (ResultDescriptor) conditionalResult; allPostFunctions.addAll(resultDescriptor.getPostFunctions()); } } if (actionDescriptor.getPostFunctions() != null) { allPostFunctions.addAll(actionDescriptor.getPostFunctions()); } return allPostFunctions; }
private Map<String,Set<String>> removeValidatorsWithClassnames(ActionDescriptor action, Set<String> classesToRemove) { Map<String,Set<String>> result = new HashMap<String,Set<String>>(); List<ValidatorDescriptor> validators = action.getUnconditionalResult().getValidators(); validators.addAll(action.getValidators()); Iterator<ValidatorDescriptor> it = validators.iterator(); while(it.hasNext()) { ValidatorDescriptor validator = it.next(); Set<Map.Entry<String,String>> args = (Set<Map.Entry<String,String>>) validator.getArgs().entrySet(); Set<String> usedClassnames = getClassnamesFromArgs(args); if(!Sets.intersection(classesToRemove,usedClassnames).isEmpty()) { String extensionClass = StringUtils.defaultIfEmpty((String)validator.getArgs().get("class.name"),validator.toString());//NON-NLS result.put(extensionClass,classesToRemove); it.remove(); } } return result; }
protected void checkDescriptor() { if (getTransition().getUnconditionalResult() == null) { addErrorMessage(getText("admin.errors.workflows.cannot.delete.function")); } }
private StepDescriptor getInitialStepDescriptor(JiraWorkflow workflow) { List initialActions = workflow.getDescriptor().getInitialActions(); ActionDescriptor initialAction = (ActionDescriptor) initialActions.get(0); int initialStep = initialAction.getUnconditionalResult().getStep(); return workflow.getDescriptor().getStep(initialStep); }
private static StepDescriptor getInitialStepDescriptor(JiraWorkflow workflow) { List initialActions = workflow.getDescriptor().getInitialActions(); ActionDescriptor initialAction = (ActionDescriptor) initialActions.get(0); int initialStep = initialAction.getUnconditionalResult().getStep(); return workflow.getDescriptor().getStep(initialStep); }
public String doDefault() throws Exception { setTransitionName(action.getName()); setDescription((String) action.getMetaAttributes().get(JiraWorkflow.WORKFLOW_DESCRIPTION_ATTRIBUTE)); setDestinationStep(action.getUnconditionalResult().getStep()); FieldScreen fieldScreen = workflowActionsBean.getFieldScreenForView(action); setView(fieldScreen != null ? fieldScreen.getId().toString() : ""); return super.doDefault(); }
public TransitionBean build() { final Status destinationStatus = getStatusFromStep(issue, action.getUnconditionalResult().getStep()); TransitionMetaFieldBeanBuilder fieldBuilder = new TransitionMetaFieldBeanBuilder(fieldScreenRendererFactory, fieldLayoutManager, action, issue, authContext.getUser(), versionBeanFactory, velocityRequestContextFactory, contextUriInfo, baseUrls); return new TransitionBean(String.valueOf(action.getId()), WorkflowUtil.getWorkflowTransitionDisplayName(action), fieldBuilder, StatusJsonBean.bean(destinationStatus, baseUrls)); }
@RequiresXsrfCheck public String doMoveWorkflowFunctionDown() throws Exception { final List postFunctions = getTransition().getUnconditionalResult().getPostFunctions(); if (down < 0 || down >= (postFunctions.size() - 1)) { addErrorMessage(getText("admin.errors.workflows.invalid.index", "" + down)); } else { Object toMove = postFunctions.get(down); CollectionReorderer.decreasePosition(postFunctions, toMove); workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); } return getViewRedirect("¤tCount=workflow-function" + (down + 2)); }
protected boolean isModulePresent(Class implementationClass) { // Check if the module is present in either the unconiditional result post functions or in global post-functions // (as they are always executed). return isModulePresent(getTransition().getUnconditionalResult().getPostFunctions(), implementationClass) || isModulePresent(getTransition().getPostFunctions(), implementationClass); }
@RequiresXsrfCheck public String doMoveWorkflowFunctionUp() throws Exception { final List postFunctions = getTransition().getUnconditionalResult().getPostFunctions(); if (up <= 0 || up >= postFunctions.size()) { addErrorMessage(getText("admin.errors.workflows.invalid.index", "" + up)); } else { Object toMove = postFunctions.get(up); CollectionReorderer.increasePosition(postFunctions, toMove); workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); } return getViewRedirect("¤tCount=workflow-function" + (up)); }
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; }
public Status getDestinationStatus(final WorkflowTransitionKey workflowTransitionKey) { final ActionDescriptor actionDescriptor = getBulkWorkflowTransitionOperation().getActionDescriptor(workflowTransitionKey); final JiraWorkflow workflow = workflowManager.getWorkflow(workflowTransitionKey.getWorkflowName()); final int newStepId = actionDescriptor.getUnconditionalResult().getStep(); if (newStepId == JiraWorkflow.ACTION_ORIGIN_STEP_ID) { return getOriginStatus(workflowTransitionKey); } else { final StepDescriptor step = workflow.getDescriptor().getStep(newStepId); return workflow.getLinkedStatus(step); } }
@RequiresXsrfCheck protected String doExecute() throws Exception { // setup the transition action action.setName(getTransitionName()); action.getMetaAttributes().put(JiraWorkflow.WORKFLOW_DESCRIPTION_ATTRIBUTE, getDescription()); setActionScreen(action, stringSet(getView()) ? getFieldScreen() : null); // setup the destination step result ResultDescriptor result = action.getUnconditionalResult(); result.setStep(getDestinationStep()); workflowService.updateWorkflow(getJiraServiceContext(), getWorkflow()); return getRedirect(getCancelUrl()); }