@ExperimentalApi public class

BaseEntityPropertyService

extends Object
implements EntityPropertyService<T extends WithId>
java.lang.Object
   ↳ com.atlassian.jira.entity.property.BaseEntityPropertyService<E extends com.atlassian.jira.entity.WithId>
Known Direct Subclasses

@ExperimentalApi

This class 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 base implementation of EntityPropertyService.

Summary

Public Constructors
BaseEntityPropertyService(JsonEntityPropertyManager jsonEntityPropertyManager, I18nHelper i18n, EventPublisher eventPublisher, EntityPropertyHelper<E> entityPropertyHelper)
Public Methods
void deleteProperty(ApplicationUser user, EntityPropertyService.DeletePropertyValidationResult validationResult)
Removes the entity property with specified entity's id and entity's property key.
PropertyKeys<E> getPropertiesKeys(ApplicationUser user, Long entityId, EntityPropertyOptions options)
Returns the properties keys associated with the specified entity.
PropertyKeys<E> getPropertiesKeys(ApplicationUser user, Long entityId)
Returns the properties keys associated with the 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 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, 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.
Protected Methods
PropertyKeys<E> getPropertiesKeys(ApplicationUser user, Option<E> entity, EntityPropertyOptions options)
EntityPropertyService.PropertyResult getProperty(ApplicationUser user, Option<E> entity, String propertyKey, EntityPropertyOptions options)
EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty(ApplicationUser user, Option<E> entity, String propertyKey, EntityPropertyOptions options)
EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user, Option<E> entity, EntityPropertyService.PropertyInput propertyInput, EntityPropertyOptions options)
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.entity.property.EntityPropertyService

Public Constructors

public BaseEntityPropertyService (JsonEntityPropertyManager jsonEntityPropertyManager, I18nHelper i18n, EventPublisher eventPublisher, EntityPropertyHelper<E> entityPropertyHelper)

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

Protected Methods

protected PropertyKeys<E> getPropertiesKeys (ApplicationUser user, Option<E> entity, EntityPropertyOptions options)

protected EntityPropertyService.PropertyResult getProperty (ApplicationUser user, Option<E> entity, String propertyKey, EntityPropertyOptions options)

protected EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty (ApplicationUser user, Option<E> entity, String propertyKey, EntityPropertyOptions options)

protected EntityPropertyService.SetPropertyValidationResult validateSetProperty (ApplicationUser user, Option<E> entity, EntityPropertyService.PropertyInput propertyInput, EntityPropertyOptions options)