@Override public boolean apply(@Nullable final JiraWorkflow input) { return input.getLinkedStatusObjects().contains(status); } };
/** * Retrieve a collection of target workflow statuses from the workflow associated with the specified issue type id. * @param issueTypeId the id of the specified issue type. * @return A collection of target workflow statuses from the workflow associated with the specified issue type id. */ public Collection<Status> getTargetWorkflowStatuses(String issueTypeId) { JiraWorkflow workflow = getWorkflowForType(getTargetPid(), issueTypeId); return workflow.getLinkedStatusObjects(); }
public boolean isTaskStatusValid(String typeId, String statusId) throws WorkflowException { JiraWorkflow targetWorkflow = getWorkflowForType(getTargetPid(), typeId); Status status = constantsManager.getStatus(statusId); Collection<Status> availableStatuses = targetWorkflow.getLinkedStatusObjects(); return availableStatuses.contains(status); }
@Override public Response apply(final Project project) { final Collection<IssueType> issueTypesForProject = issueTypeSchemeManager.getIssueTypesForProject(project); final Collection<IssueTypeWithStatusJsonBean> issueTypesWithStatuses = Lists.newArrayList(); for (final IssueType issueType : issueTypesForProject) { final JiraWorkflow workflow = workflowManager.getWorkflow(project.getId(), issueType.getId()); final ImmutableList<StatusJsonBean> statusJsonBeans = ImmutableList.copyOf( Iterables.transform(workflow.getLinkedStatusObjects(), new Function<Status, StatusJsonBean>() { @Override public StatusJsonBean apply(final Status status) { return statusHelper.createStatusBean(status, uriInfo, StatusResource.class); } })); issueTypesWithStatuses.add(createIssueTypeWithStatuses(issueType, statusJsonBeans)); } return Response.ok(issueTypesWithStatuses).cacheControl(NO_CACHE).build(); } });
public boolean isIssueStatusValid() throws WorkflowException { Status status = constantsManager.getStatus(getIssue().getString("status")); return getTargetWorkflow().getLinkedStatusObjects().contains(status); }
private void initInvalidStatuses() throws WorkflowException { invalidStatuses = Sets.newHashSet(); invalidIssues = new HashSet<Issue>(); final JiraWorkflow workflow = getWorkflowManager().getWorkflow(getTargetPid(), getTargetIssueTypeId()); final List<Status> validStatuses = workflow.getLinkedStatusObjects(); for (final Issue issue : getSelectedIssues()) { final Status status = issue.getStatusObject(); if (status == null) { // Add it to the really screwed list invalidIssues.add(issue); } if (!validStatuses.contains(status)) { invalidStatuses.add(status); } } }
/** * Retrieves the workflow for given project and issue type combination and * checks whether the given status is in this workflow. * * @param status issue status * @param projectId project id * @param issueTypeId issue type id * @return true if given status is in workflow specified by given project id and issue type id, false otherwise */ protected boolean isStatusInWorkflowForProjectAndIssueType(Status status, Long projectId, String issueTypeId) { List<Status> linkedStatusObjects = getWorkflowForProjectAndIssueType(projectId, issueTypeId).getLinkedStatusObjects(); for (Status wfStatus : linkedStatusObjects) { if (wfStatus.getId().equals(status.getId())) { return true; } } return false; }
uniqueStatus.addAll(jiraWorkflow.getLinkedStatusObjects()); List<Status> linkedStatuses = workflow.getLinkedStatusObjects(); uniqueStatus.addAll(linkedStatuses);
Collection<Status> existingStatuses = new HashSet<Status>(existingWorkflow.getLinkedStatusObjects()); existingStatuses.addAll(actualExistingStatuses); List<Status> targetStatuses = targetWorkflow.getLinkedStatusObjects(); existingStatuses.removeAll(targetStatuses); Collection<Status> intersection = Sets.newHashSet(existingWorkflow.getLinkedStatusObjects()); intersection.addAll(actualExistingStatuses);
private boolean checkWorkflow(final boolean equality, final Set<String> ids, final Project project, final String issueType, final String workflowName) { final JiraWorkflow workflow = workflowManager.getWorkflow(workflowName); if (workflow != null) { final List<Status> statusObjects = workflow.getLinkedStatusObjects(); for (Status statusObject : statusObjects) { // JRA-19026 - when we encounter really messed up data the workflow can return null statuses if (statusObject != null) { if (equality == ids.contains(statusObject.getId())) { return true; } } else { final String issueTypeStr = issueType == null ? "default" : issueType; // Kinda strange, probably means you manually messed with your workflow, lets info log log.debug("Workflow: '" + workflow.getName() + "' associated with project: '" + project.getId() + "' and issue type: '" + issueTypeStr + "' contains a null status, you might want to fix that."); } } } return false; }
if (!targetSubTaskWorkflow.getLinkedStatusObjects().contains(subTaskStatus))
@Override public void removeStatus(final String id) { Status status = getStatusOrThrowIllegalArgumentException(id); final List<JiraWorkflow> existingWorkflows = workflowManager.getWorkflowsIncludingDrafts(); for (JiraWorkflow workflow : existingWorkflows) { Collection<Status> linkStatuses = workflow.getLinkedStatusObjects(); if (linkStatuses.contains(status)) { throw new IllegalStateException("Cannot delete a status which is associated with a workflow. Status is associated with workflow " + workflow.getName()); } } try { removeConstant(getIssueConstantField(), status, null); } catch (GenericEntityException | IndexException e) { throw new DataAccessException("Failed to remove status with id '" + id + "'", e); } }
List<Status> statuses = workflow.getLinkedStatusObjects(); for (Status status : statuses)
final List<Status> linkedStatuses = getWorkflowManager().getWorkflow(issue).getLinkedStatusObjects();
final JiraWorkflow workflow = (existingProject == null) ? workflowManager.getDefaultWorkflow() : workflowManager.getWorkflow( existingProject.getId(), issueTypeMapper.getMappedId(issueTypeId)); if (!workflow.getLinkedStatusObjects().contains(existingStatus))