Class JpaPriceDataVendorVisibilityHandler
- java.lang.Object
-
- com.broadleafcommerce.pricing.provider.jpa.marketplace.vendor.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 onJpaPriceData
entities.
-
-
Constructor Summary
Constructors Constructor Description JpaPriceDataVendorVisibilityHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
canHandle(Class<?> persistedDomainEntityType)
String
createVendorNarrowingFilter(Set<String> restrictedVendorRefs, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Will build aNode
filter string that restricts results to only include data with aJpaPriceData.getTargetVendorRef()
that is matching therestrictedVendorRefs
.String
getAssociatedVendorRef(Object persistedDomainEntity, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
String
getDataRoutePartition()
int
getOrder()
boolean
isEntityMutableByVendorRestrictions(Object persistedDomainEntity, Set<String> restrictedVendorRefs, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
A vendor-restricted user can only mutate price datas with a non-nullJpaPriceData.getTargetVendorRef()
which matches one of theirrestrictedVendorRefs
.
-
-
-
Method Detail
-
canHandle
public boolean canHandle(Class<?> persistedDomainEntityType)
- Specified by:
canHandle
in interfacecom.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
-
getOrder
public int getOrder()
- Specified by:
getOrder
in interfaceorg.springframework.core.Ordered
- Specified by:
getOrder
in interfacecom.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
-
getDataRoutePartition
public String getDataRoutePartition()
- Specified by:
getDataRoutePartition
in interfacecom.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-nullJpaPriceData.getTargetVendorRef()
which matches one of theirrestrictedVendorRefs
.- Specified by:
isEntityMutableByVendorRestrictions
in interfacecom.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 whichcanHandle(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 aNode
filter string that restricts results to only include data with aJpaPriceData.getTargetVendorRef()
that is matching therestrictedVendorRefs
.- Specified by:
createVendorNarrowingFilter
in interfacecom.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 therestrictedVendorRefs
. Cannot return null.
-
getAssociatedVendorRef
@Nullable public String getAssociatedVendorRef(Object persistedDomainEntity, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
- Specified by:
getAssociatedVendorRef
in interfacecom.broadleafcommerce.data.tracking.core.marketplace.vendor.visibility.VendorVisibilityHandler
-
-