Class DefaultOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- java.lang.Object
-
- com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
-
- com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
-
- com.broadleafcommerce.order.service.DefaultOrderFulfillmentService<P>
-
- All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>
,com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
,OrderFulfillmentService<P>
public class DefaultOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment> extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P> implements OrderFulfillmentService<P>
Default implementation ofOrderFulfillmentService
.- Author:
- Samarth Dhruva (samarthd)
-
-
Constructor Summary
Constructors Constructor Description DefaultOrderFulfillmentService(OrderFulfillmentRepository<com.broadleafcommerce.data.tracking.core.Trackable> orderFulfillmentRepository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<P>
createFulfillments(List<P> fulfillments, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
protected com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node>
getParser()
protected OrderFulfillmentRepository<com.broadleafcommerce.data.tracking.core.Trackable>
getRepository()
org.springframework.data.domain.Page<P>
readAllByGroupReferenceNumber(String groupReferenceNumber, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Retrieves the order fulfillments matching the providedgroupReferenceNumber
and filters.org.springframework.data.domain.Page<P>
readAllByGroupReferenceNumberAndMatchingTenant(String groupReferenceNumber, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Retrieves the order fulfillments matching the providedgroupReferenceNumber
and filters, and the tenant fromContextInfo
if present.List<P>
readAllByOrderId(String id, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Reads all of theOrderFulfillments
that are associated with the givenorderId
.org.springframework.data.domain.Page<P>
readAllByOrderId(String orderId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Reads a page of all of theOrderFulfillments
that are associated with the givenorderId
.List<P>
readAllByOrderIdAndMatchingTenant(String orderId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Retrieves the order fulfillment matching the provided ID and the tenant fromContextInfo
if present.List<P>
readAllByOrderIdAndStatus(String orderId, String status, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Reads all of the orderOrderFulfillments
which are associated with the givenorderId
.List<P>
readAllByOrderIdIn(Collection<String> orderIds, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Reads all of theOrderFulfillments
which are associated with any of the givenorderIds
.org.springframework.data.domain.Page<P>
readAllMatchingTenant(cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Retrieves the order fulfillments matching the provided filters and the tenant fromContextInfo
if present.List<String>
readAllUniqueIds(int page, cz.jirutka.rsql.parser.ast.Node filters)
Retrieves a list of unique order fulfillment context IDs no larger than page.Optional<P>
readByContextIdAndMatchingTenant(String id, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Retrieves the order fulfillment matching the provided ID and the tenant fromContextInfo
if present.Optional<P>
readByContextIdAndStatus(String id, String status, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Reads theOrderFulfillment
for the givenid
andstatus
.protected List<P>
replaceFulfillments(List<P> fulfillments, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
List<P>
replaceOrCreateAll(Collection<P> fulfillments, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Replace all of the given fulfillments which already exist, or create them.void
setParser(com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node> parser)
-
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, create, createAll, createAllAllowingPartialSuccess, delete, getHelper, getSortPositionStrategy, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, setSortPositionStrategy, update, 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
create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSort
-
-
-
-
Constructor Detail
-
DefaultOrderFulfillmentService
public DefaultOrderFulfillmentService(OrderFulfillmentRepository<com.broadleafcommerce.data.tracking.core.Trackable> orderFulfillmentRepository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper)
-
-
Method Detail
-
readAllByOrderId
public org.springframework.data.domain.Page<P> readAllByOrderId(String orderId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:OrderFulfillmentService
Reads a page of all of theOrderFulfillments
that are associated with the givenorderId
.- Specified by:
readAllByOrderId
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
orderId
- The ID of the order to find fulfillments forfilters
- additional filters to apply in the query. Should beEmptyNode
if no additional filters should be applied.page
- the requested page of results from the databasecontext
- context information surrounding sandboxing and multitenant state- Returns:
- A page of fulfillments that are associated with the given
orderId
-
readAllByOrderIdIn
public List<P> readAllByOrderIdIn(Collection<String> orderIds, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:OrderFulfillmentService
Reads all of theOrderFulfillments
which are associated with any of the givenorderIds
.- Specified by:
readAllByOrderIdIn
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
orderIds
- The IDs of the orders to find fulfillments forcontext
- context information surrounding sandboxing and multitenant state- Returns:
- the fulfillments which are associated with the given
orderIds
-
replaceOrCreateAll
@Transactional public List<P> replaceOrCreateAll(Collection<P> fulfillments, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:OrderFulfillmentService
Replace all of the given fulfillments which already exist, or create them.- Specified by:
replaceOrCreateAll
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
fulfillments
- the fulfillments to replace or createcontext
- context information surrounding sandboxing and multitenant state- Returns:
- the replaced and created fulfillments
-
readAllUniqueIds
@NonNull public List<String> readAllUniqueIds(int page, @NonNull cz.jirutka.rsql.parser.ast.Node filters)
Description copied from interface:OrderFulfillmentService
Retrieves a list of unique order fulfillment context IDs no larger than page. It is expected that any appropriate offset is achieved through criteria designated infilters
.- Specified by:
readAllUniqueIds
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
page
- the requested page of results from the database. -1 indicates no limit.filters
- An RSQL filter used to narrow query results. May beEmptyNode
if no filters should be applied.- Returns:
- unique order fulfillment IDs
-
readAllByOrderIdAndStatus
public List<P> readAllByOrderIdAndStatus(String orderId, String status, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:OrderFulfillmentService
Reads all of the orderOrderFulfillments
which are associated with the givenorderId
.- Specified by:
readAllByOrderIdAndStatus
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
orderId
- The ID of the parentOrder
status
- TheOrderFulfillment.getStatus()
context
- context information surrounding sandboxing and multitenant state- Returns:
- the
OrderFulfillments
which are associated with the givenorderId
-
readByContextIdAndStatus
public Optional<P> readByContextIdAndStatus(String id, String status, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:OrderFulfillmentService
Reads theOrderFulfillment
for the givenid
andstatus
.- Specified by:
readByContextIdAndStatus
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
id
- The ID of theOrderFulfillment
status
- TheOrderFulfillment.getStatus()
context
- context information surrounding sandboxing and multitenant state- Returns:
- Reads the
OrderFulfillment
for the givenid
andstatus
.
-
readAllByOrderId
public List<P> readAllByOrderId(String id, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
Description copied from interface:OrderFulfillmentService
Reads all of theOrderFulfillments
that are associated with the givenorderId
.- Specified by:
readAllByOrderId
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
id
- The ID of the order to find fulfillments forcontext
- context information surrounding sandboxing and multitenant state- Returns:
- the fulfillments that are associated with the given
orderId
-
replaceFulfillments
protected List<P> replaceFulfillments(List<P> fulfillments, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
-
createFulfillments
protected List<P> createFulfillments(List<P> fulfillments, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context)
-
readByContextIdAndMatchingTenant
public Optional<P> readByContextIdAndMatchingTenant(String id, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:OrderFulfillmentService
Retrieves the order fulfillment matching the provided ID and the tenant fromContextInfo
if present.Differs from the standard narrowing behavior of
CrudEntityService.readByContextId(String, ContextInfo)
, which only returns tenant-level (non-application-associated) records when fetching from a tenant context. This implementation finds all records within the tenant regardless of whether they're associated to an application.- Specified by:
readByContextIdAndMatchingTenant
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
id
- the id of the order fulfillment to findcontextInfo
- context information surrounding multitenant state- Returns:
- an
Optional
containing the requested order fulfillment if found within the tenant, orOptional.empty()
otherwise
-
readAllByOrderIdAndMatchingTenant
public List<P> readAllByOrderIdAndMatchingTenant(String orderId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:OrderFulfillmentService
Retrieves the order fulfillment matching the provided ID and the tenant fromContextInfo
if present.Differs from the standard narrowing behavior of
OrderFulfillmentService.readAllByOrderId(String, ContextInfo)
, which only returns tenant-level (non-application-associated) records when fetching from a tenant context. This implementation finds all records within the tenant regardless of whether they're associated to an application.- Specified by:
readAllByOrderIdAndMatchingTenant
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
orderId
- The ID of the order to find fulfillments forcontextInfo
- context information surrounding multitenant state- Returns:
- the fulfillments that are associated with the given
orderId
-
readAllMatchingTenant
public org.springframework.data.domain.Page<P> readAllMatchingTenant(cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:OrderFulfillmentService
Retrieves the order fulfillments matching the provided filters and the tenant fromContextInfo
if present.Differs from the standard narrowing behavior of {@link OrderFulfillmentService#readAll(Node, Pageable, ContextInfo), which only returns tenant-level (non-application-associated) records when fetching from a tenant context. This implementation finds all records within the tenant regardless of whether they're associated to an application.
- Specified by:
readAllMatchingTenant
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
contextInfo
- context information surrounding multitenant state- Returns:
- an
Optional
containing the requested order fulfillment if found within the tenant, orOptional.empty()
otherwise
-
readAllByGroupReferenceNumber
public org.springframework.data.domain.Page<P> readAllByGroupReferenceNumber(String groupReferenceNumber, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:OrderFulfillmentService
Retrieves the order fulfillments matching the providedgroupReferenceNumber
and filters.- Specified by:
readAllByGroupReferenceNumber
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
groupReferenceNumber
- the group reference number to match onfilters
- An RSQL filter used to narrow query results. May beEmptyNode
if no filters should be applied.pageable
- the requested page of results from the databasecontextInfo
- context information surrounding multitenant state- Returns:
- A page of fulfillments that are associated with the given
groupReferenceNumber
-
readAllByGroupReferenceNumberAndMatchingTenant
public org.springframework.data.domain.Page<P> readAllByGroupReferenceNumberAndMatchingTenant(String groupReferenceNumber, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable pageable, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Description copied from interface:OrderFulfillmentService
Retrieves the order fulfillments matching the providedgroupReferenceNumber
and filters, and the tenant fromContextInfo
if present.- Specified by:
readAllByGroupReferenceNumberAndMatchingTenant
in interfaceOrderFulfillmentService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
- Parameters:
groupReferenceNumber
- the group reference number to match onfilters
- An RSQL filter used to narrow query results. May beEmptyNode
if no filters should be applied.pageable
- the requested page of results from the databasecontextInfo
- context information surrounding multitenant state- Returns:
- A page of fulfillments that are associated with the given
groupReferenceNumber
-
getRepository
protected OrderFulfillmentRepository<com.broadleafcommerce.data.tracking.core.Trackable> getRepository()
- Overrides:
getRepository
in classcom.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P extends com.broadleafcommerce.order.client.domain.OrderFulfillment>
-
getParser
protected com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node> getParser()
-
setParser
@Autowired public void setParser(com.broadleafcommerce.data.tracking.core.filtering.fetch.FilterParser<cz.jirutka.rsql.parser.ast.Node> parser)
-
-