java.lang.Object
org.broadleafcommerce.openadmin.server.service.persistence.validation.EntityValidatorServiceImpl
All Implemented Interfaces:
EntityValidatorService
Direct Known Subclasses:
BeanValidationEntityValidatorServiceImpl

@Service("blEntityValidatorService") public class EntityValidatorServiceImpl extends Object implements EntityValidatorService
This implementation validates each Property from the given Entity according to the ValidationConfigurations associated with it.
Author:
Phillip Verheyden
  • Field Details

    • LOG

      protected static final org.apache.commons.logging.Log LOG
    • globalEntityValidators

      protected List<GlobalPropertyValidator> globalEntityValidators
    • applicationContext

      @Autowired protected org.springframework.context.ApplicationContext applicationContext
    • securityService

      protected RowLevelSecurityService securityService
  • Constructor Details

    • EntityValidatorServiceImpl

      public EntityValidatorServiceImpl()
  • Method Details

    • populateBroadleafValidatorMap

      @PostConstruct public void populateBroadleafValidatorMap()
    • validate

      public void validate(Entity submittedEntity, @Nullable Serializable instance, Map<String,FieldMetadata> propertiesMetadata, RecordHelper recordHelper, boolean validateUnsubmittedProperties)
      Description copied from interface: EntityValidatorService
      Validate the given entity. Implementers should set Entity.setValidationFailure(boolean) appropriately. Validation is invoked after the entire instance has been populated according to BasicPersistenceModule.createPopulatedInstance(Serializable, Entity, Map, Boolean).
      Specified by:
      validate in interface EntityValidatorService
      Parameters:
      submittedEntity - DTO representation of instance
      instance - actual domain representation of submittedEntity. If this is null, all PropertyValidators will be skipped, as this instance type is consulted to match whether or not the properties from propertiesMetadata are applicable and should be validated
      propertiesMetadata - all of the merged properties metadata for the given Entity
      validateUnsubmittedProperties - if set to true, will ignore validation for properties that weren't submitted along with the entity
    • getTypeHierarchy

      protected List<String> getTypeHierarchy(Entity entity)

      Returns the type hierarchy of the given entity in ascending order of type, stopping at Object

      For instance, if this entity's Entity.getType() is ProductBundleImpl, then the result will be:

      [org.broadleafcommerce.core.catalog.domain.ProductBundleImpl, org.broadleafcommerce.core.catalog.domain.ProductImpl]

      Parameters:
      entity -
      Returns:
    • getGlobalEntityValidators

      public List<GlobalPropertyValidator> getGlobalEntityValidators()
      Specified by:
      getGlobalEntityValidators in interface EntityValidatorService
      Returns:
      the global validators that will be executed for every Entity
    • setGlobalEntityValidators

      public void setGlobalEntityValidators(List<GlobalPropertyValidator> globalEntityValidators)
      Description copied from interface: EntityValidatorService

      Set the global validators that will be run on every entity that is attempted to be saved in the admin. Global validators are useful to operate on things like field types and other scenarios that could occur with a number of entities. Rather than being required to define a ValidationConfiguration on all of those properties, this can more conveniently validate that set of properties.

      An example of a global validator in Broadleaf is the RequiredPropertyValidator which will ensure that every property that is marked as required will fail validation if a value is unset.

      Specified by:
      setGlobalEntityValidators in interface EntityValidatorService
      Parameters:
      globalEntityValidators - the globalEntityValidators to set