protected IssueConstant getConstant(Issue i1) { Status statusObject = i1.getStatusObject(); if (statusObject != null) return statusObject; else return null; } }
public Status getStatus() { return issue.getStatusObject(); }
public Status getStatusObject() { return issue.getStatusObject(); }
public Status getStatusObject() { return issue.getStatusObject(); }
public String getColumnViewHtml(FieldLayoutItem fieldLayoutItem, Map<String, Object> displayParams, Issue issue) { return statusFormatter.getColumnViewHtml(issue.getStatusObject(), displayParams); }
public void addIndex(Document doc, Issue issue) { if (issue.getStatusObject() != null) // this should only happen in tests { indexKeyword(doc, getDocumentFieldId(), issue.getStatusObject().getId(), issue); } } }
public PermissionContext getPermissionContext(Issue issue) { return new PermissionContextImpl(issue, issue.getProjectObject(), issue.getStatusObject()); }
public Status getTargetStatus(final Issue issue) { final String statusId = statusMapHolder.get(issue.getStatusObject().getId()); if (statusId != null) { return ComponentAccessor.getConstantsManager().getStatus(statusId); } else { return null; } }
public boolean isStatusChangeRequired(JiraServiceContext context, Issue issue, IssueType issueType) { Status status = issue.getStatusObject(); final Long projectId = issue.getProjectId(); final String subTaskId = issueType.getId(); return !isStatusInWorkflowForProjectAndIssueType(status, projectId, subTaskId); }
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); } } }
@Override public FieldJsonRepresentation getJsonFromIssue(Issue issue, boolean renderedVersionRequired, FieldLayoutItem fieldLayoutItem) { return new FieldJsonRepresentation(new JsonData(StatusJsonBean.bean(issue.getStatusObject(), jiraBaseUrls))); } }
public PermissionContext getPermissionContext(GenericValue projectOrIssue) { if ("Issue".equals(projectOrIssue.getEntityName())) { IssueFactory issueFactory = ComponentAccessor.getIssueFactory(); Issue issue = issueFactory.getIssue(projectOrIssue); Project project = issue.getProjectObject(); Status status = issue.getStatusObject(); return new PermissionContextImpl(issue, project, status); } else if ("Project".equals(projectOrIssue.getEntityName())) { Project project = ComponentAccessor.getProjectFactory().getProject(projectOrIssue); return new PermissionContextImpl(null, project, null); } else throw new IllegalArgumentException("DefaultPermissionContextFactory passed a "+projectOrIssue.getClass().getName()+": can only accept an Issue or Project"); }
@Override public boolean matches(Issue issue, ProjectConfiguration config) { final String id = issue.getStatusObject().getId(); return new MultipleValue(config.getValue()).apply(id); } }
@Override protected ChangeHistoryItem createInitialChangeItem(Issue issue) { final Status status = issue.getStatusObject(); final String statusName = status == null ? null : status.getName(); final String statusValue = status == null ? EMPTY_VALUE : status.getId(); return changeItemBuilder(issue).to(statusName, statusValue).build(); } }
public boolean isEditable(Issue issue) { if (issue == null || issue.getProjectObject() == null || issue.getIssueTypeObject() == null || issue.getStatusObject() == null) { return false; } try { final JiraWorkflow workflow = getWorkflow(issue.getProjectId(), issue.getIssueTypeId()); final String statusId = issue.getStatusObject().getId(); if (statusId != null) //this should never really be null - but it saves hassle of setting up hundreds of tests with a statusId { final StepDescriptor currentStep = workflow.getLinkedStep(getConstantsManager().getStatusObject(statusId)); if (currentStep == null || !"false".equals(currentStep.getMetaAttributes().get(JiraWorkflow.JIRA_META_ATTRIBUTE_EDIT_ALLOWED))) { return true; } } return false; } catch (WorkflowException e) { throw new RuntimeException(e + " when trying to access workflow for issue " + issue, e); } }
@Nonnull @Override public String getNextStatusIdForAction(@Nonnull final Issue issue, final int actionId) { JiraWorkflow workflow = getWorkflow(issue); if (workflow == null) { throw new IllegalStateException("There is no workflow for the issue with key " + issue.getKey()); } ActionDescriptor action = workflow.getDescriptor().getAction(actionId); if (action == null) { throw new IllegalStateException("There is no action descriptor for an action with id " + actionId); } int stepId = action.getUnconditionalResult().getStep(); if (stepId == JiraWorkflow.ACTION_ORIGIN_STEP_ID) { return issue.getStatusObject().getId(); } StepDescriptor step = workflow.getDescriptor().getStep(stepId); return workflow.getLinkedStatusId(step); }
/** * @param issue issue object to derive the workflow from * @param stepId the step id to get the status id for * @return the the status which stepId maps to in the associated workflow */ private Status getStatusFromStep(Issue issue, int stepId) { final WorkflowDescriptor workflowDescriptor = workflowManager.getWorkflow(issue).getDescriptor(); String statusId; if (AUTOMATIC_LOOP_BACK_STEP_ID == stepId) // Then we just need to return the current status, see JRA-32132 for details. { statusId = issue.getStatusObject().getId(); } else { statusId = (String) workflowDescriptor.getStep(stepId).getMetaAttributes().get(JiraWorkflow.STEP_STATUS_KEY); } return statusManager.getStatus(statusId); }
public void validateTargetStatus(JiraServiceContext context, Status status, final String fieldName, Issue issue, IssueType issueType) { final Long projectId = issue.getProjectId(); final String subTaskId = issueType.getId(); final ErrorCollection errorCollection = context.getErrorCollection(); if (!isStatusChangeRequired(context, issue, issueType) && !status.getId().equals(issue.getStatusObject().getId())) { errorCollection.addErrorMessage(getText("convert.issue.to.subtask.errormessage.nochangeneeded")); } if (!isStatusInWorkflowForProjectAndIssueType(status, projectId, subTaskId)) { errorCollection.addError(fieldName, getText("convert.issue.to.subtask.error.invalidstatusfortargetworkflow", status.getNameTranslation())); } }
public IssueRefJsonBean createIssueRefJsonBean(final Issue issue) { return new IssueRefJsonBean() .id(String.valueOf(issue.getId())) .key(issue.getKey()) .self(URI.create(jiraBaseUrls.restApi2BaseUrl() + "issue/" + issue.getId())) .fields(new IssueRefJsonBean.Fields() .summary(issue.getSummary()) .status(StatusJsonBean.bean(issue.getStatusObject(), jiraBaseUrls)) .issueType(IssueTypeJsonBean.shortBean(issue.getIssueTypeObject(), jiraBaseUrls)) .priority(PriorityJsonBean.shortBean(issue.getPriorityObject(), jiraBaseUrls)) ); } }
private List migrateSubTask(final Issue originalSubtask, final MutableIssue targetSubtask) throws GenericEntityException { ArrayList subTaskChangeItems = new ArrayList(); // update the target status if the original status is not valid in the target workflow if (!isTaskStatusValid(targetSubtask.getIssueTypeId(), targetSubtask.getStatusObject().getId())) { // Retrieve target status of subtask in new workflow from moveissuebean String subTaskTypeKey = getPrefixTaskStatusId(targetSubtask.getIssueTypeId(), targetSubtask.getStatusObject().getId()); Map taskTargetStatusMap = getMoveIssueBean().getTaskTargetStatusHolder(); targetSubtask.setStatusId((String) taskTargetStatusMap.get(subTaskTypeKey)); subTaskChangeItems.add(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, IssueFieldConstants.STATUS, originalSubtask.getStatusObject().getId(), originalSubtask.getStatusObject().getName(), targetSubtask.getStatusObject().getId(), targetSubtask.getStatusObject().getName())); } // Migrate the subtask to the new status in the target workflow and create a changelog if (!isWorkflowMatch(originalSubtask.getIssueTypeId(), targetSubtask.getIssueTypeId())) { migrateIssueToWorkflow(targetSubtask, originalSubtask.getIssueTypeId(), getWorkflowForType(getTargetPid(), targetSubtask.getIssueTypeId()), targetSubtask.getStatus()); subTaskChangeItems.add(new ChangeItemBean(ChangeItemBean.STATIC_FIELD, "Workflow", originalSubtask.getWorkflowId().toString(), getWorkflowManager().getWorkflow(originalSubtask.getGenericValue()).getName(), targetSubtask.getWorkflowId().toString(), getWorkflowForType(getTargetPid(), targetSubtask.getIssueTypeId()).getName())); } return subTaskChangeItems; }