Class PriceInfoContributionUtils
java.lang.Object
com.broadleafcommerce.catalog.service.util.commerce.PriceInfoContributionUtils
Utility methods for
PriceInfos created for the response to a
ProductDetailsRequest.- Author:
- Nathan Moore (nathandmoore)
-
Constructor Summary
ConstructorsConstructorDescriptionPriceInfoContributionUtils(com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptioncreateItemChoicePriceInfo(@NonNull ItemChoice itemChoice) Creates aPriceInfofor anItemChoiceprotected PriceInfocreatePriceInfoForCustomSpecificItem(@NonNull SpecificItemChoiceDetail specificItemChoice) Extension point for creating aPriceInfofor aSpecificItemChoiceDetailifits typecan be more thanDefaultSpecificItemChoiceType.PRODUCTorDefaultSpecificItemChoiceType.VARIANTwhen it and its parentItemChoicehave nooverridePrices.createPriceInfoForIncludedProduct(@NonNull IncludedProduct includedProduct) Creates aPriceInfofor anIncludedProduct.createPriceInfoForProduct(@NonNull Product product) protected PriceInfocreatePriceInfoForSpecificItem(@NonNull Map<String, javax.money.MonetaryAmount> pricingFields, boolean isOnSale) createPriceInfoForVariant(@NonNull Variant variant) createPriceInfoForVariant(@NonNull Variant variant, Product parentProduct) protected PriceInfocreatePriceInfoSpecificChoiceWithoutOverride(@NonNull SpecificItemChoiceDetail specificChoice, PriceInfo itemChoicePriceInfo) Creates aPriceInfofor aSpecificItemChoicethat does not have aSpecificItemChoice.getOverridePrice().createSpecificItemChoicePriceInfo(@NonNull SpecificItemChoiceDetail specificChoice, PriceInfo itemChoicePriceInfo) Creates aPriceInfofor aSpecificItemChoiceDetail.createSpecificItemVariantPriceInfo(SpecificItemVariantPricing variantPricing) protected PriceInfogetPriceInfoForSpecificChoiceWithOverride(@NonNull SpecificItemChoiceDetail specificChoice) protected com.broadleafcommerce.common.extension.TypeFactory
-
Constructor Details
-
PriceInfoContributionUtils
public PriceInfoContributionUtils(com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
createPriceInfoForProduct
-
createPriceInfoForVariant
-
createPriceInfoForVariant
-
createPriceInfoForIncludedProduct
public PriceInfo createPriceInfoForIncludedProduct(@NonNull @NonNull IncludedProduct includedProduct) Creates aPriceInfofor anIncludedProduct.- Parameters:
includedProduct-IncludedProductfor which to create aPriceInfo- Returns:
- a
PriceInfofor anIncludedProduct
-
createItemChoicePriceInfo
Creates aPriceInfofor anItemChoice- Parameters:
itemChoice-ItemChoicefor which to make aPriceInfo- Returns:
- a
PriceInfofor anItemChoice
-
createSpecificItemChoicePriceInfo
public PriceInfo createSpecificItemChoicePriceInfo(@NonNull @NonNull SpecificItemChoiceDetail specificChoice, @Nullable PriceInfo itemChoicePriceInfo) Creates aPriceInfofor aSpecificItemChoiceDetail. This will first look for anoverride priceon the specific item, then on the parentItemChoice, and, if neither of the previous are present, it will use the specificProductorVariant.- Parameters:
specificChoice-SpecificItemChoicefor which to make aPriceInfo- Returns:
- a
PriceInfofor aSpecificItemChoiceDetail
-
createSpecificItemVariantPriceInfo
-
getPriceInfoForSpecificChoiceWithOverride
protected PriceInfo getPriceInfoForSpecificChoiceWithOverride(@NonNull @NonNull SpecificItemChoiceDetail specificChoice) - Parameters:
specificChoice-SpecificItemChoicefor which to create aPriceInfo- Returns:
- a
PriceInfofor aSpecificItemChoicethat has aSpecificItemChoice.getOverridePrice().
-
createPriceInfoSpecificChoiceWithoutOverride
protected PriceInfo createPriceInfoSpecificChoiceWithoutOverride(@NonNull @NonNull SpecificItemChoiceDetail specificChoice, @Nullable PriceInfo itemChoicePriceInfo) Creates aPriceInfofor aSpecificItemChoicethat does not have aSpecificItemChoice.getOverridePrice().- Parameters:
specificChoice-SpecificItemChoicefor which to create aPriceInfoitemChoicePriceInfo- ThePriceInfoof the parentItemChoice- Returns:
- a
PriceInfofor aSpecificItemChoicethat does not have aSpecificItemChoice.getOverridePrice().
-
createPriceInfoForSpecificItem
protected PriceInfo createPriceInfoForSpecificItem(@NonNull @NonNull Map<String, javax.money.MonetaryAmount> pricingFields, boolean isOnSale) Creates aPriceInfowithPriceTypeDetailsappropriate for aProduct,Variant, or similar entity. Normally, this means that it will look at the pricing fields of aVariantorProduct; however, the method has been generalized to take in any number of arbitrary pricing fields.- Parameters:
pricingFields- An arbitrary set of pricing fields. By default the keys should match the values ofDefaultPriceType.isOnSale- Whether the item is on sale.- Returns:
- a
PriceInfowithPriceTypeDetailsappropriate for aProduct,Variant, or similar entity
-
createPriceInfoForCustomSpecificItem
protected PriceInfo createPriceInfoForCustomSpecificItem(@NonNull @NonNull SpecificItemChoiceDetail specificItemChoice) Extension point for creating aPriceInfofor aSpecificItemChoiceDetailifits typecan be more thanDefaultSpecificItemChoiceType.PRODUCTorDefaultSpecificItemChoiceType.VARIANTwhen it and its parentItemChoicehave nooverridePrices.- Parameters:
specificItemChoice- TheSpecificItemChoiceDetailfor which to make aPriceInfo- Returns:
- A
PriceInfofor aSpecificItemChoiceDetailwhen neither it nor its parentItemChoicehaveoverridePrices.
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-