Class JpaPriceListVendorVisibilityHandler

java.lang.Object
com.broadleafcommerce.pricing.provider.jpa.marketplace.vendor.JpaPriceListVendorVisibilityHandler
All Implemented Interfaces:
com.broadleafcommerce.common.extension.data.DataRoutePartitionAware, com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler, org.springframework.core.Ordered

public class JpaPriceListVendorVisibilityHandler extends Object implements com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
Responsible for performing vendor-visibility operations on JpaPriceList entities.
  • Constructor Details

    • JpaPriceListVendorVisibilityHandler

      public JpaPriceListVendorVisibilityHandler()
  • Method Details

    • canHandle

      public boolean canHandle(Class<?> persistedDomainEntityType)
      Specified by:
      canHandle in interface com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
    • getOrder

      public int getOrder()
      Specified by:
      getOrder in interface org.springframework.core.Ordered
      Specified by:
      getOrder in interface com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
    • getDataRoutePartition

      public String getDataRoutePartition()
      Specified by:
      getDataRoutePartition in interface com.broadleafcommerce.common.extension.data.DataRoutePartitionAware
    • isEntityMutableByVendorRestrictions

      public boolean isEntityMutableByVendorRestrictions(Object persistedDomainEntity, Set<String> restrictedVendorRefs, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      A vendor-restricted user can only mutate price lists with a non-null JpaPriceList.getVendorRef() which matches one of their restrictedVendorRefs.
      Specified by:
      isEntityMutableByVendorRestrictions in interface com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
      Parameters:
      persistedDomainEntity - the persisted-domain entity to validate mutability for. This is guaranteed to only be an entity for which canHandle(Class) returns true.
      restrictedVendorRefs - the "vendorRef" (typically a vendor ID or code) of all vendors that mutability should be restricted to. Will never be empty.
      contextInfo - context information surrounding sandboxing/multitenant state
      Returns:
      true if the entity is mutable by the given vendor restrictions, false otherwise
    • createVendorNarrowingFilter

      public String createVendorNarrowingFilter(Set<String> restrictedVendorRefs, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Will build a Node filter string that restricts results to only include data with JpaPriceList.getVendorRef() that is null or matching the restrictedVendorRefs, and JpaPriceList.isAllowVendorsToAddPriceData() is true.
      Specified by:
      createVendorNarrowingFilter in interface com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
      Parameters:
      restrictedVendorRefs - the "vendorRef" (typically a vendor ID or code) of all vendors that the results need to be restricted to. Will never be empty.
      contextInfo - context information surrounding sandboxing/multitenant state. Some implementations may inform their filtration decisions with this.
      Returns:
      a Node filter string that can be used to restrict results on supported entity type(s) to only include data from the restrictedVendorRefs. Cannot return null.
    • getAssociatedVendorRef

      @Nullable public String getAssociatedVendorRef(Object persistedDomainEntity, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      getAssociatedVendorRef in interface com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler