public void createValue(Issue issue, IssueLinkingValue value) { if (isIssueLinkingEnabled()) { IssueLinkingValue issueLinkingValue = value; IssueLinkService.AddIssueLinkValidationResult validationResult = issueLinkingValue.getValidationResult(); if (validationResult != null && validationResult.isValid()) { issueLinkService.addIssueLinks(authenticationContext.getUser(), validationResult); } } }
/** * This is called after the issue has been stored on disk and allows us a chance to create change records for the * update. * * @param fieldLayoutItem for this field within this context. * @param issue Issue this field is part of. * @param modifiedValue new value to set field to. Cannot be null. * @param issueChangeHolder an object to record any changes made to the issue by this method. */ public void updateValue(FieldLayoutItem fieldLayoutItem, Issue issue, ModifiedValue modifiedValue, IssueChangeHolder issueChangeHolder) { Object newValue = modifiedValue.getNewValue(); if (newValue != null) { if (isIssueLinkingEnabled()) { IssueLinkingValue issueLinkingValue = (IssueLinkingValue) newValue; IssueLinkService.AddIssueLinkValidationResult validationResult = issueLinkingValue.getValidationResult(); if (validationResult != null && validationResult.isValid()) { issueLinkService.addIssueLinks(authenticationContext.getUser(), validationResult); } } } }
private void createIssueLink(final ApplicationUser user, final Issue fromIssue, final Issue toIssue, final String relationship) throws IssueLinkCreationException { IssueLinkType issueLinkType = findIssueLinkTypeByNames(relationship); if(issueLinkType == null){ String message = authenticationContext.getI18nHelper().getText("cpji.link.type.doesnt.exist.link.wasnt.copied", relationship, fromIssue, toIssue); throw new CannotFindIssueLinkTypeException(message); } final IssueLinkService.AddIssueLinkValidationResult addIssueLinkValidationResult = issueLinkService.validateAddIssueLinks( user, fromIssue, relationship, ImmutableList.<String>of(toIssue.getKey())); if (addIssueLinkValidationResult.isValid()) { issueLinkService.addIssueLinks(user, addIssueLinkValidationResult); } else { log.warn("Error creating local link from " + fromIssue.getKey() + " to " + toIssue.getKey() + ". " + addIssueLinkValidationResult.getErrorCollection()); throw new IssueLinkCreationException(addIssueLinkValidationResult.getErrorCollection()); } }