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
ConstructorDescriptionDefaultItemChoiceConfigurationService
(org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected 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
protected com.broadleafcommerce.common.extension.TypeFactory
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)
-
Constructor Details
-
DefaultItemChoiceConfigurationService
public DefaultItemChoiceConfigurationService(org.springframework.context.MessageSource messageSource, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
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
-
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
-
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()
-