Class DataDrivenEnumsProductDetailsContributor
java.lang.Object
com.broadleafcommerce.catalog.service.product.commerce.contributor.DataDrivenEnumsProductDetailsContributor
- All Implemented Interfaces:
ProductDetailsContributor
,org.springframework.core.Ordered
public class DataDrivenEnumsProductDetailsContributor
extends Object
implements ProductDetailsContributor
Contributor responsible for the
DataDrivenEnums
in ProductDetails
,
which include ProductDetails.getBrand()
, ProductDetails.getMerchandisingType()
,
and ProductDetails.getTargetDemographic()
.- Author:
- Sunny Yu
-
Field Summary
Fields inherited from interface org.springframework.core.Ordered
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescription<D extends ProductDetails,
C extends ProductDetailsContext>
Collection<D>contribute
(@NonNull Collection<D> productDetailsList, @NonNull Collection<C> productDetailsContexts, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Contributes to the suppliedProductDetails
.int
getOrder()
protected <P extends ProductDetails>
voidsetDataDrivenEnumIfPresent
(List<DataDrivenEnum> relatedDataDrivenEnums, P productDetails, Function<P, DataDrivenEnum> dataDrivenEnumGetter, BiConsumer<P, DataDrivenEnum> dataDrivenEnumSetter) protected void
setDataDrivenEnums
(ProductDetails productDetails, List<DataDrivenEnum> relatedDataDrivenEnums)
-
Field Details
-
DEFAULT_ORDER
public static final int DEFAULT_ORDER- See Also:
-
-
Constructor Details
-
DataDrivenEnumsProductDetailsContributor
public DataDrivenEnumsProductDetailsContributor()
-
-
Method Details
-
getOrder
public int getOrder()- Specified by:
getOrder
in interfaceorg.springframework.core.Ordered
-
contribute
public <D extends ProductDetails,C extends ProductDetailsContext> Collection<D> contribute(@NonNull @NonNull Collection<D> productDetailsList, @NonNull @NonNull Collection<C> productDetailsContexts, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:ProductDetailsContributor
Contributes to the suppliedProductDetails
. This should not mutate the inputted details, but return a new one with the new contributions.- Specified by:
contribute
in interfaceProductDetailsContributor
- Parameters:
productDetailsList
- The details to which to contributeproductDetailsContexts
- The context containing information that may be important for contributors such as active price lists.contextInfo
- context information surrounding sandboxing/multitenant state- Returns:
- An version of the supplied
ProductDetails
with the new contributions.
-
setDataDrivenEnums
protected void setDataDrivenEnums(ProductDetails productDetails, List<DataDrivenEnum> relatedDataDrivenEnums) -
setDataDrivenEnumIfPresent
protected <P extends ProductDetails> void setDataDrivenEnumIfPresent(List<DataDrivenEnum> relatedDataDrivenEnums, P productDetails, Function<P, DataDrivenEnum> dataDrivenEnumGetter, BiConsumer<P, DataDrivenEnum> dataDrivenEnumSetter)
-