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 -
Constructor Summary
ConstructorsConstructorDescriptionDefaultPriceDataService(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 TypeMethodDescriptionconvertFromDomain(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.PriceableTargetRefconvertTargetToRef(com.broadleafcommerce.pricing.client.domain.PriceableTarget target) create(PriceList priceList, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) voiddelete(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 thePriceDatathat has the givenPriceData.targetandorg.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 givenPriceableTargetRefsand price list ids, if not found from cache, delegates toPriceDataService.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 givenPriceableTargetRefsand price list ids.protected PfixCurrency(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, P priceData) protected StringgetCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target) protected StringgetCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target, boolean filterByVendor) protected StringgetCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target) protected StringgetCacheByTargetsAndPriceListKey(@NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, boolean filterByVendor) protected PriceListRepository<com.broadleafcommerce.data.tracking.core.Trackable>protected com.broadleafcommerce.common.extension.TypeFactoryprotected PriceDataRepository<com.broadleafcommerce.data.tracking.core.Trackable>protected voidinitializeCurrency(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String priceListId) protected voidpopulatePriceListCurrencyMap(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 voidsetupPlaceholderCurrency(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.PageabletransformSort(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) Methods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService
getRsqlHelper, readAll, readAll, readAll, readAllMethods inherited from class com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService
convertFromPersistentDomain, convertToPersistentDomain, createAll, createAllAllowingPartialSuccess, delete, getHelper, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, replaceAll, replaceAllAllowingPartialSuccess, setSortPositionStrategy, updateAll, updateAllAllowingPartialSuccess, 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
createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, replaceAll, replaceAllAllowingPartialSuccess, updateAll, updateAllAllowingPartialSuccess, updateSortMethods inherited from interface com.broadleafcommerce.pricing.service.PriceDataService
findByTargetInAndPriceListIn, findByTargetRefInAndPriceListInMethods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService
readAll, readAll, readAll, readAll
-
Field Details
-
CACHE_BY_TARGETS_AND_PRICE_LIST
- See Also:
-
-
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:
findByPriceListin interfacePriceDataService<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:
findByPriceListin interfacePriceDataService<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:
findByPriceListAndTargetin interfacePriceDataService<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:
findByPriceListAndTargetin interfacePriceDataService<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:
readAllByPriceListIdin interfacePriceDataService<P extends PriceData>
-
findByPriceableTargetRefAndPriceListId
@NonNull public Optional<P> findByPriceableTargetRefAndPriceListId(com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, String priceListId, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Description copied from interface:PriceDataServiceFinds thePriceDatathat has the givenPriceData.targetand- Specified by:
findByPriceableTargetRefAndPriceListIdin interfacePriceDataService<P extends PriceData>- Returns:
-
findByTargetRefInAndPriceListIn
@NonNull public List<P> findByTargetRefInAndPriceListIn(Collection<com.broadleafcommerce.pricing.client.domain.PriceableTargetRef> targets, Collection<String> priceListIds, boolean filterByVendor, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) Description copied from interface:PriceDataServiceUses the repository to find a list of price data by the givenPriceableTargetRefsand price list ids.- Specified by:
findByTargetRefInAndPriceListInin interfacePriceDataService<P extends PriceData>- Parameters:
targets- a list ofPriceableTargetRefsto matchpriceListIds- a list of price list ids to look forfilterByVendor- whether to also filter the price data based on the {@link {@link PriceableTargetRef#getVendorRef()}. When this isfalse, vendor-discriminated targets will also get non-vendor price data.- Returns:
- a list of price data by the given
PriceableTargetRefsand 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:PriceDataServiceUses the cache first to find a list of price data by the givenPriceableTargetRefsand price list ids, if not found from cache, delegates toPriceDataService.findByTargetRefInAndPriceListIn(Collection, Collection, boolean, ContextInfo)- Specified by:
findByTargetInAndPriceListInin interfacePriceDataService<P extends PriceData>- Parameters:
targets- a list ofPriceableTargetRefsto matchpriceListIds- a list of price list ids to look forfilterByVendor- whether to also filter the price data based on the {@link {@link PriceableTargetRef#getVendorRef()}. When this isfalse, vendor-discriminated targets will also get non-vendor price data.- Returns:
- a list of price data by the given
PriceableTargetRefsand price list ids from cache if found in cache, otherwise from the repository
-
getCacheByTargetsAndPriceListKey
protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target) - See Also:
-
getCacheByTargetsAndPriceListKey
protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTargetRef target, boolean filterByVendor) -
getCacheByTargetsAndPriceListKey
protected String getCacheByTargetsAndPriceListKey(@NonNull @NonNull com.broadleafcommerce.pricing.client.domain.PriceableTarget target) - See Also:
-
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:
readByContextIdin interfacePriceDataService<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:
updatein interfacePriceDataService<P extends PriceData>
-
delete
public void delete(@NonNull PriceList priceList, @NonNull String id, @NonNull com.broadleafcommerce.data.tracking.core.context.ContextInfo context) - Specified by:
deletein interfacePriceDataService<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:
replacein interfacePriceDataService<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:
createin interfacePriceDataService<P extends PriceData>
-
convertTargetToRef
@Nullable public com.broadleafcommerce.pricing.client.domain.PriceableTargetRef convertTargetToRef(@Nullable com.broadleafcommerce.pricing.client.domain.PriceableTarget target) - Specified by:
convertTargetToRefin interfacePriceDataService<P extends PriceData>
-
convertFromDomain
-
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
-
update
-
replace
-
create
-
setupPlaceholderCurrency
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. The "fixCurrency" method will be called to adjust the PriceData before returning to the caller. Sets the Context to the default currency. -
fixCurrency
-
populatePriceListCurrencyMap
protected void populatePriceListCurrencyMap(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, org.springframework.data.domain.Page<com.broadleafcommerce.data.tracking.core.Trackable> priceData) -
initializeCurrency
protected void initializeCurrency(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, String priceListId) -
getRepository
@NonNull protected PriceDataRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository() -
getPriceListRepository
@NonNull protected PriceListRepository<com.broadleafcommerce.data.tracking.core.Trackable> getPriceListRepository() -
getPricingFactory
@NonNull protected com.broadleafcommerce.common.extension.TypeFactory getPricingFactory()
-