Class CustomFieldCustomPersistenceHandler

java.lang.Object
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
com.broadleafcommerce.customfield.service.handler.CustomFieldCustomPersistenceHandler
All Implemented Interfaces:
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler, org.springframework.core.Ordered

public class CustomFieldCustomPersistenceHandler extends org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
Handle custom persistence for the CustomField class. Specifically, find the group name key from the target entity that matches the group name supplied by the user for this CustomField instance.
Author:
Jeff Fischer
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected CustomFieldDao
     
    protected jakarta.persistence.EntityManager
     
    protected org.springframework.core.env.Environment
     
    protected org.broadleafcommerce.core.search.dao.IndexFieldDao
     

    Fields inherited from interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler

    DEFAULT_ORDER

    Fields inherited from interface org.springframework.core.Ordered

    HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.broadleafcommerce.openadmin.dto.Entity
    add(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper)
     
    protected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.FilterMapping
     
    protected List<String>
     
    canHandleAdd(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    canHandleFetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    canHandleRemove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    canHandleUpdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    protected org.broadleafcommerce.openadmin.dto.Entity
    compileDuplicateNameValidationError(org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper, org.broadleafcommerce.openadmin.dto.Entity entity, CustomField customFieldInstance, Map<String,org.broadleafcommerce.openadmin.dto.FieldMetadata> customFieldProperties, Map<String,List<String>> validationErrors)
     
    org.broadleafcommerce.openadmin.dto.DynamicResultSet
    fetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper)
     
    protected Map<String,List<String>>
    getDuplicateNameErrorMap(String propertyName, String friendlyName, String targetEntityType, Long currentInstanceId)
    We cannot have two custom fields with the same property name as that's used for indexing into the value maps and are used as keys in the entity form field map.
    protected boolean
    isFieldImplOnly(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    void
    remove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper)
     
    protected boolean
     
    org.broadleafcommerce.openadmin.dto.Entity
    update(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper)
     
    protected void
    validateRemoval(org.broadleafcommerce.openadmin.dto.Entity entity)
     

    Methods inherited from class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter

    canHandleInspect, getClassForName, getMetadata, getOrder, getPolymorphicClasses, getResultSet, inspect, isAdornedListOperation, isAssignableFrom, isBasicOperation, isMapOperation, meetsCustomCriteria, willHandleSecurity

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • customFieldDao

      protected CustomFieldDao customFieldDao
    • indexFieldDao

      protected org.broadleafcommerce.core.search.dao.IndexFieldDao indexFieldDao
    • em

      protected jakarta.persistence.EntityManager em
    • environment

      @Autowired protected org.springframework.core.env.Environment environment
  • Constructor Details

    • CustomFieldCustomPersistenceHandler

      public CustomFieldCustomPersistenceHandler()
  • Method Details

    • canHandleAdd

      public Boolean canHandleAdd(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
      Specified by:
      canHandleAdd in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      canHandleAdd in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
    • canHandleUpdate

      public Boolean canHandleUpdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
      Specified by:
      canHandleUpdate in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      canHandleUpdate in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
    • canHandleRemove

      public Boolean canHandleRemove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
      Specified by:
      canHandleRemove in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      canHandleRemove in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
    • canHandleFetch

      public Boolean canHandleFetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
      Specified by:
      canHandleFetch in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      canHandleFetch in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
    • isFieldImplOnly

      protected boolean isFieldImplOnly(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
    • add

      public org.broadleafcommerce.openadmin.dto.Entity add(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException
      Specified by:
      add in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      add in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
      Throws:
      org.broadleafcommerce.common.exception.ServiceException
    • update

      public org.broadleafcommerce.openadmin.dto.Entity update(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException
      Specified by:
      update in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      update in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
      Throws:
      org.broadleafcommerce.common.exception.ServiceException
    • remove

      public void remove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException
      Specified by:
      remove in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      remove in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
      Throws:
      org.broadleafcommerce.common.exception.ServiceException
    • validateRemoval

      protected void validateRemoval(org.broadleafcommerce.openadmin.dto.Entity entity) throws org.broadleafcommerce.openadmin.server.service.ValidationException
      Throws:
      org.broadleafcommerce.openadmin.server.service.ValidationException
    • fetch

      public org.broadleafcommerce.openadmin.dto.DynamicResultSet fetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException
      Specified by:
      fetch in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      fetch in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
      Throws:
      org.broadleafcommerce.common.exception.ServiceException
    • buildEntityTypeFilterMapping

      protected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.FilterMapping buildEntityTypeFilterMapping()
    • buildProductAndSkuEntityTypeOptions

      protected List<String> buildProductAndSkuEntityTypeOptions()
    • compileDuplicateNameValidationError

      protected org.broadleafcommerce.openadmin.dto.Entity compileDuplicateNameValidationError(org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper, org.broadleafcommerce.openadmin.dto.Entity entity, CustomField customFieldInstance, Map<String,org.broadleafcommerce.openadmin.dto.FieldMetadata> customFieldProperties, Map<String,List<String>> validationErrors) throws org.broadleafcommerce.openadmin.server.service.ValidationException
      Throws:
      org.broadleafcommerce.openadmin.server.service.ValidationException
    • getDuplicateNameErrorMap

      protected Map<String,List<String>> getDuplicateNameErrorMap(String propertyName, String friendlyName, String targetEntityType, Long currentInstanceId)
      We cannot have two custom fields with the same property name as that's used for indexing into the value maps and are used as keys in the entity form field map. Additionally #shouldValidatePropertyNameAndFriendlyName() can return true and also require the friendly name to be unique so that it's not confusing for the end user to see two fields with the same friendly name
      Parameters:
      propertyName -
      friendlyName -
      targetEntityType -
      currentInstanceId -
      Returns:
    • shouldValidateDuplicateFriendlyName

      protected boolean shouldValidateDuplicateFriendlyName()