@Override public boolean isDisplayLinkPanel() { if (linkTypes != null && !linkTypes.isEmpty()) { for (IssueLinkType issueLinkType : linkTypes) { List<Issue> outwardIssueLinks = getOutwardIssues(issueLinkType.getName()); List<Issue> inwardIssues = getInwardIssues(issueLinkType.getName()); // If any one set of links is visible - return true if ((outwardIssueLinks != null && !outwardIssueLinks.isEmpty()) || (inwardIssues != null && !inwardIssues.isEmpty())) { return true; } } } return false; } }
public IssueLinkType getCloneIssueLinkType() { if (cloneIssueLinkType == null) { final Collection<IssueLinkType> cloneIssueLinkTypes = issueLinkTypeManager.getIssueLinkTypesByName(getCloneLinkTypeName()); if (StringUtils.isBlank(getCloneLinkTypeName())) { // Issue linking is not required cloneIssueLinkType = null; } else if (CollectionUtils.isEmpty(cloneIssueLinkTypes)) { log.warn("The clone link type '" + getCloneLinkTypeName() + "' does not exist. A link to the original issue will not be created."); cloneIssueLinkType = null; } else { for (final IssueLinkType issueLinkType : cloneIssueLinkTypes) { if (issueLinkType.getName().equals(getCloneLinkTypeName())) { cloneIssueLinkType = issueLinkType; } } } } return cloneIssueLinkType; }
String otherName = other.getName();
public static IssueLinkTypeJsonBean create(IssueLinkType issueLinkType, URI self) { return new IssueLinkTypeJsonBean(issueLinkType.getId(), issueLinkType.getName(), issueLinkType.getInward(), issueLinkType.getOutward(), self); }
public IssueLinkTypeJsonBean apply(@Nullable IssueLinkType from) { final URI uri = restUrlBuilder.getURI(restUrlBuilder.getUrlFor(contextUriInfo.getBaseUri(), IssueLinkTypeResource.class).getIssueLinkType(from.getId().toString())); return new IssueLinkTypeJsonBean(from.getId(), from.getName(), from.getInward(), from.getOutward(), uri); } });
@Override public ServiceOutcome<IssueLinkType> updateIssueLinkType(ApplicationUser user, IssueLinkType linkType, String name, String outward, String inward) { final I18nHelper i18n = i18nFactory.getInstance(user); if (!applicationProperties.getOption(APKeys.JIRA_OPTION_ISSUELINKING)) { return ServiceOutcomeImpl.error(i18n.getText("admin.issuelinking.status", i18n.getText("admin.common.words.disabled")), ErrorCollection.Reason.NOT_FOUND); } if (!permissionManager.hasPermission(Permissions.ADMINISTER, user)) { return ServiceOutcomeImpl.error(i18n.getText("admin.errors.linking.error.update.no.permission"), ErrorCollection.Reason.FORBIDDEN); } // Trying to give this link type the same name as an existing link type is not allowed. if (!Objects.equal(name, linkType.getName()) && !issueLinkTypeManager.getIssueLinkTypesByName(name).isEmpty()) { return ServiceOutcomeImpl.error(i18n.getText("admin.errors.linking.error.create.duplicate")); } issueLinkTypeManager.updateIssueLinkType(linkType, StringUtils.isEmpty(name) ? linkType.getName() : name, StringUtils.isEmpty(outward) ? linkType.getOutward() : outward, StringUtils.isEmpty(inward) ? linkType.getInward() : inward); return ServiceOutcomeImpl.ok(linkType); } }
public String doDefault() throws Exception { name = getIssueLinkType().getName(); outward = getIssueLinkType().getOutward(); inward = getIssueLinkType().getInward(); return super.doDefault(); }
if (linkType == null) throw new IllegalArgumentException("Cant find issue link type '" + result.getLinkType().getName() + "'");
private void validateLinkInput(final ApplicationUser user, ErrorCollection errors, Issue issue, IssueLinkType linkType, Collection<String> linkKeys, boolean excludeSystemLinks) { if (excludeSystemLinks && linkType.isSystemLinkType()) { errors.addErrorMessage(beanFactory.getInstance(user).getText("issuelinking.service.error.invalid.link.type", linkType.getName())); } if (linkKeys == null || linkKeys.isEmpty()) { errors.addErrorMessage(beanFactory.getInstance(user).getText("issuelinking.service.error.must.provide.issue.links")); } else { for (String linkKey : linkKeys) { if (linkKey.equalsIgnoreCase(issue.getKey())) { errors.addErrorMessage(beanFactory.getInstance(user).getText("issuelinking.service.error.self.reference", linkKey)); } MutableIssue linkedIssue = issueManager.getIssueObject(linkKey); if (linkedIssue == null) { errors.addErrorMessage(beanFactory.getInstance(user).getText("issuelinking.service.error.linked.issue.doesnt.exist", linkKey)); } // NOTE we don't validate that the link type requested does not already link the two issues because the // IssueLinkManager ignores this on creation if it already exists. } } }