Class ProductCustomPersistenceHandler
java.lang.Object
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
org.broadleafcommerce.admin.server.service.handler.ProductCustomPersistenceHandler
- All Implemented Interfaces:
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler,org.springframework.core.Ordered
@Component("blProductCustomPersistenceHandler")
public class ProductCustomPersistenceHandler
extends org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
- Author:
- Jeff Fischer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected org.broadleafcommerce.core.catalog.service.CatalogServiceprotected static final Stringprotected booleanprotected static final Stringprotected org.broadleafcommerce.common.service.ParentCategoryLegacyModeServiceprotected longprotected org.broadleafcommerce.common.sandbox.SandBoxHelperprotected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.converter.FilterValueConverter<String>Fields 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 voidaddSandBoxDefaultSkuNameFilter(org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao) The product name is stored on its default sku.protected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.FilterMappingbuildProductIdFilterMapping(List<Long> productIds) canHandleAdd(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) canHandleFetch(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) canHandleInspect(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) canHandleRemove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) canHandleUpdate(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) protected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.FilterMappingcreateFilterMappingForProperty(String targetPropertyName, org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.predicate.PredicateProvider predicateProvider) 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) findProductIdsByDefaultSkuIds(jakarta.persistence.EntityManager entityManager, Set<Long> defaultSkuIds) findSkuIdsByName(jakarta.persistence.EntityManager entityManager, String name) protected org.broadleafcommerce.core.catalog.domain.ProductgetAdminInstance(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper, org.broadleafcommerce.openadmin.dto.Entity entity) protected org.broadleafcommerce.core.catalog.domain.CategoryProductXrefgetCurrentDefaultXref(org.broadleafcommerce.core.catalog.domain.Product product) protected org.broadleafcommerce.core.catalog.domain.CategorygetExistingDefaultCategory(org.broadleafcommerce.core.catalog.domain.Product product) protected org.broadleafcommerce.openadmin.dto.DynamicResultSetgetFilteredDynamicResultSet(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) includeOriginalSkuIds(List<Long> skuIds) Returns the given sku ids along with the original sku of each one that is a sandbox clone.org.broadleafcommerce.openadmin.dto.DynamicResultSetinspect(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.InspectHelper helper) protected Booleanprotected booleanisFilterable(List<Long> ids, String type) Whether the ids can be used to filter on, which is not the case when nothing matched the name or when there are more matches than a filter query can hold.protected booleanisRecursiveProductSelection(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) protected voidmodifyParentCategoryMetadata(Map<String, org.broadleafcommerce.openadmin.dto.FieldMetadata> md) voidremove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) protected voidremoveBundleFieldRestrictions(org.broadleafcommerce.core.catalog.domain.ProductBundle adminInstance, Map<String, org.broadleafcommerce.openadmin.dto.FieldMetadata> adminProperties, org.broadleafcommerce.openadmin.dto.Entity entity) If the pricing model is of type item_sum, that property should not be requiredprotected voidremoveOldDefault(org.broadleafcommerce.core.catalog.domain.Product adminInstance, org.broadleafcommerce.core.catalog.domain.CategoryProductXref oldDefault, org.broadleafcommerce.openadmin.dto.Entity entity) protected voidremoveProduct(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.core.catalog.domain.Product adminInstance, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) protected voidsetupXref(org.broadleafcommerce.core.catalog.domain.Product adminInstance) org.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) Methods inherited from class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
getClassForName, getMetadata, getOrder, getPolymorphicClasses, getResultSet, isAdornedListOperation, isAssignableFrom, isBasicOperation, isMapOperation, meetsCustomCriteria, willHandleSecurity
-
Field Details
-
ID_PROPERTY
- See Also:
-
DEFAULT_SKU_NAME_PROPERTY
- See Also:
-
catalogService
protected org.broadleafcommerce.core.catalog.service.CatalogService catalogService -
extensionManager
-
parentCategoryLegacyModeService
protected org.broadleafcommerce.common.service.ParentCategoryLegacyModeService parentCategoryLegacyModeService -
sandBoxHelper
protected org.broadleafcommerce.common.sandbox.SandBoxHelper sandBoxHelper -
stringLikeFilterValueConverter
protected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.converter.FilterValueConverter<String> stringLikeFilterValueConverter -
queryLimit
@Value("${product.query.limit:500}") protected long queryLimit -
eagerFetchAssociations
@Value("${product.eager.fetch.associations.admin:true}") protected boolean eagerFetchAssociations
-
-
Constructor Details
-
ProductCustomPersistenceHandler
public ProductCustomPersistenceHandler()
-
-
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
-
canHandleInspect
public Boolean canHandleInspect(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) - Specified by:
canHandleInspectin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
canHandleInspectin classorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
-
inspect
public org.broadleafcommerce.openadmin.dto.DynamicResultSet inspect(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.InspectHelper helper) throws org.broadleafcommerce.common.exception.ServiceException - Specified by:
inspectin interfaceorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler- Overrides:
inspectin classorg.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter- Throws:
org.broadleafcommerce.common.exception.ServiceException
-
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
-
addSandBoxDefaultSkuNameFilter
protected void addSandBoxDefaultSkuNameFilter(org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao) The product name is stored on its default sku. When the name is changed in a sandbox, the new name is only on the sandbox clone of the default sku, so filtering on defaultSku.name through the product may not find the product until the change is promoted.When skus with a matching name include sandbox clones, the name filter is replaced by a filter on the products whose default sku is one of the matching skus or the original sku of a matching clone. Sorting on the name is kept. Otherwise, the standard name filter, which also searches translations, is left unchanged.
-
findSkuIdsByName
-
includeOriginalSkuIds
Returns the given sku ids along with the original sku of each one that is a sandbox clone. -
findProductIdsByDefaultSkuIds
-
isFilterable
Whether the ids can be used to filter on, which is not the case when nothing matched the name or when there are more matches than a filter query can hold. -
buildProductIdFilterMapping
-
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
-
getAdminInstance
protected org.broadleafcommerce.core.catalog.domain.Product getAdminInstance(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.server.dao.DynamicEntityDao dynamicEntityDao, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper, org.broadleafcommerce.openadmin.dto.Entity entity) throws ClassNotFoundException - Throws:
ClassNotFoundException
-
removeProduct
protected void removeProduct(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.core.catalog.domain.Product adminInstance, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException - Throws:
org.broadleafcommerce.common.exception.ServiceException
-
removeBundleFieldRestrictions
protected void removeBundleFieldRestrictions(org.broadleafcommerce.core.catalog.domain.ProductBundle adminInstance, Map<String, org.broadleafcommerce.openadmin.dto.FieldMetadata> adminProperties, org.broadleafcommerce.openadmin.dto.Entity entity) If the pricing model is of type item_sum, that property should not be required- Parameters:
adminInstance-adminProperties-entity-
-
isDefaultCategoryLegacyMode
-
modifyParentCategoryMetadata
-
getExistingDefaultCategory
protected org.broadleafcommerce.core.catalog.domain.Category getExistingDefaultCategory(org.broadleafcommerce.core.catalog.domain.Product product) -
removeOldDefault
protected void removeOldDefault(org.broadleafcommerce.core.catalog.domain.Product adminInstance, org.broadleafcommerce.core.catalog.domain.CategoryProductXref oldDefault, org.broadleafcommerce.openadmin.dto.Entity entity) -
setupXref
protected void setupXref(org.broadleafcommerce.core.catalog.domain.Product adminInstance) -
getCurrentDefaultXref
protected org.broadleafcommerce.core.catalog.domain.CategoryProductXref getCurrentDefaultXref(org.broadleafcommerce.core.catalog.domain.Product product) -
isRecursiveProductSelection
protected boolean isRecursiveProductSelection(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) -
createFilterMappingForProperty
protected org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.FilterMapping createFilterMappingForProperty(String targetPropertyName, org.broadleafcommerce.openadmin.server.service.persistence.module.criteria.predicate.PredicateProvider predicateProvider) -
getFilteredDynamicResultSet
protected org.broadleafcommerce.openadmin.dto.DynamicResultSet getFilteredDynamicResultSet(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage, org.broadleafcommerce.openadmin.dto.CriteriaTransferObject cto, org.broadleafcommerce.openadmin.server.service.persistence.module.RecordHelper helper) throws org.broadleafcommerce.common.exception.ServiceException - Throws:
org.broadleafcommerce.common.exception.ServiceException
-