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
-
Constructor Summary
ConstructorDescriptionDefaultPriceDataService
(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.PriceableTargetRef
convertTargetToRef
(com.broadleafcommerce.pricing.client.domain.PriceableTarget target) create
(PriceList priceList, P businessInstance, com.broadleafcommerce.data.tracking.core.context.ContextInfo context) 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 thePriceData
that has the givenPriceData.target
andorg.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 givenPriceableTargetRefs
and 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 givenPriceableTargetRefs
and price list ids.protected P
fixCurrency
(com.broadleafcommerce.data.tracking.core.context.ContextInfo context, P priceData) 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>
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) 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, createAllAllowingPartialSuccess, delete, getHelper, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, replaceAll, replaceAllAllowingPartialSuccess, setSortPositionStrategy, updateAll, updateAllAllowingPartialSuccess, 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, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, replaceAll, replaceAllAllowingPartialSuccess, updateAll, updateAllAllowingPartialSuccess, 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
-
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:
findByPriceList
in 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:
findByPriceList
in 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:
findByPriceListAndTarget
in 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:
findByPriceListAndTarget
in 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:
readAllByPriceListId
in 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:PriceDataService
Finds thePriceData
that has the givenPriceData.target
and- Specified by:
findByPriceableTargetRefAndPriceListId
in 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:PriceDataService
Uses the repository to find a list of price data by the givenPriceableTargetRefs
and price list ids.- Specified by:
findByTargetRefInAndPriceListIn
in interfacePriceDataService<P extends PriceData>
- Parameters:
targets
- a list ofPriceableTargetRefs
to 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
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 givenPriceableTargetRefs
and price list ids, if not found from cache, delegates toPriceDataService.findByTargetRefInAndPriceListIn(Collection, Collection, boolean, ContextInfo)
- Specified by:
findByTargetInAndPriceListIn
in interfacePriceDataService<P extends PriceData>
- Parameters:
targets
- a list ofPriceableTargetRefs
to 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
PriceableTargetRefs
and 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:
readByContextId
in 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:
update
in 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:
delete
in 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:
replace
in 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:
create
in interfacePriceDataService<P extends PriceData>
-
convertTargetToRef
@Nullable public com.broadleafcommerce.pricing.client.domain.PriceableTargetRef convertTargetToRef(@Nullable com.broadleafcommerce.pricing.client.domain.PriceableTarget target) - Specified by:
convertTargetToRef
in 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()
-