Package com.atlassian.jira.bc.issue.link
Class DefaultRemoteIssueLinkService
java.lang.Object
com.atlassian.jira.bc.issue.link.DefaultRemoteIssueLinkService
- All Implemented Interfaces:
RemoteIssueLinkService
The default implementation of the
RemoteIssueLinkService.- Since:
- v5.0
-
Nested Class Summary
Nested classes/interfaces inherited from interface com.atlassian.jira.bc.issue.link.RemoteIssueLinkService
RemoteIssueLinkService.CreateValidationResult, RemoteIssueLinkService.DeleteByGlobalIdValidationResult, RemoteIssueLinkService.DeleteValidationResult, RemoteIssueLinkService.RemoteIssueLinkListResult, RemoteIssueLinkService.RemoteIssueLinkResult, RemoteIssueLinkService.UpdateValidationResult -
Constructor Summary
ConstructorsConstructorDescriptionDefaultRemoteIssueLinkService(RemoteIssueLinkManager remoteIssueLinkManager, IssueService issueService, IssueManager issueManager, IssueLinkManager issueLinkManager, I18nHelper.BeanFactory beanFactory, PermissionManager permissionManager) -
Method Summary
Modifier and TypeMethodDescriptioncreate(ApplicationUser user, RemoteIssueLinkService.CreateValidationResult createValidationResult) Stores the given remote issue link in the JIRA datastore, if the current user has permission to do so.voiddelete(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.voiddeleteByGlobalId(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.findRemoteIssueLinksByGlobalId(ApplicationUser user, Collection<String> globalIds) Retrieves the list of remote issue links that have any of the given globalIds.getRemoteIssueLink(ApplicationUser user, Long remoteIssueLinkId) Retrieves the remote issue link with the given id.getRemoteIssueLinkByGlobalId(ApplicationUser user, Issue issue, String globalId) Retrieves the remote issue link that links with the given JIRA issue and has the given globalId.getRemoteIssueLinksForIssue(ApplicationUser user, Issue issue) Retrieves the remote issue links that link with the given JIRA issue.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.validateCreate(ApplicationUser user, RemoteIssueLink remoteIssueLink) Validates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.CreateValidationResultthat can be passed to the#create(User, CreateValidationResult)method.validateDelete(ApplicationUser user, Long remoteIssueLinkId) Validates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.DeleteValidationResultthat can be passed to the#delete(User, DeleteValidationResult)method.validateDeleteByGlobalId(ApplicationUser user, Issue issue, String globalId) Validates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.DeleteByGlobalIdValidationResultthat can be passed to the#deleteByGlobalId(User, DeleteByGlobalIdValidationResult)method.validateUpdate(ApplicationUser user, RemoteIssueLink remoteIssueLink) Validates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.UpdateValidationResultthat can be passed to the#update(User, UpdateValidationResult)method.
-
Constructor Details
-
DefaultRemoteIssueLinkService
public DefaultRemoteIssueLinkService(RemoteIssueLinkManager remoteIssueLinkManager, IssueService issueService, IssueManager issueManager, IssueLinkManager issueLinkManager, I18nHelper.BeanFactory beanFactory, PermissionManager permissionManager)
-
-
Method Details
-
getRemoteIssueLink
public RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLink(ApplicationUser user, Long remoteIssueLinkId) Description copied from interface:RemoteIssueLinkServiceRetrieves the remote issue link with the given id.- Specified by:
getRemoteIssueLinkin interfaceRemoteIssueLinkService- 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
RemoteIssueLinkif 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 havingPermissions.BROWSEpermission for the linked issue.
-
getRemoteIssueLinksForIssue
public RemoteIssueLinkService.RemoteIssueLinkListResult getRemoteIssueLinksForIssue(ApplicationUser user, Issue issue) Description copied from interface:RemoteIssueLinkServiceRetrieves the remote issue links that link with the given JIRA issue.- Specified by:
getRemoteIssueLinksForIssuein interfaceRemoteIssueLinkService- 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 havingPermissions.BROWSEpermission for the linked issue.
-
getRemoteIssueLinkByGlobalId
public RemoteIssueLinkService.RemoteIssueLinkResult getRemoteIssueLinkByGlobalId(ApplicationUser user, Issue issue, String globalId) Description copied from interface:RemoteIssueLinkServiceRetrieves the remote issue link that links with the given JIRA issue and has the given globalId.- Specified by:
getRemoteIssueLinkByGlobalIdin interfaceRemoteIssueLinkService- 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 forglobalId- the globalId to get the remote issue link for- Returns:
- a result object containing a
RemoteIssueLinkif 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 havingPermissions.BROWSEpermission for the linked issue.
-
findRemoteIssueLinksByGlobalId
public RemoteIssueLinkService.RemoteIssueLinkListResult findRemoteIssueLinksByGlobalId(ApplicationUser user, Collection<String> globalIds) Description copied from interface:RemoteIssueLinkServiceRetrieves the list of remote issue links that have any of the given globalIds.- Specified by:
findRemoteIssueLinksByGlobalIdin interfaceRemoteIssueLinkService- 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.Permissions.BROWSEpermission for the linked issue.
-
validateCreate
public RemoteIssueLinkService.CreateValidationResult validateCreate(ApplicationUser user, RemoteIssueLink remoteIssueLink) Description copied from interface:RemoteIssueLinkServiceValidates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.CreateValidationResultthat can be passed to the#create(User, CreateValidationResult)method.If any validation fails the result will contain a null RemoteIssueLink.
- Specified by:
validateCreatein interfaceRemoteIssueLinkService- 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
public RemoteIssueLinkService.RemoteIssueLinkResult create(ApplicationUser user, RemoteIssueLinkService.CreateValidationResult createValidationResult) Description copied from interface:RemoteIssueLinkServiceStores the given remote issue link in the JIRA datastore, if the current user has permission to do so.- Specified by:
createin interfaceRemoteIssueLinkService- 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 haveServiceResult.isValid()return true. If false this method will throw an IllegalStateException.- Returns:
- a result object containing the persisted
RemoteIssueLinkif 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
public RemoteIssueLinkService.UpdateValidationResult validateUpdate(ApplicationUser user, RemoteIssueLink remoteIssueLink) Description copied from interface:RemoteIssueLinkServiceValidates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.UpdateValidationResultthat 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.
- Specified by:
validateUpdatein interfaceRemoteIssueLinkService- 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
public RemoteIssueLinkService.RemoteIssueLinkResult update(ApplicationUser user, RemoteIssueLinkService.UpdateValidationResult updateValidationResult) Description copied from interface:RemoteIssueLinkServiceUpdates the given remote issue link in the JIRA datastore, if the current user has permission to do so.- Specified by:
updatein interfaceRemoteIssueLinkService- 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 haveServiceResult.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
RemoteIssueLinkif 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
public RemoteIssueLinkService.DeleteValidationResult validateDelete(ApplicationUser user, Long remoteIssueLinkId) Description copied from interface:RemoteIssueLinkServiceValidates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.DeleteValidationResultthat can be passed to the#delete(User, DeleteValidationResult)method.- Specified by:
validateDeletein interfaceRemoteIssueLinkService- 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
public void delete(ApplicationUser user, RemoteIssueLinkService.DeleteValidationResult deleteValidationResult) Description copied from interface:RemoteIssueLinkServiceDeletes the remote issue link with the given id from the JIRA datastore, if the current user has permission to do so.- Specified by:
deletein interfaceRemoteIssueLinkService- 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 haveServiceResult.isValid()return true. If false this method will throw an IllegalStateException.
-
validateDeleteByGlobalId
public RemoteIssueLinkService.DeleteByGlobalIdValidationResult validateDeleteByGlobalId(ApplicationUser user, Issue issue, String globalId) Description copied from interface:RemoteIssueLinkServiceValidates parameters and checks permissions, and if all checks pass it will create aRemoteIssueLinkService.DeleteByGlobalIdValidationResultthat can be passed to the#deleteByGlobalId(User, DeleteByGlobalIdValidationResult)method.- Specified by:
validateDeleteByGlobalIdin interfaceRemoteIssueLinkService- 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 forglobalId- 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
public void deleteByGlobalId(ApplicationUser user, RemoteIssueLinkService.DeleteByGlobalIdValidationResult validationResult) Description copied from interface:RemoteIssueLinkServiceDeletes 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.- Specified by:
deleteByGlobalIdin interfaceRemoteIssueLinkService- 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 haveServiceResult.isValid()return true. If false this method will throw an IllegalStateException.
-