Class MarketplaceCatalogCustomPersistenceHandler

java.lang.Object
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
com.broadleafcommerce.marketplace.admin.handler.MarketplaceCatalogCustomPersistenceHandler
All Implemented Interfaces:
org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler, org.springframework.core.Ordered

@BroadleafMarketplaceModule @Service("blMarketplaceCatalogCustomPersistenceHandler") public class MarketplaceCatalogCustomPersistenceHandler extends com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
This extension handler is intended to run before MultiTenantCatalogCustomPersistenceHandler in order to handle fetch when the section entity is actually Vendor and not the site.
Author:
Nick Crum ncrum
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final org.apache.commons.logging.Log
     
     
    protected int
     

    Fields inherited from class com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler

    DERIVED_CC, entityConfiguration, multiTenantDao, NON_DERIVED_CC, SELECT_CATALOG_CC, SELECT_CATALOG_FOR_DUPLICATION, siteDao, siteService

    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 jakarta.persistence.criteria.Predicate
    buildIncludeCatalogsPredicate(jakarta.persistence.criteria.CriteriaBuilder builder, jakarta.persistence.criteria.From root, jakarta.persistence.criteria.CriteriaQuery criteria, List directValues, Long siteId)
    We override the original method in order to include vendor catalogs when fetching assignable catalogs for a marketplace site.
    protected jakarta.persistence.criteria.Predicate
    buildPagedVendorPortalsPredicate(jakarta.persistence.criteria.CriteriaBuilder builder, jakarta.persistence.criteria.Path owningSite, List<Long> vendorPortalIds)
    If the vendorPortalIds are over 1000 they must be split into separate clauses to conform to DB standards like Oracle which prevent over 1000 entries in an IN statement.
    protected jakarta.persistence.criteria.Predicate
    buildVendorPortalsPredicate(jakarta.persistence.criteria.Path owningSite, List<Long> vendorPortalIds)
     
    canHandleInspect(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    canHandleRemove(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    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 List<Long>
     
    int
     
    protected Boolean
    isFromVendorSection(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     
    protected boolean
     
    protected boolean
    isMarketplaceSite(org.broadleafcommerce.common.site.domain.Site site)
     
    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
    validateSharedWithVendorSetting(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
     

    Methods inherited from class com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler

    buildAllowedCatalogsPredicate, buildCatalogPredicate, buildFilterCatalogPredicate, buildFilterMappingForCatalogList, buildFilterMappingFromCatalog, buildFilterMappingFromSite, buildFinishedCatalogFilterMapping, buildImplicitCatalogPredicate, buildOwnedCatalogsPredicate, canHandleAdd, canHandleFetch, canHandleUpdate, catalogAncestorsIncludeCatalog, copyData, getCurrentSite, getFirstCriteria, getMultiTenantCatalog, inspect, isCatalogLookup, isFromCatalogClass, isFromCatalogInstance, isFromRootCatalog, isFromSiteInstance, isMainListGrid, isTemplateContext, postAdd, remove, removeCatalog, removeTemplateSiteCatalogXref, xrefClassMatches

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

    getClassForName, getMetadata, getPolymorphicClasses, getResultSet, 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

    • LOG

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

      @Value("${fetch.collection.batch.pageSize:800}") protected int pageSize
    • marketplaceService

      protected MarketplaceService marketplaceService
  • Constructor Details

    • MarketplaceCatalogCustomPersistenceHandler

      public MarketplaceCatalogCustomPersistenceHandler()
  • Method Details

    • canHandleInspect

      public Boolean canHandleInspect(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
      Specified by:
      canHandleInspect in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      canHandleInspect in class com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
    • 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 com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
    • getOrder

      public int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered
      Overrides:
      getOrder in class org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandlerAdapter
    • 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 com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
      Throws:
      org.broadleafcommerce.common.exception.ServiceException
    • 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 com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
      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:
      fetch in interface org.broadleafcommerce.openadmin.server.service.handler.CustomPersistenceHandler
      Overrides:
      fetch in class com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
      Throws:
      org.broadleafcommerce.common.exception.ServiceException
    • validateSharedWithVendorSetting

      protected void validateSharedWithVendorSetting(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage) throws org.broadleafcommerce.openadmin.server.service.ValidationException
      Throws:
      org.broadleafcommerce.openadmin.server.service.ValidationException
    • buildIncludeCatalogsPredicate

      protected jakarta.persistence.criteria.Predicate buildIncludeCatalogsPredicate(jakarta.persistence.criteria.CriteriaBuilder builder, jakarta.persistence.criteria.From root, jakarta.persistence.criteria.CriteriaQuery criteria, List directValues, Long siteId)
      We override the original method in order to include vendor catalogs when fetching assignable catalogs for a marketplace site.
      Overrides:
      buildIncludeCatalogsPredicate in class com.broadleafcommerce.tenant.admin.handler.MultiTenantCatalogCustomPersistenceHandler
    • getExistingVendorPortalIds

      protected List<Long> getExistingVendorPortalIds()
    • isMarketplaceSite

      protected boolean isMarketplaceSite(org.broadleafcommerce.common.site.domain.Site site)
    • isGlobalSite

      protected boolean isGlobalSite()
    • isFromVendorSection

      protected Boolean isFromVendorSection(org.broadleafcommerce.openadmin.dto.PersistencePackage persistencePackage)
    • buildPagedVendorPortalsPredicate

      protected jakarta.persistence.criteria.Predicate buildPagedVendorPortalsPredicate(jakarta.persistence.criteria.CriteriaBuilder builder, jakarta.persistence.criteria.Path owningSite, List<Long> vendorPortalIds)
      If the vendorPortalIds are over 1000 they must be split into separate clauses to conform to DB standards like Oracle which prevent over 1000 entries in an IN statement.
    • buildVendorPortalsPredicate

      protected jakarta.persistence.criteria.Predicate buildVendorPortalsPredicate(jakarta.persistence.criteria.Path owningSite, List<Long> vendorPortalIds)