@PublicApi public interface

EntityPropertyService

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

@PublicApi

This interface is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

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.
List<EntityProperty> getProperties(ApplicationUser user, Long entityId, List<String> propertyKeys)
Returns properties with specified keys.
List<EntityProperty> getProperties(ApplicationUser user, Long entityId)
Returns all properties.
PropertyKeys<T> getPropertiesKeys(ApplicationUser user, Long entityId)
Returns the properties keys associated with the specified entity.
PropertyKeys<T> getPropertiesKeys(ApplicationUser user, Long entityId, EntityPropertyOptions options)
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 List<EntityProperty> getProperties (ApplicationUser user, Long entityId, List<String> propertyKeys)

Returns properties with specified keys. Only properties that exist will be returned, non-existent keys are ignored. If the user does not have permissions to read properties of the entity, empty list will be returned.

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 properties are associated.
propertyKeys the keys of the requested properties
Returns
  • a list of entity properties

public List<EntityProperty> getProperties (ApplicationUser user, Long entityId)

Returns all properties. If the user does not have permissions to read properties of the entity, empty list will be returned.

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 properties are associated.
Returns
  • a list of entity properties

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