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
FieldsModifier and TypeFieldDescriptionprotected CustomFieldDaoprotected jakarta.persistence.EntityManagerprotected org.springframework.core.env.Environmentprotected org.broadleafcommerce.core.search.dao.IndexFieldDaoFields inherited from interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
DEFAULT_ORDERFields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionorg.broadleafcommerce.openadmin.dto.Entityadd(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.FilterMappingcanHandleAdd(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.EntitycompileDuplicateNameValidationError(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.DynamicResultSetfetch(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) 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 booleanisFieldImplOnly(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) voidremove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) protected booleanorg.broadleafcommerce.openadmin.dto.Entityupdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) protected voidvalidateRemoval(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
-
Field Details
-
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:
canHandleAddin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
canHandleAddin classorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
-
canHandleUpdate
public Boolean canHandleUpdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) - Specified by:
canHandleUpdatein interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
canHandleUpdatein classorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
-
canHandleRemove
public Boolean canHandleRemove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) - Specified by:
canHandleRemovein interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
canHandleRemovein classorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
-
canHandleFetch
public Boolean canHandleFetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) - Specified by:
canHandleFetchin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
canHandleFetchin classorg.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:
addin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
addin classorg.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:
updatein interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
updatein classorg.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:
removein interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
removein classorg.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:
fetchin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
fetchin classorg.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
-
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, throws org.broadleafcommerce.openadmin.server.service.ValidationExceptionList<String>> validationErrors) - 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()
-