Class InitiateEditSubscriptionHandler
java.lang.Object
com.broadleafcommerce.subscriptionoperation.service.modification.AbstractModifySubscriptionHandler
com.broadleafcommerce.subscriptionoperation.service.modification.InitiateEditSubscriptionHandler
- All Implemented Interfaces:
ModifySubscriptionHandler
public class InitiateEditSubscriptionHandler
extends AbstractModifySubscriptionHandler
implements ModifySubscriptionHandler
Handles initiating the edit-
Subscription flow.- Author:
- Nathan Moore (nathandmoore)
-
Constructor Summary
ConstructorsConstructorDescriptionInitiateEditSubscriptionHandler(com.broadleafcommerce.common.extension.TypeFactory typeFactory, SubscriptionModificationUtils subscriptionModificationUtils, CartOperationProvider<com.broadleafcommerce.cart.client.domain.Cart> cartOperationProvider, CatalogProvider<Product> catalogProvider, org.springframework.context.MessageSource messageSource) -
Method Summary
Modifier and TypeMethodDescriptionprotected CreateCartRequestbuildCreateCartRequest(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aCreateCartRequestfrom theModifySubscriptionRequestbooleancanHandle(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines whether the handler can handle theModifySubscriptionRequest.protected CartOperationProvider<com.broadleafcommerce.cart.client.domain.Cart>protected CatalogProvider<Product>protected StringProduces the name of the modification flow.protected org.springframework.context.MessageSourceprotected com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtilsprotected String[]getRequiredPermissions(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Hook point to supply the permissions required to perform the givenSubscriptionAction.protected ModifySubscriptionResponsehandleInternal(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Hookpoint for custom logic specific to a particular modification request.protected booleanhasDelayedDowngradeDueAtEndOfCurrentPeriod(@NonNull Subscription subscription) protected voidhydrateAdditionalContextOntoRequest(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Handles hydrating any additional contextual information onto theModifySubscriptionRequestthat the handler needs.voidsetPolicyUtils(com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils policyUtils) protected voidvalidateBusinessRules(@NonNull ModifySubscriptionRequest request, @NonNull org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Hook point to supply custom business rules for specific action types.Methods inherited from class com.broadleafcommerce.subscriptionoperation.service.modification.AbstractModifySubscriptionHandler
addDependentsToParents, buildAddItemRequest, buildPriceCartRequest, generateCartName, getChildOptions, getSubscriptionModificationUtils, getTypeFactory, handle, hydrateProductsAndItemChoices, populateCartAttributesOnCreateCartRequest, validateActionType, validateAdditionalPermissionRules, validateCurrentSubscriptionState, validateRequest, validateUserAccessToSubscriptionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.broadleafcommerce.subscriptionoperation.service.modification.ModifySubscriptionHandler
handle
-
Constructor Details
-
InitiateEditSubscriptionHandler
public InitiateEditSubscriptionHandler(com.broadleafcommerce.common.extension.TypeFactory typeFactory, SubscriptionModificationUtils subscriptionModificationUtils, CartOperationProvider<com.broadleafcommerce.cart.client.domain.Cart> cartOperationProvider, CatalogProvider<Product> catalogProvider, org.springframework.context.MessageSource messageSource)
-
-
Method Details
-
canHandle
public boolean canHandle(@NonNull @NonNull ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:ModifySubscriptionHandlerDetermines whether the handler can handle theModifySubscriptionRequest.- Specified by:
canHandlein interfaceModifySubscriptionHandler- Parameters:
request- The incoming request to modify aSubscriptioncontextInfo- Additional sandbox and multitenant info- Returns:
- Whether this handler can handle the
ModifySubscriptionRequest.
-
hydrateAdditionalContextOntoRequest
protected void hydrateAdditionalContextOntoRequest(@NonNull @NonNull ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractModifySubscriptionHandlerHandles hydrating any additional contextual information onto theModifySubscriptionRequestthat the handler needs. By default, this does nothing.- Overrides:
hydrateAdditionalContextOntoRequestin classAbstractModifySubscriptionHandler- Parameters:
request- TheModifySubscriptionRequestto hydrate.contextInfo- Additional sandbox and multitenant info.
-
handleInternal
protected ModifySubscriptionResponse handleInternal(@NonNull @NonNull ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractModifySubscriptionHandlerHookpoint for custom logic specific to a particular modification request.- Specified by:
handleInternalin classAbstractModifySubscriptionHandler- Parameters:
request- The incoming request to modify aSubscriptioncontextInfo- Additional sandbox and multitenant info- Returns:
- Whether this handler can handle the
ModifySubscriptionRequest. - See Also:
-
getRequiredPermissions
protected String[] getRequiredPermissions(@NonNull @NonNull ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractModifySubscriptionHandlerHook point to supply the permissions required to perform the givenSubscriptionAction. These may be different depending on the type of user requesting the modification.- Specified by:
getRequiredPermissionsin classAbstractModifySubscriptionHandler- Parameters:
request- TheModifySubscriptionRequestwith the details related to the modification to make.contextInfo- the current sandbox and multitenant context- Returns:
- The required permissions for the requester to perform the modification.
-
validateBusinessRules
protected void validateBusinessRules(@NonNull @NonNull ModifySubscriptionRequest request, @NonNull @NonNull org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from class:AbstractModifySubscriptionHandlerHook point to supply custom business rules for specific action types. Called byAbstractModifySubscriptionHandler.validateRequest(ModifySubscriptionRequest, ContextInfo).- Overrides:
validateBusinessRulesin classAbstractModifySubscriptionHandler- Parameters:
request- TheModifySubscriptionRequestwith the details related to the modification to make.errors- Object storing validation errors for the `request`contextInfo- the current sandbox and multitenant context
-
getFlowName
Description copied from class:AbstractModifySubscriptionHandlerProduces the name of the modification flow.- Specified by:
getFlowNamein classAbstractModifySubscriptionHandler- Returns:
- The name of the modification flow.
- See Also:
-
buildCreateCartRequest
protected CreateCartRequest buildCreateCartRequest(@NonNull @NonNull ModifySubscriptionRequest request, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Builds aCreateCartRequestfrom theModifySubscriptionRequest- Overrides:
buildCreateCartRequestin classAbstractModifySubscriptionHandler- Parameters:
request- theModifySubscriptionRequestto hydratecontextInfo- the contextInfo- Returns:
- the
CreateCartRequest
-
hasDelayedDowngradeDueAtEndOfCurrentPeriod
protected boolean hasDelayedDowngradeDueAtEndOfCurrentPeriod(@NonNull @NonNull Subscription subscription) -
getCartOperationProvider
protected CartOperationProvider<com.broadleafcommerce.cart.client.domain.Cart> getCartOperationProvider() -
getCatalogProvider
-
getMessageSource
protected org.springframework.context.MessageSource getMessageSource() -
getPolicyUtils
@Nullable protected com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils getPolicyUtils()- Specified by:
getPolicyUtilsin classAbstractModifySubscriptionHandler
-
setPolicyUtils
@Autowired(required=false) public void setPolicyUtils(com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils policyUtils)
-