Class DelegatingEntityPropertyService<E extends WithId>

java.lang.Object
com.atlassian.jira.entity.property.DelegatingEntityPropertyService<E>
All Implemented Interfaces:
EntityPropertyService<E>
Direct Known Subclasses:
DelegatingEntityWithKeyPropertyService

public class DelegatingEntityPropertyService<E extends WithId> extends Object implements EntityPropertyService<E>
Delegates execution of methods from EntityPropertyService to an instance of BaseEntityPropertyService.
Since:
v6.2
  • Constructor Details

  • Method Details

    • validatePropertyInput

      public ErrorCollection validatePropertyInput(EntityPropertyService.PropertyInput propertyInput)
      Description copied from interface: EntityPropertyService
      Validates the property's key and property's value without permission checking.
      Specified by:
      validatePropertyInput in interface EntityPropertyService<E extends WithId>
      Parameters:
      propertyInput - the key and value of the property.
      Returns:
      all validation errors or empty error collection.
    • validateSetProperty

      public EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user, @Nonnull Long entityId, @Nonnull EntityPropertyService.PropertyInput propertyInput)
      Description copied from interface: EntityPropertyService
      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.

      Specified by:
      validateSetProperty in interface EntityPropertyService<E extends WithId>
      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.
    • validateSetProperty

      public EntityPropertyService.SetPropertyValidationResult validateSetProperty(ApplicationUser user, @Nonnull Long entityId, @Nonnull EntityPropertyService.PropertyInput propertyInput, @Nonnull EntityPropertyOptions options)
      Description copied from interface: EntityPropertyService
      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.

      Specified by:
      validateSetProperty in interface EntityPropertyService<E extends WithId>
      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.
    • setProperty

      Description copied from interface: EntityPropertyService
      Associates validated property with the entity. Upon successful set an instance of EntityPropertySetEvent is published.
      Specified by:
      setProperty in interface EntityPropertyService<E extends WithId>
      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

      public EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty(ApplicationUser user, @Nonnull Long entityId, @Nonnull String propertyKey)
      Description copied from interface: EntityPropertyService
      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.

      Specified by:
      validateDeleteProperty in interface EntityPropertyService<E extends WithId>
      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.
    • validateDeleteProperty

      public EntityPropertyService.DeletePropertyValidationResult validateDeleteProperty(ApplicationUser user, @Nonnull Long entityId, @Nonnull String propertyKey, @Nonnull EntityPropertyOptions options)
      Description copied from interface: EntityPropertyService
      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.

      Specified by:
      validateDeleteProperty in interface EntityPropertyService<E extends WithId>
      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.
    • deleteProperty

      public void deleteProperty(ApplicationUser user, @Nonnull EntityPropertyService.DeletePropertyValidationResult validationResult)
      Description copied from interface: EntityPropertyService
      Removes the entity property with specified entity's id and entity's property key. Upon successful removal, EntityPropertyDeletedEvent is published.
      Specified by:
      deleteProperty in interface EntityPropertyService<E extends WithId>
      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

      public EntityPropertyService.PropertyResult getProperty(ApplicationUser user, @Nonnull Long entityId, @Nonnull String propertyKey)
      Description copied from interface: EntityPropertyService
      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.

      Specified by:
      getProperty in interface EntityPropertyService<E extends WithId>
      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.
    • getProperty

      public EntityPropertyService.PropertyResult getProperty(ApplicationUser user, @Nonnull Long entityId, @Nonnull String propertyKey, @Nonnull EntityPropertyOptions options)
      Description copied from interface: EntityPropertyService
      Returns the JSON property with the specified key from specified entity.

      This method checks if the entity with given id exists.

      Specified by:
      getProperty in interface EntityPropertyService<E extends WithId>
      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.
    • getProperty

      public EntityPropertyService.PropertyResult getProperty(ApplicationUser user, @Nonnull E entity, @Nonnull String propertyKey, @Nonnull EntityPropertyOptions options)
      Description copied from interface: EntityPropertyService
      Returns the JSON property with the specified key from specified entity.
      Specified by:
      getProperty in interface EntityPropertyService<E extends WithId>
      Parameters:
      user - who the permission checks will be run against (can be null, indicating anonymous user).
      entity - 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.
    • getProperties

      public List<EntityProperty> getProperties(ApplicationUser user, Long entityId, List<String> propertyKeys)
      Description copied from interface: EntityPropertyService
      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.
      Specified by:
      getProperties in interface EntityPropertyService<E extends WithId>
      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
    • getProperties

      public List<EntityProperty> getProperties(ApplicationUser user, Long entityId)
      Description copied from interface: EntityPropertyService
      Returns all properties. If the user does not have permissions to read properties of the entity, empty list will be returned.
      Specified by:
      getProperties in interface EntityPropertyService<E extends WithId>
      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
    • getPropertiesKeys

      public EntityPropertyService.PropertyKeys<E> getPropertiesKeys(ApplicationUser user, @Nonnull Long entityId)
      Description copied from interface: EntityPropertyService
      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.

      Specified by:
      getPropertiesKeys in interface EntityPropertyService<E extends WithId>
      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.
    • getPropertiesKeys

      public EntityPropertyService.PropertyKeys<E> getPropertiesKeys(ApplicationUser user, @Nonnull Long entityId, @Nonnull EntityPropertyOptions options)
      Description copied from interface: EntityPropertyService
      Returns the properties keys associated with the specified entity.

      This method checks if the entity with given id exists.

      Specified by:
      getPropertiesKeys in interface EntityPropertyService<E extends WithId>
      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.