Class DefaultCartStatusManager
java.lang.Object
com.broadleafcommerce.cartoperation.service.status.DefaultCartStatusManager
- All Implemented Interfaces:
CartStatusManager
-
Constructor Summary
ConstructorsConstructorDescriptionDefaultCartStatusManager(List<CartStatusHandler> cartStatusHandlers, CartProvider cartProvider, com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected ChangeCartStatusRequestbuildChangeCartStatusRequestForValidation(@NonNull CartStatusValidationRequest validationRequest) Builds aChangeCartStatusRequestused for validation purposes for checkout submission.com.broadleafcommerce.cart.client.domain.CartchangeStatus(@NonNull ChangeCartStatusRequest changeStatusRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Changes theCart.getStatus()to a specified status.protected CartProviderprotected List<CartStatusHandler>protected com.broadleafcommerce.common.extension.TypeFactoryprotected Supplier<UnsupportedOperationException>getUnsupportedOperationExceptionSupplier(@NonNull ChangeCartStatusRequest changeStatusRequest) voidvalidateStatusIsReadableByUser(@NonNull CartStatusValidationRequest validationRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the givenCartis readable by the currently authenticated user based on its status and workflow.voidvalidateStatusIsUpdatableByUser(@NonNull CartStatusValidationRequest validationRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines if the givenCartis updatable by the currently authenticated user based on its current status and workflow.voidvalidateStatusTransition(@NonNull ChangeCartStatusRequest changeStatusRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Validates the status transition is valid.
-
Constructor Details
-
DefaultCartStatusManager
public DefaultCartStatusManager(List<CartStatusHandler> cartStatusHandlers, CartProvider cartProvider, com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
changeStatus
public com.broadleafcommerce.cart.client.domain.Cart changeStatus(@NonNull @NonNull ChangeCartStatusRequest changeStatusRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartStatusManagerChanges theCart.getStatus()to a specified status.- Specified by:
changeStatusin interfaceCartStatusManager- Parameters:
changeStatusRequest- theChangeCartStatusRequestto facilitate the cart status changecontextInfo- context information surrounding sandboxing and multitenant state- Returns:
- the
Cartwith the updated status
-
validateStatusTransition
public void validateStatusTransition(@NonNull @NonNull ChangeCartStatusRequest changeStatusRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartStatusManagerValidates the status transition is valid.- Specified by:
validateStatusTransitionin interfaceCartStatusManager- Parameters:
changeStatusRequest- theChangeCartStatusRequestto facilitate the cart status changecontextInfo- context information surrounding sandboxing and multitenant state
-
validateStatusIsReadableByUser
public void validateStatusIsReadableByUser(@NonNull @NonNull CartStatusValidationRequest validationRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartStatusManagerDetermines if the givenCartis readable by the currently authenticated user based on its status and workflow.- Specified by:
validateStatusIsReadableByUserin interfaceCartStatusManager- Parameters:
validationRequest- theCartStatusValidationRequestcontaining the details for the validationcontextInfo- context information surrounding sandboxing and multitenant state- See Also:
-
validateStatusIsUpdatableByUser
public void validateStatusIsUpdatableByUser(@NonNull @NonNull CartStatusValidationRequest validationRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CartStatusManagerDetermines if the givenCartis updatable by the currently authenticated user based on its current status and workflow.For example, the flow being processed may be
DefaultCartOperationFlows.UPDATE_CONTACT_INFO, which is allowed for aDefaultQuoteStatuses.PUBLISHEDquote. However, other operations such as add item to quote may not be permitted in theDefaultQuoteStatuses.PUBLISHEDstatus.- Specified by:
validateStatusIsUpdatableByUserin interfaceCartStatusManager- Parameters:
validationRequest- theCartStatusValidationRequestcontaining the details for the validationcontextInfo- context information surrounding sandboxing and multitenant state- See Also:
-
buildChangeCartStatusRequestForValidation
protected ChangeCartStatusRequest buildChangeCartStatusRequestForValidation(@NonNull @NonNull CartStatusValidationRequest validationRequest) Builds aChangeCartStatusRequestused for validation purposes for checkout submission.- Parameters:
validationRequest- theCartStatusValidationRequestcontaining the details for the validation- Returns:
- a
ChangeCartStatusRequestbased on the given params
-
getUnsupportedOperationExceptionSupplier
protected Supplier<UnsupportedOperationException> getUnsupportedOperationExceptionSupplier(@NonNull @NonNull ChangeCartStatusRequest changeStatusRequest) -
getCartStatusHandlers
-
getCartProvider
-
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-