Class ChangeSubscriptionAutoRenewalHandler
java.lang.Object
com.broadleafcommerce.subscriptionoperation.service.modification.AbstractModifySubscriptionHandler
com.broadleafcommerce.subscriptionoperation.service.modification.ChangeSubscriptionAutoRenewalHandler
- All Implemented Interfaces:
ModifySubscriptionHandler
public class ChangeSubscriptionAutoRenewalHandler
extends AbstractModifySubscriptionHandler
implements ModifySubscriptionHandler
Handles change whether auto-renewal is enabled for a
Subscription.- Author:
- Nathan Moore (nathandmoore)
-
Constructor Summary
ConstructorsConstructorDescriptionChangeSubscriptionAutoRenewalHandler(com.broadleafcommerce.common.extension.TypeFactory typeFactory, SubscriptionModificationUtils subscriptionModificationUtils, SubscriptionProvider<SubscriptionWithItems, Subscription, SubscriptionOwnerInfo> subscriptionProvider, org.springframework.context.MessageSource messageSource) -
Method Summary
Modifier and TypeMethodDescriptionbooleancanHandle(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Determines whether the handler can handle theModifySubscriptionRequest.protected StringProduces the name of the modification flow.protected org.springframework.context.MessageSourceprotected DategetNextStatusChangeDate(@NonNull Subscription subscription) protected com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtilsprotected SubscriptionCancellationPropertiesprotected 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 StartChangeAutoRenewalWorkflowServiceprotected ModifySubscriptionResponsehandleInternal(@NonNull ModifySubscriptionRequest request, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Hookpoint for custom logic specific to a particular modification request.voidsetPolicyUtils(com.broadleafcommerce.data.tracking.core.policy.trackable.TrackablePolicyUtils policyUtils) voidsetProperties(SubscriptionCancellationProperties properties) voidsetStartChangeAutoRenewalWorkflowService(StartChangeAutoRenewalWorkflowService startChangeAutoRenewalWorkflowService) voidsetSubOpsService(SubscriptionOperationService<SubscriptionWithItems> subOpsService) protected booleanshouldStartChangeAutoRenewalWorkflow(@NonNull ModifySubscriptionRequest request, @NonNull Subscription subscription) protected SubscriptionupdateSubscriptionAutoRenewal(@NonNull ModifySubscriptionRequest request, @NonNull Subscription subscription, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) protected voidvalidateAutoRenewalCanBeDisabled(@NonNull ModifySubscriptionRequest request, @NonNull SubscriptionWithItems swi, @NonNull org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Validates whether auto-renewal can be disabled for aSubscription.protected voidvalidateAutoRenewalCanBeEnabled(@NonNull ModifySubscriptionRequest request, @NonNull SubscriptionWithItems swi, @NonNull org.springframework.validation.Errors errors, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Validates whether auto-renewal can be enabled for aSubscription.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, buildCreateCartRequest, buildPriceCartRequest, generateCartName, getChildOptions, getSubscriptionModificationUtils, getTypeFactory, handle, hydrateAdditionalContextOntoRequest, 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
-
ChangeSubscriptionAutoRenewalHandler
public ChangeSubscriptionAutoRenewalHandler(com.broadleafcommerce.common.extension.TypeFactory typeFactory, SubscriptionModificationUtils subscriptionModificationUtils, SubscriptionProvider<SubscriptionWithItems, Subscription, SubscriptionOwnerInfo> subscriptionProvider, 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.
-
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:
-
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
-
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.
-
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:
-
validateAutoRenewalCanBeEnabled
protected void validateAutoRenewalCanBeEnabled(@NonNull @NonNull ModifySubscriptionRequest request, @NonNull @NonNull SubscriptionWithItems swi, @NonNull @NonNull org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Validates whether auto-renewal can be enabled for aSubscription.- Parameters:
request- theModifySubscriptionRequestbeing processedswi- theSubscriptionWithItemsbeing enablederrors- theErrorsobject to add validation errors tocontextInfo- the current sandbox and multitenant context
-
validateAutoRenewalCanBeDisabled
protected void validateAutoRenewalCanBeDisabled(@NonNull @NonNull ModifySubscriptionRequest request, @NonNull @NonNull SubscriptionWithItems swi, @NonNull @NonNull org.springframework.validation.Errors errors, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Validates whether auto-renewal can be disabled for aSubscription.- Parameters:
request- theModifySubscriptionRequestbeing processedswi- theSubscriptionWithItemsbeing disablederrors- theErrorsobject to add validation errors tocontextInfo- the current sandbox and multitenant context
-
updateSubscriptionAutoRenewal
protected Subscription updateSubscriptionAutoRenewal(@NonNull @NonNull ModifySubscriptionRequest request, @NonNull @NonNull Subscription subscription, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
getNextStatusChangeDate
-
shouldStartChangeAutoRenewalWorkflow
protected boolean shouldStartChangeAutoRenewalWorkflow(@NonNull @NonNull ModifySubscriptionRequest request, @NonNull @NonNull Subscription subscription) -
getSubscriptionProvider
protected SubscriptionProvider<SubscriptionWithItems,Subscription, getSubscriptionProvider()SubscriptionOwnerInfo> -
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) -
getSubOpsService
-
setSubOpsService
@Autowired @Lazy public void setSubOpsService(SubscriptionOperationService<SubscriptionWithItems> subOpsService) -
getProperties
-
setProperties
-
setStartChangeAutoRenewalWorkflowService
@Autowired(required=false) public void setStartChangeAutoRenewalWorkflowService(@Nullable StartChangeAutoRenewalWorkflowService startChangeAutoRenewalWorkflowService) -
getStartChangeAutoRenewalWorkflowService
@Nullable protected StartChangeAutoRenewalWorkflowService getStartChangeAutoRenewalWorkflowService()
-