Class SubscriptionModificationUtils
java.lang.Object
com.broadleafcommerce.subscriptionoperation.service.modification.SubscriptionModificationUtils
Provides utility methods for shared logic for
ModifySubscriptionHandlers that doesn't make sense in an abstract class.- Author:
- Nathan Moore (nathandmoore)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSubscriptionModificationUtils(com.broadleafcommerce.common.extension.TypeFactory typeFactory) -
Method Summary
Modifier and TypeMethodDescriptionprotected ExistingSubscriptionAdjustmentDetailbuildExistingSubscriptionAdjustmentDetail(@NonNull SubscriptionAdjustment subscriptionAdjustment, @NonNull Subscription subscription) Builds aExistingSubscriptionAdjustmentDetailfor the givenSubscriptionAdjustment.buildExistingSubscriptionDetails(@NonNull SubscriptionWithItems existingSubscription) Builds aExistingSubscriptionDetailsfor the givenSubscriptionWithItems.protected ExistingSubscriptionItemAdjustmentDetailbuildExistingSubscriptionItemAdjustmentDetail(@NonNull SubscriptionItemAdjustment subscriptionItemAdjustment, @NonNull Subscription subscription) Builds aExistingSubscriptionItemAdjustmentDetailfor the givenSubscriptionItemAdjustment.protected ExistingSubscriptionItemDetailbuildExistingSubscriptionItemDetail(@NonNull SubscriptionItem subscriptionItem, @NonNull Subscription subscription) Builds aExistingSubscriptionItemDetailfor the givenSubscriptionItem.buildPriceCartRequest(@NonNull Subscription subscription, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Build thePriceCartRequestfor pricing the cart.generateCartName(@NonNull Subscription subscription, String flowName) Generates the name for a cart based on the operationFlow triggered and subscription.protected InstantgetDateXAfterDaysFromCurrentPeriodStartDate(@NonNull Subscription subscription, int daysToAdd) protected intgetPeriodsUsed(@NonNull Adjustment adjustment, @NonNull Subscription existingSubscription) Get the number of periods of theAdjustmentalready used by the existingSubscription.protected com.broadleafcommerce.common.extension.TypeFactoryprotected voidpopulateCommonAdjustmentProperties(@NonNull ExistingAdjustmentDetail existingAdjustmentDetail, @NonNull Adjustment adjustment, @NonNull Subscription existingSubscription) voidpopulateExistingSubscriptionDetails(@NonNull CreateCartRequest createCartRequest, @NonNull SubscriptionWithItems existingSubscription) PopulatesExistingSubscriptionDetailsonto theCreateCartRequest.protected voidpopulateItemChoiceDetailsToAddItemRequest(@NonNull AddItemRequest addItemRequest, @NonNull ItemChoice itemChoice, @NonNull Subscription subscription, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
-
Constructor Details
-
SubscriptionModificationUtils
public SubscriptionModificationUtils(com.broadleafcommerce.common.extension.TypeFactory typeFactory)
-
-
Method Details
-
generateCartName
Generates the name for a cart based on the operationFlow triggered and subscription.- Parameters:
subscription- the current subscriptionflowName- Name of the modification flow.- Returns:
- a unique cart name String
- See Also:
-
buildPriceCartRequest
public PriceCartRequest buildPriceCartRequest(@NonNull @NonNull Subscription subscription, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Build thePriceCartRequestfor pricing the cart.- Parameters:
subscription- the current subscriptioncontextInfo- the context info- Returns:
- the generated PriceCartRequest
-
populateExistingSubscriptionDetails
public void populateExistingSubscriptionDetails(@NonNull @NonNull CreateCartRequest createCartRequest, @NonNull @NonNull SubscriptionWithItems existingSubscription) PopulatesExistingSubscriptionDetailsonto theCreateCartRequest. This will then be added to theCartcreated for the modification request as an attribute.- Parameters:
createCartRequest- TheCreateCartRequest.existingSubscription- The existingSubscriptionWithItemsbefore modifications.
-
buildExistingSubscriptionDetails
public ExistingSubscriptionDetails buildExistingSubscriptionDetails(@NonNull @NonNull SubscriptionWithItems existingSubscription) Builds aExistingSubscriptionDetailsfor the givenSubscriptionWithItems. This includes aExistingSubscriptionItemDetailfor eachSubscriptionItem.- Parameters:
existingSubscription- The existingSubscriptionWithItemsbefore modifications.- Returns:
- A
ExistingSubscriptionDetailsfor the givenSubscriptionWithItems. - See Also:
-
buildExistingSubscriptionItemDetail
protected ExistingSubscriptionItemDetail buildExistingSubscriptionItemDetail(@NonNull @NonNull SubscriptionItem subscriptionItem, @NonNull @NonNull Subscription subscription) Builds aExistingSubscriptionItemDetailfor the givenSubscriptionItem.- Parameters:
subscriptionItem- The existingSubscriptionItembefore its parent has been modified.subscription- The existingSubscriptionbefore it has been modified.- Returns:
- A
ExistingSubscriptionItemDetailfor the givenSubscriptionItem. - See Also:
-
buildExistingSubscriptionAdjustmentDetail
protected ExistingSubscriptionAdjustmentDetail buildExistingSubscriptionAdjustmentDetail(@NonNull @NonNull SubscriptionAdjustment subscriptionAdjustment, @NonNull @NonNull Subscription subscription) Builds aExistingSubscriptionAdjustmentDetailfor the givenSubscriptionAdjustment.- Parameters:
subscriptionAdjustment- The existingSubscriptionAdjustment- Returns:
- A
ExistingSubscriptionAdjustmentDetailfor the givenSubscriptionAdjustment
-
buildExistingSubscriptionItemAdjustmentDetail
protected ExistingSubscriptionItemAdjustmentDetail buildExistingSubscriptionItemAdjustmentDetail(@NonNull @NonNull SubscriptionItemAdjustment subscriptionItemAdjustment, @NonNull @NonNull Subscription subscription) Builds aExistingSubscriptionItemAdjustmentDetailfor the givenSubscriptionItemAdjustment.- Parameters:
subscriptionItemAdjustment- The existingSubscriptionItemAdjustment- Returns:
- A
ExistingSubscriptionItemAdjustmentDetailfor the givenSubscriptionItemAdjustment
-
populateCommonAdjustmentProperties
protected void populateCommonAdjustmentProperties(@NonNull @NonNull ExistingAdjustmentDetail existingAdjustmentDetail, @NonNull @NonNull Adjustment adjustment, @NonNull @NonNull Subscription existingSubscription) -
getPeriodsUsed
protected int getPeriodsUsed(@NonNull @NonNull Adjustment adjustment, @NonNull @NonNull Subscription existingSubscription) Get the number of periods of theAdjustmentalready used by the existingSubscription.- Parameters:
adjustment- theAdjustmentthat has already been appliedexistingSubscription- the existingSubscriptionthat the adjustment has been applied to- Returns:
- the number of periods used by the adjustment
-
populateItemChoiceDetailsToAddItemRequest
protected void populateItemChoiceDetailsToAddItemRequest(@NonNull @NonNull AddItemRequest addItemRequest, @NonNull @NonNull ItemChoice itemChoice, @NonNull @NonNull Subscription subscription, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
getDateXAfterDaysFromCurrentPeriodStartDate
protected Instant getDateXAfterDaysFromCurrentPeriodStartDate(@NonNull @NonNull Subscription subscription, int daysToAdd) -
getTypeFactory
protected com.broadleafcommerce.common.extension.TypeFactory getTypeFactory()
-