@ExperimentalApi public interface

EntityPropertyService

com.atlassian.jira.entity.property.EntityPropertyService<T extends com.atlassian.jira.entity.WithId>
Known Indirect Subclasses

@ExperimentalApi

This interface is considered usable by external developers but its contracts have not stabilized.

Experimental APIs may be changed at any time before being marked @Internal or @PublicApi.

Class Overview

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.

Summary

Nested Classes
class EntityPropertyService.DeletePropertyValidationResult  
class EntityPropertyService.EntityPropertyInput Tuple with property value, property key, entity id and entity name, which will be persisted by the service. 
class EntityPropertyService.PropertyInput The key-value pair associated to the entity. 
class EntityPropertyService.PropertyKeys<E>  
class EntityPropertyService.PropertyResult  
class EntityPropertyService.PropertyServiceResult  
class EntityPropertyService.SetPropertyValidationResult  
Public Methods
void deleteProperty(ApplicationUser user, EntityPropertyService.DeletePropertyValidationResult validationResult)
Removes the entity property with specified entity's id and entity's property key.
PropertyKeys<T> getPropertiesKeys(ApplicationUser user, Long entityId, EntityPropertyOptions options)
Returns the properties keys associated with the specified entity.
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 getProperty(ApplicationUser user, Long entityId, String propertyKey, EntityPropertyOptions options)
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, EntityPropertyOptions options)
Check if it is possible to remove the entity property with specified entity's id and entity's property key.
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.
ErrorCollection validatePropertyInput(EntityPropertyService.PropertyInput propertyInput)
Validates the property's key and property's value without permission checking.
EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user, Long entityId, EntityPropertyService.PropertyInput propertyInput, EntityPropertyOptions options)
Checks if the provided entity's property is valid.
EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user, Long entityId, EntityPropertyService.PropertyInput propertyInput)
Checks if the provided entity's property is valid.

Public Methods

public void deleteProperty (ApplicationUser user, 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.

public PropertyKeys<T> getPropertiesKeys (ApplicationUser user, Long entityId, EntityPropertyOptions options)

Returns the properties keys associated with the specified entity.

This method checks 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.
options options to skip permission while performing the validation.
Returns
  • the list of properties keys and associated entity or a collection with errors.

public PropertyKeys<T> getPropertiesKeys (ApplicationUser user, 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.

public EntityPropertyService.PropertyResult getProperty (ApplicationUser user, Long entityId, 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 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.
propertyKey the key of the entity's property.
Returns
  • the chosen property of the entity if found or the error collection.

public EntityPropertyService.PropertyResult getProperty (ApplicationUser user, Long entityId, String propertyKey, EntityPropertyOptions options)

Returns the JSON property with the specified key from specified entity.

This method checks 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.
options options to skip permission while performing the validation.
Returns
  • the chosen property of the entity if found or the error collection.

public EntityPropertyService.PropertyResult setProperty (ApplicationUser user, 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.

public EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty (ApplicationUser user, Long entityId, String propertyKey, EntityPropertyOptions options)

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 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.
options options to skip permission while performing the validation.
Returns
  • either entity ready to be removed or collection of errors.

public 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.

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.

public ErrorCollection validatePropertyInput (EntityPropertyService.PropertyInput propertyInput)

Validates the property's key and property's value without permission checking.

Parameters
propertyInput the key and value of the property.
Returns
  • all validation errors or empty error collection.

public EntityPropertyService.SetPropertyValidationResult validateSetProperty (ApplicationUser user, Long entityId, EntityPropertyService.PropertyInput propertyInput, EntityPropertyOptions options)

Checks if the provided entity's property is valid.

This method checks if the entity with which the property will be associated exists. 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.
options options to skip permission while performing the validation.
Returns
  • either entity ready to be persisted in DB or collection of errors.

public EntityPropertyService.SetPropertyValidationResult validateSetProperty (ApplicationUser user, Long entityId, 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.