Class JpaPriceDataVendorVisibilityHandler

  • All Implemented Interfaces:
    com.broadleafcommerce.common.extension.data.DataRoutePartitionAware, com.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler, org.springframework.core.Ordered

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

      • JpaPriceDataVendorVisibilityHandler

        public JpaPriceDataVendorVisibilityHandler()
    • Method Detail

      • 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 datas with a non-null JpaPriceData.getTargetVendorRef() 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 a JpaPriceData.getTargetVendorRef() that is matching the restrictedVendorRefs.
        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