Class DefaultItemChoiceConfigurationService
- java.lang.Object
-
- com.broadleafcommerce.cartoperation.service.configuration.DefaultItemChoiceConfigurationService
-
- All Implemented Interfaces:
ItemChoiceConfigurationService
public class DefaultItemChoiceConfigurationService extends Object implements ItemChoiceConfigurationService
- Author:
- Chad Harchar (charchar)
-
-
Constructor Summary
Constructors Constructor Description DefaultItemChoiceConfigurationService(org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addItemConfigError(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull ItemChoice itemChoice, @NonNull String errorCode, @NonNull String errorMessage)
protected List<com.broadleafcommerce.cart.client.domain.CartItem>
findAndHydrateDependentsInCategory(@NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull ItemChoice itemChoice)
protected List<com.broadleafcommerce.cart.client.domain.CartItem>
findAndHydrateDependentsMatchingItemChoice(@NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull ItemChoice itemChoice)
protected List<com.broadleafcommerce.cart.client.domain.CartItem>
findAndHydrateDependentsMatchingProducts(@NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull ItemChoice itemChoice)
protected List<com.broadleafcommerce.cart.client.domain.CartItem>
findAndHydrateDependentsMatchingVariants(@NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull ItemChoice itemChoice)
protected MatchingDependentsContext
findDependentsMatchingItemChoice(@NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull ItemChoice itemChoice)
protected String
getMessage(@NonNull String errorMessage, Object... args)
protected org.springframework.context.MessageSource
getMessageSource()
protected com.broadleafcommerce.common.extension.TypeFactory
getTypeFactory()
protected void
hydrateItemChoicePricingDetails(@NonNull ItemChoice itemChoice, @NonNull com.broadleafcommerce.cart.client.domain.CartItem dependentCartItem)
Hydrates the pricing details for the parentItemChoice
on thedependent CartItem
representing a specific choice.protected boolean
isDiscountAllowed(@NonNull ItemChoice itemChoice)
protected boolean
isDiscountAllowed(@NonNull ItemChoice itemChoice, SpecificItemChoice specificItemChoice)
void
populateItemChoice(com.broadleafcommerce.cart.client.domain.CartItem cartItem, ProductOption option, List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems)
Populates item choices inCartItem.getDependentCartItems()
and hydrates them with pricing information fromItemChoice
andSpecificItemChoice
.void
validateItemChoice(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull ProductOption option, @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems)
Perform validation against the providedCartItem
for the givenProductOption
of typeProductOptionType.isItemChoice(String)
.protected void
validateMaxQuantity(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull ItemChoice itemChoice, @NonNull MatchingDependentsContext matchingCartItems, @NonNull ProductOption option)
protected void
validateMinQuantity(@NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull ItemChoice itemChoice, @NonNull MatchingDependentsContext matchingCartItems, @NonNull ProductOption option)
-
-
-
Method Detail
-
populateItemChoice
public void populateItemChoice(com.broadleafcommerce.cart.client.domain.CartItem cartItem, ProductOption option, List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems)
Description copied from interface:ItemChoiceConfigurationService
Populates item choices inCartItem.getDependentCartItems()
and hydrates them with pricing information fromItemChoice
andSpecificItemChoice
.- Specified by:
populateItemChoice
in interfaceItemChoiceConfigurationService
- Parameters:
cartItem
- TheCartItem
on which to populateItemChoices
.option
- TheProductOption
(and itsProductOption.getItemChoice()
for the item to populate and hydratepotentialDependentItems
- The list ofdependent cart items
to pick from when populatingItemChoice
.
-
findAndHydrateDependentsMatchingItemChoice
protected List<com.broadleafcommerce.cart.client.domain.CartItem> findAndHydrateDependentsMatchingItemChoice(@NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull @NonNull ItemChoice itemChoice)
-
findAndHydrateDependentsInCategory
protected List<com.broadleafcommerce.cart.client.domain.CartItem> findAndHydrateDependentsInCategory(@NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull @NonNull ItemChoice itemChoice)
-
findAndHydrateDependentsMatchingProducts
protected List<com.broadleafcommerce.cart.client.domain.CartItem> findAndHydrateDependentsMatchingProducts(@NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull @NonNull ItemChoice itemChoice)
-
findAndHydrateDependentsMatchingVariants
protected List<com.broadleafcommerce.cart.client.domain.CartItem> findAndHydrateDependentsMatchingVariants(@NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull @NonNull ItemChoice itemChoice)
-
hydrateItemChoicePricingDetails
protected void hydrateItemChoicePricingDetails(@NonNull @NonNull ItemChoice itemChoice, @NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem dependentCartItem)
Hydrates the pricing details for the parentItemChoice
on thedependent CartItem
representing a specific choice. This information will be needed when pricing since theItemChoice.getOverridePrice()
should be used if the specific item doesn't have its own rather than using the underlyingProduct's
orVariant's
.- Parameters:
itemChoice
- The parentItemChoice
of thedependentCartItem
representing aSpecificItemChoice
.dependentCartItem
- TheCartItem
representing aSpecificItemChoice
-
isDiscountAllowed
protected boolean isDiscountAllowed(@NonNull @NonNull ItemChoice itemChoice)
-
isDiscountAllowed
protected boolean isDiscountAllowed(@NonNull @NonNull ItemChoice itemChoice, SpecificItemChoice specificItemChoice)
-
validateItemChoice
public void validateItemChoice(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull ProductOption option, @NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> potentialDependentItems)
Description copied from interface:ItemChoiceConfigurationService
Perform validation against the providedCartItem
for the givenProductOption
of typeProductOptionType.isItemChoice(String)
. This will also hydrateCartItem
with pricing information fromItemChoice
andSpecificItemChoice
.- Specified by:
validateItemChoice
in interfaceItemChoiceConfigurationService
- Parameters:
cartItem
- TheCartItem
to performitem choice
validation against.option
- TheProductOption
(and it'sProductOption.getItemChoice()
we are using to validate the cart against.potentialDependentItems
- The list ofdependent cart items
to pick from when validatingItemChoice
.
-
findDependentsMatchingItemChoice
protected MatchingDependentsContext findDependentsMatchingItemChoice(@NonNull @NonNull List<com.broadleafcommerce.cart.client.domain.CartItem> dependentCartItems, @NonNull @NonNull ItemChoice itemChoice)
-
validateMinQuantity
protected void validateMinQuantity(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull ItemChoice itemChoice, @NonNull @NonNull MatchingDependentsContext matchingCartItems, @NonNull @NonNull ProductOption option)
-
validateMaxQuantity
protected void validateMaxQuantity(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull ItemChoice itemChoice, @NonNull @NonNull MatchingDependentsContext matchingCartItems, @NonNull @NonNull ProductOption option)
-
getMessage
protected String getMessage(@NonNull @NonNull String errorMessage, @Nullable Object... args)
-
addItemConfigError
protected void addItemConfigError(@NonNull @NonNull com.broadleafcommerce.cart.client.domain.CartItem cartItem, @NonNull @NonNull ItemChoice itemChoice, @NonNull @NonNull String errorCode, @NonNull @NonNull String errorMessage)
-
getMessageSource
protected org.springframework.context.MessageSource getMessageSource()
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-
-