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 Collection<ActionDescriptor> getAllActions() { return getAllActionsMap().values(); }
public Status getLinkedStatusObject(final StepDescriptor stepDescriptor) { return getLinkedStatus(stepDescriptor); }
public Collection getStepsForTransition(final ActionDescriptor actionDescriptor) if (isInitialAction(actionDescriptor)) if (isGlobalAction(actionDescriptor)) return getDescriptor().getSteps(); if (isCommonAction(actionDescriptor))
@Override public String getDisplayName() { return getName(); }
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); }
@Override public Collection<ActionDescriptor> getActionsByName(final String name) { return filter(newHashSet(getAllActions()), new Predicate<ActionDescriptor>() { @Override public boolean apply(ActionDescriptor action) { return action.getName().compareToIgnoreCase(name) == 0; } }); }
public StepDescriptor getLinkedStep(final GenericValue status) { if (status == null) { throw new IllegalArgumentException(); } return getLinkedStep(status.getString("id")); }
public boolean isGlobalAction(final ActionDescriptor actionDescriptor) { return getDescriptor().getGlobalActions().contains(actionDescriptor); }
public String getUpdateAuthorName() { ApplicationUser user = getUpdateAuthor(); if(ComponentAccessor.getUserManager().isUserExisting(user)){ return user.getUsername(); } return null; }
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; }
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 Multimap<FieldScreen, ActionDescriptor> loadFieldScreenActions() { final WorkflowActionsBean workflowActionsBean = new WorkflowActionsBean(); Multimap<FieldScreen, ActionDescriptor> map = HashMultimap.create(); for (final ActionDescriptor actionDescriptor : getAllActions()) { map.put(workflowActionsBean.getFieldScreenForView(actionDescriptor), actionDescriptor); } return map; }
public StepDescriptor getLinkedStep(final Status status) { if (status == null) { throw new IllegalArgumentException(); } return getLinkedStep(status.getId()); }
public boolean isInitialAction(final ActionDescriptor actionDescriptor) { return getDescriptor().getInitialActions().contains(actionDescriptor); }
public Status getLinkedStatus(final StepDescriptor stepDescriptor) { return ComponentAccessor.getConstantsManager().getStatusObject(getLinkedStatusId(stepDescriptor)); }
public Collection getStepsWithAction(final StepDescriptor stepDescriptor) { // If global Action final Collection actions = getAllActions(); actionloop : for (final Iterator iterator = actions.iterator(); iterator.hasNext();) { final ActionDescriptor actionDescriptor = (ActionDescriptor) iterator.next(); // Check all conditional results for (final Object o : actionDescriptor.getConditionalResults()) { final ResultDescriptor resultDescriptor = (ResultDescriptor) o; if (resultDescriptor.getStep() == stepDescriptor.getId()) { // The step is a destination step for action's conditional result // Leave the action in the collection continue actionloop; } } // Now check the unconditional result if (actionDescriptor.getUnconditionalResult().getStep() != stepDescriptor.getId()) { // If the step is not a destination of any conditional and unconditional result remove the action from the list iterator.remove(); } } return actions; }
public int getNextActionId() { int offset = 0; final SortedMap<Integer, ActionDescriptor> allActionsMap = getAllActionsMap(); if (!allActionsMap.isEmpty()) { offset = allActionsMap.lastKey().intValue(); } return offset + 10; }