Class DefaultSubscriptionItemService<P extends SubscriptionItem>
java.lang.Object
com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
com.broadleafcommerce.subscription.service.impl.DefaultSubscriptionItemService<P>
- All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>,SubscriptionItemService<P>
public class DefaultSubscriptionItemService<P extends SubscriptionItem>
extends com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
implements SubscriptionItemService<P>
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected SubscriptionItemRepository<com.broadleafcommerce.data.tracking.core.Trackable>protected SubscriptionRepository<com.broadleafcommerce.data.tracking.core.Trackable>protected com.broadleafcommerce.data.tracking.core.messaging.TransitionListener -
Constructor Summary
ConstructorsConstructorDescriptionDefaultSubscriptionItemService(SubscriptionItemRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.CrudEntityHelper helper) -
Method Summary
Modifier and TypeMethodDescriptionvoidcommit(String subscriptionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Apply any uncommitted changes to the production state.create(P subscriptionItemRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>createAllAllowingPartialSuccess(List<P> requests, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected List<SubscriptionItemAdjustment>createItemAdjustments(P subscriptionItemRequest, P subscriptionItemSaved, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) voidfindActiveBySubscriptionId(String subscriptionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Finds all activesubscription itemsby subscription idfindAllBySubscriptionId(String subscriptionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Finds allsubscription itemsby subscription id, including archived recordsorg.springframework.data.domain.Page<P>findAllBySubscriptionIdsIn(Collection<String> subscriptionIds, org.springframework.data.domain.Pageable pageable, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Finds allsubscriptionItemsby their subscriptionIdsreplace(String id, P subscriptionItemRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) replaceAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>replaceAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) protected List<SubscriptionItemAdjustment>replaceItemAdjustments(@NonNull List<P> subscriptionItemRequests, @NonNull List<P> subscriptionItemsSaved, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Goes through each subscriptionItemRequests and create, replace, or deleteSubscriptionItemAdjustmentsas needed.voidrevert(String subscriptionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Revert any uncommitted changes.update(String id, P subscriptionItemRequest, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) updateAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>updateAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService
convertFromPersistentDomain, convertToPersistentDomain, getHelper, getRepository, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, readByContextId, setSortPositionStrategy, updateSortMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService
readAll, readAll, readAll, readAllByContextId, readByContextId, updateSortMethods inherited from interface com.broadleafcommerce.subscription.service.SubscriptionItemService
createSubscriptionItem, findActiveItemsBySubscriptionId, findAllItemsBySubscriptionId, findById, updateSubscriptionItem, updateSubscriptionItem
-
Field Details
-
repo
-
subscriptionitemAdjustmentService
@Autowired protected SubscriptionItemAdjustmentService<SubscriptionItemAdjustment> subscriptionitemAdjustmentService -
transitionListener
@Autowired(required=false) protected com.broadleafcommerce.data.tracking.core.messaging.TransitionListener transitionListener -
subscriptionRepository
@Autowired protected SubscriptionRepository<com.broadleafcommerce.data.tracking.core.Trackable> subscriptionRepository
-
-
Constructor Details
-
DefaultSubscriptionItemService
public DefaultSubscriptionItemService(SubscriptionItemRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.CrudEntityHelper helper)
-
-
Method Details
-
findById
public Optional<P> findById(String id, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) - Specified by:
findByIdin interfaceSubscriptionItemService<P extends SubscriptionItem>
-
findActiveBySubscriptionId
public List<P> findActiveBySubscriptionId(String subscriptionId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:SubscriptionItemServiceFinds all activesubscription itemsby subscription id- Specified by:
findActiveBySubscriptionIdin interfaceSubscriptionItemService<P extends SubscriptionItem>
-
findAllBySubscriptionId
public List<P> findAllBySubscriptionId(String subscriptionId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:SubscriptionItemServiceFinds allsubscription itemsby subscription id, including archived records- Specified by:
findAllBySubscriptionIdin interfaceSubscriptionItemService<P extends SubscriptionItem>
-
findAllBySubscriptionIdsIn
public org.springframework.data.domain.Page<P> findAllBySubscriptionIdsIn(Collection<String> subscriptionIds, @Nullable org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:SubscriptionItemServiceFinds allsubscriptionItemsby their subscriptionIds- Specified by:
findAllBySubscriptionIdsInin interfaceSubscriptionItemService<P extends SubscriptionItem>- Parameters:
subscriptionIds- The collection of subscriptionIds for which the subscriptionItems are to be fetchedpageable- Describes the page of results to returncontextInfo- The context info- Returns:
- A
PageofsubscriptionItems
-
create
public P create(P subscriptionItemRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
createin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
createin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
createAll
public List<P> createAll(List<P> requests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
createAllin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
createAllin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
createAllAllowingPartialSuccess
public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> createAllAllowingPartialSuccess(List<P> requests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
createAllAllowingPartialSuccessin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
createAllAllowingPartialSuccessin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
replace
public P replace(String id, P subscriptionItemRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
replacein interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
replacein classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
replaceAll
public List<P> replaceAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
replaceAllin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
replaceAllin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
replaceAllAllowingPartialSuccess
public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> replaceAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
replaceAllAllowingPartialSuccessin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
replaceAllAllowingPartialSuccessin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
update
public P update(String id, P subscriptionItemRequest, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
updatein interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
updatein classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
updateAll
public List<P> updateAll(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
updateAllin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
updateAllin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
updateAllAllowingPartialSuccess
public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> updateAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> subscriptionItemRequests, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
updateAllAllowingPartialSuccessin interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
updateAllAllowingPartialSuccessin classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
delete
public void delete(String id, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
deletein interfacecom.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends SubscriptionItem>- Overrides:
deletein classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends SubscriptionItem>
-
commit
public void commit(String subscriptionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:SubscriptionItemServiceApply any uncommitted changes to the production state. Subscriptions are not only locked during a modification flow, but changes are also stored in a temporary modification state. When the modification flow is complete, this method is called to finalize the changes.Special note, during the modification flow, any retrieval of the subscription (and dependents) will return the modified state. However, the billing view of the subscription will continue to see the unmodified state until this method is called and the changes are finalized.
- Specified by:
commitin interfaceSubscriptionItemService<P extends SubscriptionItem>- Parameters:
subscriptionId- the subscription to commitcontextInfo- context information around multi-tenant state
-
revert
public void revert(String subscriptionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:SubscriptionItemServiceRevert any uncommitted changes. This will remove any changes that have been made during the modification flow and leave the production state untouched.- Specified by:
revertin interfaceSubscriptionItemService<P extends SubscriptionItem>- Parameters:
subscriptionId- the subscription to revertcontextInfo- context information around multi-tenant state- See Also:
-
createItemAdjustments
protected List<SubscriptionItemAdjustment> createItemAdjustments(@NonNull P subscriptionItemRequest, @NonNull P subscriptionItemSaved, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) -
replaceItemAdjustments
protected List<SubscriptionItemAdjustment> replaceItemAdjustments(@NonNull @NonNull List<P> subscriptionItemRequests, @NonNull @NonNull List<P> subscriptionItemsSaved, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Goes through each subscriptionItemRequests and create, replace, or deleteSubscriptionItemAdjustmentsas needed.- Parameters:
subscriptionItemRequests- the originalSubscriptionItemsto be replaced or updated. This is needed to grab theSubscriptionItemAdjustmentssince thesubscriptionItemsSavedhave empty listssubscriptionItemsSaved- the updatedSubscriptionItemsthat were successfully persisted. These will be used to update with the latestSubscriptionItemAdjustmentscontextInfo- the current context info- Returns:
- the
SubscriptionItemAdjustmentsthat were created or replaced
-