All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.almworks.jira.structure.api.util.JiraFunc Maven / Gradle / Ivy

There is a newer version: 17.25.3
Show newest version
package com.almworks.jira.structure.api.util;

import com.atlassian.crowd.embedded.api.Group;
import com.atlassian.jira.bc.EntityNotFoundException;
import com.atlassian.jira.bc.project.component.ProjectComponent;
import com.atlassian.jira.issue.Issue;
import com.atlassian.jira.issue.IssueConstant;
import com.atlassian.jira.issue.customfields.CustomFieldType;
import com.atlassian.jira.issue.customfields.option.Option;
import com.atlassian.jira.issue.fields.CustomField;
import com.atlassian.jira.issue.fields.Field;
import com.atlassian.jira.issue.issuetype.IssueType;
import com.atlassian.jira.issue.label.Label;
import com.atlassian.jira.issue.link.IssueLink;
import com.atlassian.jira.issue.link.IssueLinkType;
import com.atlassian.jira.issue.priority.Priority;
import com.atlassian.jira.issue.resolution.Resolution;
import com.atlassian.jira.issue.security.IssueSecurityLevel;
import com.atlassian.jira.issue.status.Status;
import com.atlassian.jira.issue.worklog.WorkRatio;
import com.atlassian.jira.permission.ProjectPermissions;
import com.atlassian.jira.project.Project;
import com.atlassian.jira.project.ProjectConstant;
import com.atlassian.jira.project.version.Version;
import com.atlassian.jira.security.PermissionManager;
import com.atlassian.jira.security.plugin.ProjectPermissionKey;
import com.atlassian.jira.security.roles.ProjectRole;
import com.atlassian.jira.sharing.SharedEntity;
import com.atlassian.jira.user.ApplicationUser;
import com.atlassian.jira.util.JiraKeyUtils;
import com.atlassian.jira.workflow.JiraWorkflow;
import com.atlassian.plugin.ModuleDescriptor;
import org.ofbiz.core.entity.GenericValue;

import java.security.Principal;
import java.sql.Timestamp;
import java.util.*;

import static com.almworks.jira.structure.api.item.CoreIdentities.canonicalVersionName;

/**
 * 

JiraFunc contains Jira-related functions.

* * @author Igor Sereda */ public class JiraFunc { public static final La PROJECT_ID = new La(Long.class) { @Override public Long la(Project argument) { return argument == null ? null : argument.getId(); } }; public static final La PROJECT_NAME = new La() { public String la(Project argument) { return argument == null ? null : argument.getName(); } }; public static final La PROJECT_KEY = new La(String.class) { public String la(Project argument) { return argument == null ? null : argument.getKey(); } }; public static final La PROJECT_DESCRIPTION = new La(String.class) { public String la(Project argument) { return argument == null ? null : argument.getDescription(); } }; public static final La ISSUE_ID = new La() { @Override public Long la(Issue argument) { return argument == null ? null : argument.getId(); } }; public static final La KEY_PROJECT = new La() { public Project la(String key) { if (key == null) return null; return JiraComponents.getProjectManager().getProjectObjByKey(key); } }; public static final La ID_PROJECT = new La() { public Project la(Long id) { if (id == null) return null; return JiraComponents.getProjectManager().getProjectObj(id); } }; public static final La ID_ISSUETYPE = new La() { @Override public IssueType la(String id) { return id == null ? null : JiraComponents.getConstantsManager().getIssueType(id); } }; public static final La ID_STATUS = new La() { @Override public Status la(String id) { return id == null ? null : JiraComponents.getConstantsManager().getStatus(id); } }; public static final La ID_PRIORITY = new La() { @Override public Priority la(String id) { return id == null ? null : JiraComponents.getConstantsManager().getPriorityObject(id); } }; public static final La ID_RESOLUTION = new La() { @Override public Resolution la(String id) { return id == null ? null : JiraComponents.getConstantsManager().getResolution(id); } }; public static final La ID_COMPONENT = new La() { @Override public ProjectComponent la(Long id) { try { return id == null ? null : JiraComponents.getProjectComponentManager().find(id); } catch (EntityNotFoundException e) { return null; } } }; public static final La ID_VERSION = new La() { @Override public Version la(Long id) { return id == null ? null : JiraComponents.getVersionManager().getVersion(id); } }; public static final La PROJECTROLE_ID = new La() { public Long la(ProjectRole argument) { return argument == null ? null : argument.getId(); } }; public static final La PRINCIPAL_NAME = new La(String.class) { public String la(Principal argument) { return argument == null ? null : argument.getName(); } }; public static final La GROUP_NAME = new La(String.class) { public String la(Group argument) { return argument == null ? null : argument.getName(); } }; public static final La MODULE_COMPLETE_KEY = new La() { public String la(ModuleDescriptor argument) { return argument == null ? null : argument.getCompleteKey(); } }; public static final La LINKTYPE_ID = new La() { public Long la(IssueLinkType argument) { return argument == null ? null : argument.getId(); } }; public static final La SHAREDENTITY_ID = new La() { public Long la(SharedEntity argument) { return argument == null ? null : argument.getId(); } }; public static final La CUSTOMFIELD_TYPE = new La() { public CustomFieldType la(CustomField argument) { return argument == null ? null : argument.getCustomFieldType(); } }; public static final La CUSTOMFIELDTYPE_KEY = new La() { public String la(CustomFieldType argument) { return argument == null ? null : argument.getKey(); } }; public static final La CUSTOMFIELD_ID = new La() { public String la(CustomField argument) { return argument == null ? null : argument.getId(); } }; public static final La CUSTOMFIELD_LONG_ID = new La() { public Long la(CustomField argument) { return argument == null ? null : argument.getIdAsLong(); } }; public static final La FIELD_NAME = new La(String.class) { @Override public String la(Field argument) { return argument == null ? null : argument.getName(); } }; public static final La ISSUETYPE_SUBTASK = new La() { public Boolean la(IssueType argument) { return argument != null && argument.isSubTask(); } }; public static final La ISSUECONSTANT_ID = new La(String.class) { public String la(IssueConstant argument) { return argument == null ? null : argument.getId(); } }; public static final La ISSUECONSTANT_NAME = new La(String.class) { @Override public String la(IssueConstant argument) { return argument == null ? null : argument.getName(); } }; public static final La ISSUECONSTANT_NAME_LOCAL = new La(String.class) { public String la(IssueConstant argument) { return argument == null ? null : argument.getNameTranslation(); } }; public static final La ISSUECONSTANT_SEQUENCE = new La() { @Override public Long la(IssueConstant argument) { return argument == null ? null : argument.getSequence(); } }; public static final La NEGATED_ISSUECONSTANT_SEQUENCE = new La() { @Override public Long la(IssueConstant argument) { return argument == null ? null : argument.getSequence() == null ? null : -argument.getSequence(); } }; public static final La WORKFLOW_NAME = new La() { public String la(JiraWorkflow argument) { return argument == null ? null : argument.getName(); } }; public static final La APPLICATION_USER_NAME = new La() { public String la(ApplicationUser argument) { return argument == null ? null : argument.getDisplayName(); } }; public static final La USER_NAME = new La() { public String la(ApplicationUser argument) { return argument == null ? null : argument.getDisplayName(); } }; public static final La USER_KEY = new La() { public String la(ApplicationUser argument) { return argument == null ? null : argument.getKey(); } }; public static final La VERSION_ACTIVE = new La(Boolean.class) { @Override public Boolean la(Version argument) { return argument == null ? null : !argument.isArchived(); } }; public static final La VERSION_SEQUENCE = new La(Long.class) { @Override public Long la(Version argument) { return argument == null ? null : argument.getSequence(); } }; public static final La VERSION_PROJECT = new La(Project.class) { @Override public Project la(Version argument) { return argument == null ? null : argument.getProject(); } }; public static final La PROJECTCONSTANT_ID = new La(Long.class) { @Override public Long la(ProjectConstant argument) { return argument == null ? null : argument.getId(); } }; public static final La PROJECTCONSTANT_NAME = new La(String.class) { @Override public String la(ProjectConstant argument) { return argument == null ? null : argument.getName(); } }; public static final La PROJECTCONSTANT_DESCRIPTION = new La(String.class) { @Override public String la(ProjectConstant argument) { return argument == null ? null : argument.getDescription(); } }; public static final La PROJECTCONSTANT_PROJECTID = new La(Long.class) { @Override public Long la(ProjectConstant argument) { return argument == null ? null : argument.getProjectId(); } }; public static final La GENERICVALUE_LONG_ID = new La() { public Long la(GenericValue argument) { try { return argument == null ? null : argument.getLong("id"); } catch (Exception e) { return null; } } }; public static final La GENERICVALUE_STRING_ID = new La() { public String la(GenericValue argument) { try { return argument == null ? null : argument.getString("id"); } catch (Exception e) { return null; } } }; public static final La ISSUE_PROJECT = new La() { public Project la(Issue argument) { return argument == null ? null : argument.getProjectObject(); } }; public static final La ISSUE_PROJECTID = new La(Long.class) { @Override public Long la(Issue argument) { return argument == null ? null : argument.getProjectId(); } }; public static final La ISSUE_ISSUETYPE = new La() { public IssueType la(Issue argument) { return argument == null ? null : argument.getIssueType(); } }; public static final La ISSUETYPE_ID = new La() { public String la(IssueType argument) { return argument == null ? null : argument.getId(); } }; public static final La ISSUETYPE_NAME = new La() { public String la(IssueType argument) { return argument == null ? null : argument.getName(); } }; public static final La ISSUE_PRIORITY = new La() { public Priority la(Issue argument) { return argument == null ? null : argument.getPriority(); } }; public static final La ISSUE_STATUS = new La() { @Override public Status la(Issue argument) { return argument == null ? null : argument.getStatus(); } }; public static final La ISSUE_RESOLUTION = new La() { @Override public Resolution la(Issue argument) { return argument == null ? null : argument.getResolution(); } }; public static final La ISSUE_ISSUETYPEID = ISSUE_ISSUETYPE.supply(ISSUETYPE_ID); public static final La ISSUE_PRIORITYID = ISSUE_PRIORITY.supply(ISSUECONSTANT_ID); public static final La ISSUE_RESOLUTIONID = ISSUE_RESOLUTION.supply(ISSUECONSTANT_ID); public static final La ISSUE_STATUSID = ISSUE_STATUS.supply(ISSUECONSTANT_ID); public static final La ISSUE_SUMMARY = new La(String.class) { @Override public String la(Issue argument) { return argument == null ? null : argument.getSummary(); } }; public static final La ISSUE_DESCRIPTION = new La(String.class) { @Override public String la(Issue argument) { return argument == null ? null : argument.getDescription(); } }; public static final La ISSUE_ENVIRONMENT = new La(String.class) { @Override public String la(Issue argument) { return argument == null ? null : argument.getEnvironment(); } }; public static final La ISSUE_KEY = new La(String.class) { @Override public String la(Issue argument) { return argument == null ? null : argument.getKey(); } }; public static final La ISSUE_ORIGINAL_ESTIMATE = new La(Long.class) { @Override public Long la(Issue issue) { return issue == null ? null : issue.getOriginalEstimate(); } }; public static final La ISSUE_REMAINING_ESTIMATE = new La(Long.class) { @Override public Long la(Issue issue) { return issue == null ? null : issue.getEstimate(); } }; public static final La ISSUE_TIME_SPENT = new La(Long.class) { @Override public Long la(Issue issue) { return issue == null ? null : issue.getTimeSpent(); } }; public static final La ISSUE_TOTAL_TIME = new La(Long.class) { @Override public Long la(Issue issue) { Long spent = issue == null ? null : issue.getTimeSpent(); Long remaining = issue == null ? null : issue.getEstimate(); Long total = NumericFunctions.longAddOrNull(spent, remaining); return total != null && total > 0 ? total : null; } }; public static final La ISSUE_WORK_RATIO = new La() { public Long la(Issue argument) { return argument == null ? null : WorkRatio.getWorkRatio(argument); } }; public static final La ISSUE_VOTES = new La(Long.class) { @Override public Long la(Issue argument) { return argument == null ? null : argument.getVotes(); } }; public static final La ISSUE_WATCHES = new La(Long.class) { @Override public Long la(Issue argument) { return argument == null ? null : argument.getWatches(); } }; public static final La USERKEY_APPLICATIONUSER = new La(ApplicationUser.class) { @Override public ApplicationUser la(String argument) { return JiraUsers.byKey(argument); } }; public static final La ISSUE_ASSIGNEEID = new La(String.class) { @Override public String la(Issue argument) { return argument == null ? null : argument.getAssigneeId(); } }; public static final La ISSUE_ASSIGNEE = USERKEY_APPLICATIONUSER.apply(ISSUE_ASSIGNEEID); public static final La ISSUE_REPORTERID = new La(String.class) { @Override public String la(Issue argument) { return argument == null ? null : argument.getReporterId(); } }; public static final La ISSUE_REPORTER = USERKEY_APPLICATIONUSER.apply(ISSUE_REPORTERID); public static final La ISSUE_CREATORID = new La(String.class) { public String la(Issue argument) { return argument == null ? null : argument.getCreatorId(); } }; public static final La ISSUE_CREATOR = USERKEY_APPLICATIONUSER.apply(ISSUE_CREATORID); public static final La ISSUE_CREATED = new La(Timestamp.class) { @Override public Timestamp la(Issue argument) { return argument == null ? null : argument.getCreated(); } }; public static final La ISSUE_UPDATED = new La(Timestamp.class) { @Override public Timestamp la(Issue argument) { return argument == null ? null : argument.getUpdated(); } }; public static final La ISSUE_DUE_DATE = new La(Timestamp.class) { @Override public Timestamp la(Issue argument) { return argument == null ? null : argument.getDueDate(); } }; public static final La ISSUE_RESOLUTION_DATE = new La(Timestamp.class) { @Override public Timestamp la(Issue argument) { return argument == null ? null : argument.getResolutionDate(); } }; public static final La> ISSUE_AFFECTED_VERSIONS = new La>() { @Override public Collection la(Issue argument) { return argument == null ? null : argument.getAffectedVersions(); } }; public static final La> ISSUE_FIX_VERSIONS = new La>() { @Override public Collection la(Issue argument) { return argument == null ? null : argument.getFixVersions(); } }; public static final La> ISSUE_COMPONENTS = new La>() { @Override public Collection la(Issue argument) { return argument == null ? null : argument.getComponents(); } }; public static final La> ISSUE_LABELS = new La>() { @Override public Set




© 2015 - 2024 Weber Informatics LLC | Privacy Policy