com.atlassian.jira.bc.project.version.remotelink
Class RemoteVersionLinkServiceImpl

java.lang.Object
  extended by com.atlassian.jira.entity.remotelink.AbstractRemoteEntityLinkService
      extended by com.atlassian.jira.bc.project.version.remotelink.RemoteVersionLinkServiceImpl
All Implemented Interfaces:
RemoteVersionLinkService

public class RemoteVersionLinkServiceImpl
extends AbstractRemoteEntityLinkService
implements RemoteVersionLinkService

Since:
v6.1.1

Nested Class Summary
 
Nested classes/interfaces inherited from interface com.atlassian.jira.bc.project.version.remotelink.RemoteVersionLinkService
RemoteVersionLinkService.DeleteValidationResult, RemoteVersionLinkService.PutValidationResult, RemoteVersionLinkService.RemoteVersionLinkListResult, RemoteVersionLinkService.RemoteVersionLinkResult
 
Field Summary
static String REMOTE_VERSION_LINK
          Entity name
 
Fields inherited from class com.atlassian.jira.entity.remotelink.AbstractRemoteEntityLinkService
entityName, jsonEntityPropertyManager, MSG_APPLICATION_NAME, MSG_APPLICATION_TYPE, MSG_DOES_NOT_EXIST, MSG_ERROR_CREATING, MSG_ERROR_REMOVING, MSG_ERROR_UPDATING, MSG_FIELD_TOO_LONG, MSG_GLOBAL_ID, MSG_INVALID_JSON, MSG_INVALID_URI, MSG_IS_REQUIRED, MSG_TITLE, MSG_URL
 
Constructor Summary
RemoteVersionLinkServiceImpl(JsonEntityPropertyManager jsonEntityPropertyManager, PermissionManager permissionManager, VersionManager versionManager, com.atlassian.event.api.EventPublisher eventPublisher, I18nHelper.BeanFactory i18nFactory)
           
 
Method Summary
 void delete(ApplicationUser user, RemoteVersionLinkService.DeleteValidationResult deleteValidationResult)
          Deletes the remote version link that links with the given JIRA version and has the given global id, if the current user has permission to do so.
 RemoteVersionLinkService.RemoteVersionLinkResult getRemoteVersionLinkByVersionIdAndGlobalId(ApplicationUser user, Long versionId, String globalId)
          Retrieves the remote version link that links with the given JIRA version and has the given globalId.
 Long getRemoteVersionLinkCountByGlobalId(String globalId)
          Retrieves the count of remote version links that are associated with the given remote resource.
 RemoteVersionLinkService.RemoteVersionLinkListResult getRemoteVersionLinksByGlobalId(ApplicationUser user, String globalId)
          Retrieves the remote version links that are associated with the given remote resource.
 RemoteVersionLinkService.RemoteVersionLinkListResult getRemoteVersionLinksByVersionId(ApplicationUser user, Long versionId)
          Retrieves all of the remote version links that link with the given JIRA version.
 void onVersionDeleted(VersionDeleteEvent event)
           
 RemoteVersionLinkService.RemoteVersionLinkResult put(ApplicationUser user, RemoteVersionLinkService.PutValidationResult putValidationResult)
          Creates a remote version link using the validated request returned by a prior call to RemoteVersionLinkService.validatePut(ApplicationUser, Long, String, String)
 RemoteVersionLinkService.DeleteValidationResult validateDelete(ApplicationUser user, Long versionId, String globalId)
          Validates parameters and checks permissions, and if all checks pass it will create a RemoteVersionLinkService.DeleteValidationResult that can be passed to the RemoteVersionLinkService.delete(ApplicationUser, DeleteValidationResult) method to delete the specified remote version link.
 RemoteVersionLinkService.DeleteValidationResult validateDeleteByVersionId(ApplicationUser user, Long versionId)
          Validates parameters and checks permissions, and if all checks pass it will create a RemoteVersionLinkService.DeleteValidationResult that can be passed to the RemoteVersionLinkService.delete(ApplicationUser, DeleteValidationResult) method to delete all remote version links for the specified version.
 RemoteVersionLinkService.PutValidationResult validatePut(ApplicationUser user, Long versionId, String globalId, String json)
          Validates parameters and checks permissions, and if all checks pass it will create a RemoteVersionLinkService.PutValidationResult that can be passed to the RemoteVersionLinkService.put(ApplicationUser, PutValidationResult) method.
 
Methods inherited from class com.atlassian.jira.entity.remotelink.AbstractRemoteEntityLinkService
getEntityPropertyValue, putEntityPropertyDryRun, putEntityPropertyValue, verifyNotBlank, verifyNotNull
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

REMOTE_VERSION_LINK

public static final String REMOTE_VERSION_LINK
Entity name

See Also:
Constant Field Values
Constructor Detail

RemoteVersionLinkServiceImpl

public RemoteVersionLinkServiceImpl(JsonEntityPropertyManager jsonEntityPropertyManager,
                                    PermissionManager permissionManager,
                                    VersionManager versionManager,
                                    com.atlassian.event.api.EventPublisher eventPublisher,
                                    I18nHelper.BeanFactory i18nFactory)
Method Detail

getRemoteVersionLinksByVersionId

public RemoteVersionLinkService.RemoteVersionLinkListResult getRemoteVersionLinksByVersionId(ApplicationUser user,
                                                                                             Long versionId)
Description copied from interface: RemoteVersionLinkService
Retrieves all of the remote version links that link with the given JIRA version.

Specified by:
getRemoteVersionLinksByVersionId in interface RemoteVersionLinkService
Parameters:
user - user who the permission checks will be run against (may be null, indicating an anonymous user).
versionId - the ID of the version to get the remote version links for
Returns:
a result object containing a List of RemoteVersionLinks if all went well. If no remote version links are stored against the version, then the list will be empty. If there was an error, the remote version links list will be null and the error collection will contain details of what went wrong. Some possible error cases include the given version not existing, or the user not having Permissions.BROWSE permission for the version's project.

getRemoteVersionLinksByGlobalId

public RemoteVersionLinkService.RemoteVersionLinkListResult getRemoteVersionLinksByGlobalId(ApplicationUser user,
                                                                                            String globalId)
Description copied from interface: RemoteVersionLinkService
Retrieves the remote version links that are associated with the given remote resource.

Specified by:
getRemoteVersionLinksByGlobalId in interface RemoteVersionLinkService
Parameters:
user - user who the permission checks will be run against (may be null, indicating an anonymous user).
globalId - the globalId to get the remote version links for
Returns:
a result object containing a List of RemoteVersionLinks if all went well. If no remote version links are stored against the global ID, then the list will be empty. If there was an error, the remote version links list will be null and the error collection will contain details of what went wrong.

getRemoteVersionLinkCountByGlobalId

public Long getRemoteVersionLinkCountByGlobalId(String globalId)
Description copied from interface: RemoteVersionLinkService
Retrieves the count of remote version links that are associated with the given remote resource. This method does not perform a permission check.

Specified by:
getRemoteVersionLinkCountByGlobalId in interface RemoteVersionLinkService
Parameters:
globalId - the globalId to get the remote version links for
Returns:
The count of RemoteVersionLinks associated with the given remote resource global id.

getRemoteVersionLinkByVersionIdAndGlobalId

public RemoteVersionLinkService.RemoteVersionLinkResult getRemoteVersionLinkByVersionIdAndGlobalId(ApplicationUser user,
                                                                                                   Long versionId,
                                                                                                   String globalId)
Description copied from interface: RemoteVersionLinkService
Retrieves the remote version link that links with the given JIRA version and has the given globalId.

Specified by:
getRemoteVersionLinkByVersionIdAndGlobalId in interface RemoteVersionLinkService
Parameters:
user - user who the permission checks will be run against (may be null, indicating an anonymous user).
versionId - the ID of the version to get the remote version link for
globalId - the globalId to get the remote version link for
Returns:
a result object containing a RemoteVersionLink if all went well. If there was an error the remote version link will be null and the error collection will contain details of what went wrong. Some possible error cases include a remote version link with the given globalId not existing or the user not having Permissions.BROWSE permission for the version's project.

validatePut

public RemoteVersionLinkService.PutValidationResult validatePut(ApplicationUser user,
                                                                Long versionId,
                                                                String globalId,
                                                                String json)
Description copied from interface: RemoteVersionLinkService
Validates parameters and checks permissions, and if all checks pass it will create a RemoteVersionLinkService.PutValidationResult that can be passed to the RemoteVersionLinkService.put(ApplicationUser, PutValidationResult) method.

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

Specified by:
validatePut in interface RemoteVersionLinkService
Parameters:
user - user who the permission checks will be run against (may be null, indicating an anonymous user).
versionId - the ID of the version for which to create/update this remote version link
globalId - the global id to associate with the remote version link. If this is null, then the JSON value will be checked for a field with RemoteEntityLink.GLOBAL_ID as the key. If that does not exist, then a new global ID is generated. After a successful call to RemoteVersionLinkService.put(ApplicationUser, PutValidationResult), the RemoteVersionLinkService.RemoteVersionLinkResult that it returns can be used to obtain the newly created RemoteVersionLink
json - the JSON representation of the remote version link
Returns:
a RemoteVersionLinkService.PutValidationResult. If all validation and permission checks pass, then it will contain the information required to create the link; otherwise, the result will contain an error collection with any error messages that may have been generated when performing the operation.

put

public RemoteVersionLinkService.RemoteVersionLinkResult put(ApplicationUser user,
                                                            RemoteVersionLinkService.PutValidationResult putValidationResult)
Description copied from interface: RemoteVersionLinkService
Creates a remote version link using the validated request returned by a prior call to RemoteVersionLinkService.validatePut(ApplicationUser, Long, String, String)

Specified by:
put in interface RemoteVersionLinkService
Parameters:
user - user who the permission checks will be run against (may be null, indicating an anonymous user).
putValidationResult - contains the remote version link to store. This should have been created by the RemoteVersionLinkService.validatePut(ApplicationUser, Long, String, String) method. The result must be valid.
Returns:
a result object containing the persisted String if all went well. If there was an error creating the remote version link then the remote version link will be null and the error collection will contain details of what went wrong.

validateDelete

public RemoteVersionLinkService.DeleteValidationResult validateDelete(ApplicationUser user,
                                                                      Long versionId,
                                                                      String globalId)
Description copied from interface: RemoteVersionLinkService
Validates parameters and checks permissions, and if all checks pass it will create a RemoteVersionLinkService.DeleteValidationResult that can be passed to the RemoteVersionLinkService.delete(ApplicationUser, DeleteValidationResult) method to delete the specified remote version link.

Specified by:
validateDelete in interface RemoteVersionLinkService
Parameters:
user - who the permission checks will be run against (can be null, indicating an anonymous user).
versionId - the ID of the version associated with the remote version link to be deleted
globalId - the global id associated with the remote version link to be deleted
Returns:
a DeleteValidationResult, if all validation and permission passes it will contain the information relevant to the deletion; otherwise, the error collection will contain the errors generated during validation.

validateDeleteByVersionId

public RemoteVersionLinkService.DeleteValidationResult validateDeleteByVersionId(ApplicationUser user,
                                                                                 Long versionId)
Description copied from interface: RemoteVersionLinkService
Validates parameters and checks permissions, and if all checks pass it will create a RemoteVersionLinkService.DeleteValidationResult that can be passed to the RemoteVersionLinkService.delete(ApplicationUser, DeleteValidationResult) method to delete all remote version links for the specified version.

Specified by:
validateDeleteByVersionId in interface RemoteVersionLinkService
Parameters:
user - who the permission checks will be run against (can be null, indicating an anonymous user).
versionId - the version associated with the remote version links to be deleted
Returns:
a DeleteValidationResult, if all validation and permission passes it will contain the information relevant to the deletion; otherwise, the error collection will contain the errors generated during validation.

delete

public void delete(ApplicationUser user,
                   RemoteVersionLinkService.DeleteValidationResult deleteValidationResult)
Description copied from interface: RemoteVersionLinkService
Deletes the remote version link that links with the given JIRA version and has the given global id, if the current user has permission to do so.

Specified by:
delete in interface RemoteVersionLinkService
Parameters:
user - user user who the permission checks will be run against (can be null, indicating an anonymous user).
deleteValidationResult - contains the remote version link id to delete. This should have been created by one of the validateDeleteBy... methods. The result must be valid.

onVersionDeleted

@EventListener
public void onVersionDeleted(VersionDeleteEvent event)


Copyright © 2002-2014 Atlassian. All Rights Reserved.