public class

DefaultRemoteIssueLinkService

extends Object
implements RemoteIssueLinkService
java.lang.Object
   ↳ com.atlassian.jira.bc.issue.link.DefaultRemoteIssueLinkService

Class Overview

The default implementation of the RemoteIssueLinkService.

Summary

Public Constructors
DefaultRemoteIssueLinkService(RemoteIssueLinkManager remoteIssueLinkManager, IssueService issueService, IssueManager issueManager, IssueLinkManager issueLinkManager, I18nHelper.BeanFactory beanFactory, PermissionManager permissionManager)
Public Methods
RemoteIssueLinkService.RemoteIssueLinkResult create(ApplicationUser user, RemoteIssueLinkService.CreateValidationResult createValidationResult)
Stores the given remote issue link in the JIRA datastore, if the current user has permission to do so.
void delete(ApplicationUser user, RemoteIssueLinkService.DeleteValidationResult deleteValidationResult)
Deletes the remote issue link with the given id from the JIRA datastore, if the current user has permission to do so.
void deleteByGlobalId(ApplicationUser user, RemoteIssueLinkService.DeleteByGlobalIdValidationResult validationResult)
Deletes the remote issue link that links with the given JIRA issue and has the given global id, if the current user has permission to do so.
RemoteIssueLinkService.RemoteIssueLinkListResult findRemoteIssueLinksByGlobalId(ApplicationUser user, Collection<String> globalIds)
Retrieves the list of remote issue links that have any of the given globalIds.
RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLink(ApplicationUser user, Long remoteIssueLinkId)
Retrieves the remote issue link with the given id.
RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLinkByGlobalId(ApplicationUser user, Issue issue, String globalId)
Retrieves the remote issue link that links with the given JIRA issue and has the given globalId.
RemoteIssueLinkService.RemoteIssueLinkListResult getRemoteIssueLinksForIssue(ApplicationUser user, Issue issue)
Retrieves the remote issue links that link with the given JIRA issue.
RemoteIssueLinkService.RemoteIssueLinkResult update(ApplicationUser user, RemoteIssueLinkService.UpdateValidationResult updateValidationResult)
Updates the given remote issue link in the JIRA datastore, if the current user has permission to do so.
RemoteIssueLinkService.CreateValidationResult validateCreate(ApplicationUser user, RemoteIssueLink remoteIssueLink)
Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.CreateValidationResult that can be passed to the #create(User, CreateValidationResult) method.
RemoteIssueLinkService.DeleteValidationResult validateDelete(ApplicationUser user, Long remoteIssueLinkId)
Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.DeleteValidationResult that can be passed to the #delete(User, DeleteValidationResult) method.
RemoteIssueLinkService.DeleteByGlobalIdValidationResult validateDeleteByGlobalId(ApplicationUser user, Issue issue, String globalId)
Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.DeleteByGlobalIdValidationResult that can be passed to the #deleteByGlobalId(User, DeleteByGlobalIdValidationResult) method.
RemoteIssueLinkService.UpdateValidationResult validateUpdate(ApplicationUser user, RemoteIssueLink remoteIssueLink)
Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.UpdateValidationResult that can be passed to the #update(User, UpdateValidationResult) method.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.bc.issue.link.RemoteIssueLinkService

Public Constructors

public DefaultRemoteIssueLinkService (RemoteIssueLinkManager remoteIssueLinkManager, IssueService issueService, IssueManager issueManager, IssueLinkManager issueLinkManager, I18nHelper.BeanFactory beanFactory, PermissionManager permissionManager)

Public Methods

public RemoteIssueLinkService.RemoteIssueLinkResult create (ApplicationUser user, RemoteIssueLinkService.CreateValidationResult createValidationResult)

Stores the given remote issue link in the JIRA datastore, if the current user has permission to do so.

Parameters
user user who the permission checks will be run against (can be null, indicating an anonymous user).
createValidationResult contains the remote issue link to store. This should have been created by the #validateCreate(User, RemoteIssueLink) method. The result must have isValid() return true. If false this method will throw an IllegalStateException.
Returns
  • a result object containing the persisted RemoteIssueLink if all went well. If there was an error creating the remote issue link then the remote issue link will be null and the error collection will contain details of what went wrong.

public void delete (ApplicationUser user, RemoteIssueLinkService.DeleteValidationResult deleteValidationResult)

Deletes the remote issue link with the given id from the JIRA datastore, if the current user has permission to do so.

Parameters
user user user who the permission checks will be run against (can be null, indicating an anonymous user).
deleteValidationResult contains the remote issue link id to delete. This should have been created by the #validateDelete(User, Long) method. The result must have isValid() return true. If false this method will throw an IllegalStateException.

public void deleteByGlobalId (ApplicationUser user, RemoteIssueLinkService.DeleteByGlobalIdValidationResult validationResult)

Deletes the remote issue link that links with the given JIRA issue and has the given global id, if the current user has permission to do so.

Parameters
user user user who the permission checks will be run against (can be null, indicating an anonymous user).
validationResult contains the remote issue link id to delete. This should have been created by the #validateDeleteByGlobalId(User, Issue, String) method. The result must have isValid() return true. If false this method will throw an IllegalStateException.

public RemoteIssueLinkService.RemoteIssueLinkListResult findRemoteIssueLinksByGlobalId (ApplicationUser user, Collection<String> globalIds)

Retrieves the list of remote issue links that have any of the given globalIds.

Parameters
user user who the permission checks will be run against (can be null, indicating an anonymous user).
globalIds the globalIds to get the remote issue links for. Should not contain null values.
Returns
  • a result object containing a List of RemoteIssueLinks if all went well. If no remote issue links are stored with any of the given globalIds, the list will be empty. If there was an error the remote issue links list will be null and the error collection will contain details of what went wrong. Some possible error cases include the given collection of globalIds is empty, issue linking being disabled, the user not having permissions, or any of the globalIds is null. BROWSE permission for the linked issue.

public RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLink (ApplicationUser user, Long remoteIssueLinkId)

Retrieves the remote issue link with the given id.

Parameters
user who the permission checks will be run against (can be null, indicating an anonymous user).
remoteIssueLinkId the database ID of the remote issue link
Returns
  • a result object containing a RemoteIssueLink if all went well. If there was an error the remote issue link will be null and the error collection will contain details of what went wrong. Some possible error cases include a remote issue link with the given id not existing, issue linking being disabled, or the user not having BROWSE permission for the linked issue.

public RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLinkByGlobalId (ApplicationUser user, Issue issue, String globalId)

Retrieves the remote issue link that links with the given JIRA issue and has the given globalId.

Parameters
user user who the permission checks will be run against (can be null, indicating an anonymous user).
issue the issue to get the remote issue link for
globalId the globalId to get the remote issue link for
Returns
  • a result object containing a RemoteIssueLink if all went well. If there was an error the remote issue link will be null and the error collection will contain details of what went wrong. Some possible error cases include a remote issue link with the given globalId not existing, issue linking being disabled, or the user not having BROWSE permission for the linked issue.

public RemoteIssueLinkService.RemoteIssueLinkListResult getRemoteIssueLinksForIssue (ApplicationUser user, Issue issue)

Retrieves the remote issue links that link with the given JIRA issue.

Parameters
user user who the permission checks will be run against (can be null, indicating an anonymous user).
issue the issue to get the remote issue links for
Returns
  • a result object containing a List of RemoteIssueLinks if all went well. If no remote issue links are stored against the issue, the list will be empty. If there was an error the remote issue links list will be null and the error collection will contain details of what went wrong. Some possible error cases include the given issue not existing, linking being disabled, or the user not having BROWSE permission for the linked issue.

public RemoteIssueLinkService.RemoteIssueLinkResult update (ApplicationUser user, RemoteIssueLinkService.UpdateValidationResult updateValidationResult)

Updates the given remote issue link in the JIRA datastore, if the current user has permission to do so.

Parameters
user user user who the permission checks will be run against (can be null, indicating an anonymous user).
updateValidationResult contains the remote issue link to update. This should have been created by the #validateUpdate(User, RemoteIssueLink) method. The result must have isValid() return true. If false this method will throw an IllegalStateException. The remote issue link is updated using all of the values in this object. Null values are written as null, and must adhere to the required field constraints.
Returns
  • a result object containing the updated RemoteIssueLink if all went well. If there was an error updating the remote issue link then the remote issue link will be null and the error collection will contain details of what went wrong.

public RemoteIssueLinkService.CreateValidationResult validateCreate (ApplicationUser user, RemoteIssueLink remoteIssueLink)

Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.CreateValidationResult that can be passed to the #create(User, CreateValidationResult) method.

If any validation fails the result will contain a null RemoteIssueLink.

Parameters
user user who the permission checks will be run against (can be null, indicating an anonymous user).
remoteIssueLink the remote issue link to create
Returns
  • a CreateValidationResult, if all validation and permission passes it will contains a validated RemoteIssueLink, otherwise the RemoteIssueLink will be null. The result also contains an error collection that will contain any error messages that may have been generated when performing the operation.

public RemoteIssueLinkService.DeleteValidationResult validateDelete (ApplicationUser user, Long remoteIssueLinkId)

Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.DeleteValidationResult that can be passed to the #delete(User, DeleteValidationResult) method.

Parameters
user who the permission checks will be run against (can be null, indicating an anonymous user).
remoteIssueLinkId the id of the remote issue link to delete
Returns
  • a DeleteValidationResult, if all validation and permission passes it will contains a validated remote issue link id, otherwise the remote issue link id will be null.

public RemoteIssueLinkService.DeleteByGlobalIdValidationResult validateDeleteByGlobalId (ApplicationUser user, Issue issue, String globalId)

Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.DeleteByGlobalIdValidationResult that can be passed to the #deleteByGlobalId(User, DeleteByGlobalIdValidationResult) method.

Parameters
user who the permission checks will be run against (can be null, indicating an anonymous user).
issue the issue to get the remote issue link for
globalId the global id to get the remote issue link for
Returns
  • a DeleteValidationResult, if all validation and permission passes it will contains a validated remote issue link global id, otherwise the remote issue link global id will be null.

public RemoteIssueLinkService.UpdateValidationResult validateUpdate (ApplicationUser user, RemoteIssueLink remoteIssueLink)

Validates parameters and checks permissions, and if all checks pass it will create a RemoteIssueLinkService.UpdateValidationResult that can be passed to the #update(User, UpdateValidationResult) method.

Remote link are updated using all of the values in the given remote issue link object. Null values are written as null, and must adhere to the required field constraints.

If any validation fails the result will contain a null RemoteIssueLink.

Parameters
user user who the permission checks will be run against (can be null, indicating an anonymous user).
remoteIssueLink the remote issue link to update
Returns
  • an UpdateValidationResult, if all validation and permission passes it will contains a validated RemoteIssueLink, otherwise the RemoteIssueLink will be null. The result also contains an error collection that will contain any error messages that may have been generated when performing the operation.