@Override
public SingleIssueLinkResult getIssueLink(Long issueLinkId, ApplicationUser user)
{
Assertions.notNull("issueLinkId", issueLinkId);
IssueLink issueLink = issueLinkManager.getIssueLink(issueLinkId);
if (issueLink == null)
{
SimpleErrorCollection simpleErrorCollection = new SimpleErrorCollection();
simpleErrorCollection.addErrorMessage(beanFactory.getInstance(user).getText("rest.issue.link.not.found", issueLinkId.toString()));
return new SingleIssueLinkResult(simpleErrorCollection, null);
}
MutableIssue sourceIssue = issueManager.getIssueObject(issueLink.getSourceId());
ErrorCollection sourceIssueErrors = validateIssuePermission(user, sourceIssue, Permissions.BROWSE);
MutableIssue destinationIssue = issueManager.getIssueObject(issueLink.getDestinationId());
ErrorCollection destinationIssueErrors = validateIssuePermission(user, destinationIssue, Permissions.BROWSE);
if (sourceIssueErrors.hasAnyErrors() || destinationIssueErrors.hasAnyErrors())
{
sourceIssueErrors.getErrors().putAll(destinationIssueErrors.getErrors());
sourceIssueErrors.getErrorMessages().addAll(destinationIssueErrors.getErrorMessages());
return new SingleIssueLinkResult(sourceIssueErrors, null);
}
return new SingleIssueLinkResult(new SimpleErrorCollection(), issueLink);
}