com.atlassian.jira.entity.property
Interface EntityPropertyService<T extends WithId>

All Known Subinterfaces:
EntityWithKeyPropertyService<T>, IssuePropertyService, ProjectPropertyService
All Known Implementing Classes:
BaseEntityPropertyService, BaseEntityWithKeyPropertyService, DefaultIssueEntityWithKeyPropertyService, DefaultProjectEntityWithKeyPropertyService, DelegatingEntityPropertyService, DelegatingEntityWithKeyPropertyService

@ExperimentalApi
public interface EntityPropertyService<T extends WithId>

The service used to add, update, retrieve and delete properties from entities. Each method of this service ensures that the user has permission to perform the operation. For each operation an appropriate event is published.

Since:
v6.2
See Also:
BaseEntityPropertyService

Nested Class Summary
static class EntityPropertyService.DeletePropertyValidationResult
           
static class EntityPropertyService.EntityPropertyInput
          Tuple with property value, property key, entity id and entity name, which will be persisted by the service.
static class EntityPropertyService.PropertyInput
          The key-value pair associated to the entity.
static class EntityPropertyService.PropertyKeys<E>
           
static class EntityPropertyService.PropertyResult
           
static class EntityPropertyService.PropertyServiceResult
           
static class EntityPropertyService.SetPropertyValidationResult
           
 
Method Summary
 void deleteProperty(ApplicationUser user, EntityPropertyService.DeletePropertyValidationResult validationResult)
          Removes the entity property with specified entity's id and entity's property key.
 EntityPropertyService.PropertyKeys<T> getPropertiesKeys(ApplicationUser user, Long entityId)
          Returns the properties keys associated with the specified entity.
 EntityPropertyService.PropertyResult getProperty(ApplicationUser user, Long entityId, String propertyKey)
          Returns the JSON property with the specified key from specified entity.
 EntityPropertyService.PropertyResult setProperty(ApplicationUser user, EntityPropertyService.SetPropertyValidationResult propertyValidationResult)
          Associates validated property with the entity.
 EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty(ApplicationUser user, Long entityId, String propertyKey)
          Check if it is possible to remove the entity property with specified entity's id and entity's property key.
 EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user, Long entityId, EntityPropertyService.PropertyInput propertyInput)
          Checks if the provided entity's property is valid.
 

Method Detail

validateSetProperty

EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user,
                                                                      @NotNull
                                                                      Long entityId,
                                                                      @NotNull
                                                                      EntityPropertyService.PropertyInput propertyInput)
Checks if the provided entity's property is valid.

This method checks if the entity with which the property will be associated exists and if the calling user has permissions to edit the entity. It validates if the property's key length is less then 255 characters. It also checks if the length of the property's value is less then 32,768.

Parameters:
user - who the permission checks will be run against (can be null, indicating anonymous user).
entityId - the id of the entity with which the property will be associated.
propertyInput - the pair of key and value which will be associated with the entity.
Returns:
either entity ready to be persisted in DB or collection of errors.

setProperty

EntityPropertyService.PropertyResult setProperty(ApplicationUser user,
                                                 @NotNull
                                                 EntityPropertyService.SetPropertyValidationResult propertyValidationResult)
Associates validated property with the entity. Upon successful set an instance of EntityPropertySetEvent is published.

Parameters:
user - who the permission checks will be run against (can be null, indicating anonymous user).
propertyValidationResult - validated entity property.
Returns:
the persisted entity property or the error collection.

validateDeleteProperty

EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty(ApplicationUser user,
                                                                            @NotNull
                                                                            Long entityId,
                                                                            @NotNull
                                                                            String propertyKey)
Check if it is possible to remove the entity property with specified entity's id and entity's property key.

This method checks if the calling user has permissions to edit the selected entity and if the property for given entity id and property key exists.

Parameters:
user - who the permission checks will be run against (can be null, indicating anonymous user).
entityId - the id of the entity with which the property is associated.
propertyKey - the key of the entity's property.
Returns:
either entity ready to be removed or collection of errors.

deleteProperty

void deleteProperty(ApplicationUser user,
                    @NotNull
                    EntityPropertyService.DeletePropertyValidationResult validationResult)
Removes the entity property with specified entity's id and entity's property key. Upon successful removal, EntityPropertyDeletedEvent is published.

Parameters:
user - who the permission checks will be run against (can be null, indicating anonymous user).
validationResult - validation results of entity's property removal.

getProperty

EntityPropertyService.PropertyResult getProperty(ApplicationUser user,
                                                 @NotNull
                                                 Long entityId,
                                                 @NotNull
                                                 String propertyKey)
Returns the JSON property with the specified key from specified entity.

This method checks if the calling user has permissions to browse the entitys and if the entity with given id exists.

Parameters:
user - who the permission checks will be run against (can be null, indicating anonymous user).
entityId - the id of the entity with which the property is associated.
propertyKey - the key of the entity's property.
Returns:
the chosen property of the entity if found or the error collection.

getPropertiesKeys

EntityPropertyService.PropertyKeys<T> getPropertiesKeys(ApplicationUser user,
                                                        @NotNull
                                                        Long entityId)
Returns the properties keys associated with the specified entity.

This method checks if the calling user has permissions to browse the entities and if the entity with given id exists.

Parameters:
user - who the permission checks will be run against (can be null, indicating anonymous user).
entityId - the id of the entity with which the property is associated.
Returns:
the list of properties keys and associated entity or a collection with errors.


Copyright © 2002-2014 Atlassian. All Rights Reserved.