Class DefaultPriceDataService<P extends PriceData>

java.lang.Object
com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
com.broadleafcommerce.pricing.service.DefaultPriceDataService<P>
All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>, PriceDataService<P>

public class DefaultPriceDataService<P extends PriceData> extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P> implements PriceDataService<P>
Author:
Chad Harchar (charchar)
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final String
     
    static final String
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    DefaultPriceDataService(PriceDataRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, PriceListRepository<com.broadleafcommerce.data.tracking.core.Trackable> priceListRepository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.extension.TypeFactory pricingFactory, com.broadleafcommerce.common.extension.cache.CacheStateManager cacheStateManager)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected List<P>
    convertFromDomain(List<com.broadleafcommerce.data.tracking.core.Trackable> trackables, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    protected org.springframework.data.domain.Page<P>
    convertFromDomain(org.springframework.data.domain.Page<com.broadleafcommerce.data.tracking.core.Trackable> trackables, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    protected Collection<com.broadleafcommerce.pricing.client.domain.PriceableTargetRef>
    convertTargetsToRefs(Collection<com.broadleafcommerce.pricing.client.domain.PriceableTarget> targets)
     
    com.broadleafcommerce.pricing.client.domain.PriceableTargetRef
    convertTargetToRef(com.broadleafcommerce.pricing.client.domain.PriceableTarget target)
     
    create(PriceList priceList, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    create(P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P>
    createAllAllowingPartialSuccess(List<P> businessInstances, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    int
    decrementAvailableQuantity(String priceDataId, String priceListId, Instant usageDate, int quantityToDecrement, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    void
    delete(PriceList priceList, String id, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    findByPriceableTargetRefAndPriceListId(com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, String priceListId, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    Finds the PriceData that has the given PriceData.target and
    org.springframework.data.domain.Page<P>
    findByPriceList(String priceListId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    org.springframework.data.domain.Page<P>
    findByPriceList(String priceListId, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    Deprecated, for removal: This API element is subject to removal in a future version.
    org.springframework.data.domain.Page<P>
    findByPriceListAndTarget(String priceListId, String targetType, Collection<String> targetIds, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    org.springframework.data.domain.Page<P>
    findByPriceListAndTarget(String priceListId, String targetType, Collection<String> targetIds, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    Deprecated, for removal: This API element is subject to removal in a future version.
    findByTargetInAndPriceListIn(Collection<com.broadleafcommerce.pricing.client.domain.PriceableTarget> targets, Collection<String> priceListIds, boolean filterByVendor, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    Uses the cache first to find a list of price data by the given PriceableTargetRefs and price list ids, if not found from cache, delegates to PriceDataService.findByTargetRefInAndPriceListIn(Collection, Collection, boolean, ContextInfo)
    findByTargetRefInAndPriceListIn(Collection<com.broadleafcommerce.pricing.client.domain.PriceableTargetRef> targets, Collection<String> priceListIds, boolean filterByVendor, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    Uses the repository to find a list of price data by the given PriceableTargetRefs and price list ids.
    protected P
    fixCurrency(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, P priceData)
     
    protected String
    getBaseCacheKeyByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.BasePriceableTarget target)
    Builds the base cache key with common fields between a PriceableTarget and PriceableTargetRef.
    protected String
    getCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target)
    protected String
    getCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target, boolean filterByVendor)
     
    protected String
    getCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target)
    protected String
    getCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, boolean filterByVendor)
     
    protected PriceListRepository<com.broadleafcommerce.data.tracking.core.Trackable>
     
    protected com.broadleafcommerce.common.extension.TypeFactory
     
    protected PriceDataRepository<com.broadleafcommerce.data.tracking.core.Trackable>
     
    int
    incrementAvailableQuantity(String priceDataId, int quantityToIncrement, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
    Increments the PriceData.getAvailableQuantity(), typically used as part of the rollback.
    protected void
    initializeCurrency(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String priceListId)
     
    protected void
    populatePriceListCurrencyMap(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, org.springframework.data.domain.Page<com.broadleafcommerce.data.tracking.core.Trackable> priceData)
     
    readAllByPriceListId(String priceListId, cz.jirutka.rsql.parser.ast.Node filters, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    readByContextId(PriceList priceList, String id, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    readByContextId(String id, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    replace(PriceList priceList, String id, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    replace(String id, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    protected void
    setupPlaceholderCurrency(com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    Useful when reading priceData as we don't yet know the correct currency which is needed by the model mapper when reading by id.
    protected org.springframework.data.domain.Pageable
    transformSort(org.springframework.data.domain.Pageable pageable)
     
    update(PriceList priceList, String id, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     
    update(String id, P businessInstance, 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>> updates, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
     

    Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService

    getRsqlHelper, readAll, readAll, readAll, readAll

    Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService

    convertFromPersistentDomain, convertToPersistentDomain, createAll, delete, getHelper, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, replaceAll, replaceAllAllowingPartialSuccess, setSortPositionStrategy, updateAll, updateSort

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService

    createAll, delete, readAll, readAll, readAll, readAllByContextId, replaceAll, replaceAllAllowingPartialSuccess, updateAll, updateSort

    Methods inherited from interface com.broadleafcommerce.pricing.service.PriceDataService

    findByTargetInAndPriceListIn, findByTargetRefInAndPriceListIn

    Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService

    readAll, readAll, readAll, readAll
  • Field Details

  • Constructor Details

    • DefaultPriceDataService

      public DefaultPriceDataService(PriceDataRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, PriceListRepository<com.broadleafcommerce.data.tracking.core.Trackable> priceListRepository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.extension.TypeFactory pricingFactory, com.broadleafcommerce.common.extension.cache.CacheStateManager cacheStateManager)
  • Method Details

    • findByPriceList

      @NonNull @Deprecated(since="1.7.2", forRemoval=true) public org.springframework.data.domain.Page<P> findByPriceList(@NonNull String priceListId, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      findByPriceList in interface PriceDataService<P extends PriceData>
    • findByPriceList

      @NonNull public org.springframework.data.domain.Page<P> findByPriceList(@NonNull String priceListId, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      findByPriceList in interface PriceDataService<P extends PriceData>
    • transformSort

      protected org.springframework.data.domain.Pageable transformSort(org.springframework.data.domain.Pageable pageable)
    • findByPriceListAndTarget

      @NonNull @Deprecated(since="1.7.2", forRemoval=true) public org.springframework.data.domain.Page<P> findByPriceListAndTarget(@Nullable String priceListId, @Nullable String targetType, @Nullable Collection<String> targetIds, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Deprecated, for removal: This API element is subject to removal in a future version.
      Specified by:
      findByPriceListAndTarget in interface PriceDataService<P extends PriceData>
    • findByPriceListAndTarget

      @NonNull public org.springframework.data.domain.Page<P> findByPriceListAndTarget(@Nullable String priceListId, @Nullable String targetType, @Nullable Collection<String> targetIds, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      findByPriceListAndTarget in interface PriceDataService<P extends PriceData>
    • readAllByPriceListId

      public Stream<P> readAllByPriceListId(String priceListId, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      readAllByPriceListId in interface PriceDataService<P extends PriceData>
    • findByPriceableTargetRefAndPriceListId

      @NonNull public Optional<P> findByPriceableTargetRefAndPriceListId(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, @NonNull String priceListId, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Description copied from interface: PriceDataService
      Finds the PriceData that has the given PriceData.target and
      Specified by:
      findByPriceableTargetRefAndPriceListId in interface PriceDataService<P extends PriceData>
      Returns:
    • findByTargetRefInAndPriceListIn

      @NonNull public List<P> findByTargetRefInAndPriceListIn(@NonNull Collection<com.broadleafcommerce.pricing.client.domain.PriceableTargetRef> targets, @NonNull Collection<String> priceListIds, boolean filterByVendor, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Description copied from interface: PriceDataService
      Uses the repository to find a list of price data by the given PriceableTargetRefs and price list ids.
      Specified by:
      findByTargetRefInAndPriceListIn in interface PriceDataService<P extends PriceData>
      Parameters:
      targets - a list of PriceableTargetRefs to match
      priceListIds - a list of price list ids to look for
      filterByVendor - whether to also filter the price data based on the {@link {@link PriceableTargetRef#getVendorRef()}. When this is false, vendor-discriminated targets will also get non-vendor price data.
      Returns:
      a list of price data by the given PriceableTargetRefs and price list ids from the repository
    • findByTargetInAndPriceListIn

      @NonNull public List<P> findByTargetInAndPriceListIn(@NonNull Collection<com.broadleafcommerce.pricing.client.domain.PriceableTarget> targets, @NonNull Collection<String> priceListIds, boolean filterByVendor, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Description copied from interface: PriceDataService
      Uses the cache first to find a list of price data by the given PriceableTargetRefs and price list ids, if not found from cache, delegates to PriceDataService.findByTargetRefInAndPriceListIn(Collection, Collection, boolean, ContextInfo)
      Specified by:
      findByTargetInAndPriceListIn in interface PriceDataService<P extends PriceData>
      Parameters:
      targets - a list of PriceableTargetRefs to match
      priceListIds - a list of price list ids to look for
      filterByVendor - whether to also filter the price data based on the {@link {@link PriceableTargetRef#getVendorRef()}. When this is false, vendor-discriminated targets will also get non-vendor price data.
      Returns:
      a list of price data by the given PriceableTargetRefs and price list ids from cache if found in cache, otherwise from the repository
    • getCacheByTargetsAndPriceListKey

      @Deprecated(since="Pricing Service 2.1.0") protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target)
    • getCacheByTargetsAndPriceListKey

      protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, boolean filterByVendor)
    • getBaseCacheKeyByTargetsAndPriceListKey

      protected String getBaseCacheKeyByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.BasePriceableTarget target)
      Builds the base cache key with common fields between a PriceableTarget and PriceableTargetRef. This includes the essential fields.
      Parameters:
      target - The target to build a cache key from.
      Returns:
      The cache key.
    • getCacheByTargetsAndPriceListKey

      @Deprecated(since="Pricing Service 2.1.0") protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target)
    • getCacheByTargetsAndPriceListKey

      protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target, boolean filterByVendor)
    • convertTargetsToRefs

      protected Collection<com.broadleafcommerce.pricing.client.domain.PriceableTargetRef> convertTargetsToRefs(Collection<com.broadleafcommerce.pricing.client.domain.PriceableTarget> targets)
    • readByContextId

      @NonNull public P readByContextId(@NonNull PriceList priceList, @NonNull String id, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      readByContextId in interface PriceDataService<P extends PriceData>
    • update

      @NonNull public P update(@NonNull PriceList priceList, @NonNull String id, @NonNull P businessInstance, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      update in interface PriceDataService<P extends PriceData>
    • delete

      public void delete(@NonNull PriceList priceList, @NonNull String id, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      delete in interface PriceDataService<P extends PriceData>
    • replace

      @NonNull public P replace(@NonNull PriceList priceList, @NonNull String id, @NonNull P businessInstance, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      replace in interface PriceDataService<P extends PriceData>
    • create

      @NonNull public P create(@NonNull PriceList priceList, @NonNull P businessInstance, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      create in interface PriceDataService<P extends PriceData>
    • createAllAllowingPartialSuccess

      public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> createAllAllowingPartialSuccess(List<P> businessInstances, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      createAllAllowingPartialSuccess in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends PriceData>
      Overrides:
      createAllAllowingPartialSuccess in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • updateAllAllowingPartialSuccess

      public com.broadleafcommerce.data.tracking.core.service.BulkPersistenceResponse<P> updateAllAllowingPartialSuccess(List<com.broadleafcommerce.data.tracking.core.service.Update<P>> updates, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      updateAllAllowingPartialSuccess in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends PriceData>
      Overrides:
      updateAllAllowingPartialSuccess in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • incrementAvailableQuantity

      public int incrementAvailableQuantity(String priceDataId, int quantityToIncrement, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: PriceDataService
      Increments the PriceData.getAvailableQuantity(), typically used as part of the rollback.

      This method updates the quantity based on the current PriceData.getAvailableQuantity() to prevent causing stale data (e.g. read entity and then update the entity separately could cause the data to be stale).

      This method should be used to increment the PriceData.getAvailableQuantity() to prevent race condition and cause the quantity to be stale.

      Specified by:
      incrementAvailableQuantity in interface PriceDataService<P extends PriceData>
      Parameters:
      priceDataId - the PriceData.getId() to increment
      quantityToIncrement - the quantity to increment
      contextInfo - the context info
      Returns:
      the count of records updated
    • decrementAvailableQuantity

      public int decrementAvailableQuantity(@NonNull String priceDataId, @NonNull String priceListId, @NonNull Instant usageDate, int quantityToDecrement, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: PriceDataService
      Decrements the PriceData.getAvailableQuantity().

      This method only updates the quantity if the PriceData.getAvailableQuantity() is enough to cover the quantityToDecrement.

      This method should be used to decrement the PriceData.getAvailableQuantity() to prevent race condition and decrement more quantity than actually available.

      Specified by:
      decrementAvailableQuantity in interface PriceDataService<P extends PriceData>
      Parameters:
      priceDataId - the PriceData.getId() to decrement
      priceListId - the PriceList.getId() that it belongs to
      usageDate - the Instant used to check against the active start and end dates
      quantityToDecrement - the quantity to decrement
      contextInfo - the context info
      Returns:
      the count of records updated
    • convertTargetToRef

      @Nullable public com.broadleafcommerce.pricing.client.domain.PriceableTargetRef convertTargetToRef(@Nullable com.broadleafcommerce.pricing.client.domain.PriceableTarget target)
      Specified by:
      convertTargetToRef in interface PriceDataService<P extends PriceData>
    • convertFromDomain

      protected List<P> convertFromDomain(List<com.broadleafcommerce.data.tracking.core.Trackable> trackables, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • convertFromDomain

      protected org.springframework.data.domain.Page<P> convertFromDomain(org.springframework.data.domain.Page<com.broadleafcommerce.data.tracking.core.Trackable> trackables, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
    • readByContextId

      public P readByContextId(@NonNull String id, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      readByContextId in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends PriceData>
      Overrides:
      readByContextId in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • update

      public P update(@NonNull String id, @NonNull P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      update in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends PriceData>
      Overrides:
      update in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • replace

      public P replace(@NonNull String id, @NonNull P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      replace in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends PriceData>
      Overrides:
      replace in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • create

      public P create(@NonNull P businessInstance, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Specified by:
      create in interface com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P extends PriceData>
      Overrides:
      create in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • setupPlaceholderCurrency

      protected void setupPlaceholderCurrency(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
      Useful when reading priceData as we don't yet know the correct currency which is needed by the model mapper when reading by id. The "fixCurrency" method will be called to adjust the PriceData before returning to the caller. Sets the Context to the default currency.
    • fixCurrency

      protected P fixCurrency(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context, P priceData)
    • populatePriceListCurrencyMap

      protected void populatePriceListCurrencyMap(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context, org.springframework.data.domain.Page<com.broadleafcommerce.data.tracking.core.Trackable> priceData)
    • initializeCurrency

      protected void initializeCurrency(@Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String priceListId)
    • getRepository

      @NonNull protected PriceDataRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()
      Overrides:
      getRepository in class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends PriceData>
    • getPriceListRepository

      @NonNull protected PriceListRepository<com.broadleafcommerce.data.tracking.core.Trackable> getPriceListRepository()
    • getPricingFactory

      @NonNull protected com.broadleafcommerce.common.extension.TypeFactory getPricingFactory()