com.atlassian.jira.bc.issue.link
Interface RemoteIssueLinkService

All Known Implementing Classes:
DefaultRemoteIssueLinkService

public interface RemoteIssueLinkService

This is used to perform create, update and delete operations in JIRA with remote issue links. This service's methods will make sure that when dealing with remote issue links that all of JIRA's business rules are enforced. This means that permissions and data validation will be checked, proper events will be fired, and notifications will be triggered.

Since:
v5.0

Nested Class Summary
static class RemoteIssueLinkService.CreateValidationResult
          Holds the information about validating a create remote issue link operation.
static class RemoteIssueLinkService.DeleteByGlobalIdValidationResult
          Holds the information about validating a delete remote issue link operation.
static class RemoteIssueLinkService.DeleteValidationResult
          Holds the information about validating a delete remote issue link operation.
static class RemoteIssueLinkService.RemoteIssueLinkListResult
          Holds the information about performing a remote issue link operation, when a list result is expected.
static class RemoteIssueLinkService.RemoteIssueLinkResult
          Holds the information about performing a remote issue link operation.
static class RemoteIssueLinkService.UpdateValidationResult
          Holds the information about validating an update remote issue link operation.
 
Method Summary
 RemoteIssueLinkService.RemoteIssueLinkResult create(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User user, RemoteIssueLinkService.DeleteByGlobalIdValidationResult deleteValidationResult)
          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.RemoteIssueLinkResult getRemoteIssueLink(com.atlassian.crowd.embedded.api.User user, Long remoteIssueLinkId)
          Retrieves the remote issue link with the given id.
 RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLinkByGlobalId(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User user, Issue issue)
          Retrieves the remote issue links that link with the given JIRA issue.
 RemoteIssueLinkService.RemoteIssueLinkResult update(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User 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(com.atlassian.crowd.embedded.api.User 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.
 

Method Detail

getRemoteIssueLink

RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLink(com.atlassian.crowd.embedded.api.User 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 Permissions.BROWSE permission for the linked issue.

getRemoteIssueLinksForIssue

RemoteIssueLinkService.RemoteIssueLinkListResult getRemoteIssueLinksForIssue(com.atlassian.crowd.embedded.api.User 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 Permissions.BROWSE permission for the linked issue.

getRemoteIssueLinkByGlobalId

RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLinkByGlobalId(com.atlassian.crowd.embedded.api.User 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 Permissions.BROWSE permission for the linked issue.

validateCreate

RemoteIssueLinkService.CreateValidationResult validateCreate(com.atlassian.crowd.embedded.api.User 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.

create

RemoteIssueLinkService.RemoteIssueLinkResult create(com.atlassian.crowd.embedded.api.User 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 ServiceResult.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.

validateUpdate

RemoteIssueLinkService.UpdateValidationResult validateUpdate(com.atlassian.crowd.embedded.api.User 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.

update

RemoteIssueLinkService.RemoteIssueLinkResult update(com.atlassian.crowd.embedded.api.User 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 ServiceResult.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.

validateDelete

RemoteIssueLinkService.DeleteValidationResult validateDelete(com.atlassian.crowd.embedded.api.User 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.

delete

void delete(com.atlassian.crowd.embedded.api.User 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 ServiceResult.isValid() return true. If false this method will throw an IllegalStateException.

validateDeleteByGlobalId

RemoteIssueLinkService.DeleteByGlobalIdValidationResult validateDeleteByGlobalId(com.atlassian.crowd.embedded.api.User 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.

deleteByGlobalId

void deleteByGlobalId(com.atlassian.crowd.embedded.api.User user,
                      RemoteIssueLinkService.DeleteByGlobalIdValidationResult deleteValidationResult)
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).
deleteValidationResult - contains the remote issue link id to delete. This should have been created by the validateDeleteByGlobalId(User, Issue, String) method. The result must have ServiceResult.isValid() return true. If false this method will throw an IllegalStateException.


Copyright © 2002-2012 Atlassian. All Rights Reserved.