Class DefaultDataFeedPublicationService<P extends DataFeedPublication>
java.lang.Object
com.broadleafcommerce.data.tracking.core.service.BaseCrudEntityService<P>
com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
com.broadleafcommerce.datafeed.service.DefaultDataFeedPublicationService<P>
- Type Parameters:
P
- business/projection type ofDataFeedPublication
- All Implemented Interfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>
,com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
,DataFeedPublicationService<P>
public class DefaultDataFeedPublicationService<P extends DataFeedPublication>
extends com.broadleafcommerce.data.tracking.core.service.BaseRsqlCrudEntityService<P>
implements DataFeedPublicationService<P>
Default implementation of
DataFeedPublicationService
-
Constructor Summary
ConstructorDescriptionDefaultDataFeedPublicationService
(DataFeedPublicationRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager) -
Method Summary
Modifier and TypeMethodDescriptionprotected com.broadleafcommerce.common.messaging.notification.NotificationManager
protected DataFeedPublicationRepository<com.broadleafcommerce.data.tracking.core.Trackable>
initializeNotificationStateAndEmitMessage
(List<String> ids, String messageType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically finds theDataFeedPublication
instances for the givenids
, and initializes theirNotificationState
formessageType
.readByContextIdAndDataFeedProcessExecutionId
(String id, String dataFeedProcessExecutionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads theDataFeedPublication
by id and the data feed process execution id.readByProcessExecutionId
(String dataFeedProcessExecutionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads allDataFeedPublication
instances belonging to the givenDataFeedProcessExecution
.org.springframework.data.domain.Page<P>
readByProcessExecutionId
(String dataFeedProcessExecutionId, cz.jirutka.rsql.parser.ast.Node filters, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads theDataFeedPublication
instances for the specified data feed process execution id.setStatusAndCompletionDetails
(String id, String newStatus, Instant endTime, boolean containsErrors, List<String> errorDetails, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedPublication.getStatus()
and completion details on the specified publication.setStatusAndStartTime
(String id, String newStatus, Instant startTime, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedPublication.getStatus()
andDataFeedPublication.getStartTime()
on the specified publication.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, getRepository, 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
Methods inherited from interface com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService
readAll, readAll, readAll, readAll
-
Constructor Details
-
DefaultDataFeedPublicationService
public DefaultDataFeedPublicationService(DataFeedPublicationRepository<com.broadleafcommerce.data.tracking.core.Trackable> repository, com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityHelper helper, @Nullable com.broadleafcommerce.common.messaging.notification.NotificationManager notificationManager)
-
-
Method Details
-
readByProcessExecutionId
public List<P> readByProcessExecutionId(String dataFeedProcessExecutionId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:DataFeedPublicationService
Reads allDataFeedPublication
instances belonging to the givenDataFeedProcessExecution
.- Specified by:
readByProcessExecutionId
in interfaceDataFeedPublicationService<P extends DataFeedPublication>
- Parameters:
dataFeedProcessExecutionId
- the value ofDataFeedPublication.getDataFeedProcessExecutionId()
to matchcontextInfo
- context information around multitenant state- Returns:
- a list of all found publication instances
-
readByProcessExecutionId
public org.springframework.data.domain.Page<P> readByProcessExecutionId(String dataFeedProcessExecutionId, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:DataFeedPublicationService
Reads theDataFeedPublication
instances for the specified data feed process execution id.- Specified by:
readByProcessExecutionId
in interfaceDataFeedPublicationService<P extends DataFeedPublication>
- Parameters:
dataFeedProcessExecutionId
- the data feed process execution idfilters
- the RSQLNode
used to restrict resultpage
- the requested page of results from the databasecontextInfo
- context information around multitenant state- Returns:
- the
DataFeedPublication
instances for the specified data feed process execution id
-
readByContextIdAndDataFeedProcessExecutionId
public Optional<P> readByContextIdAndDataFeedProcessExecutionId(String id, String dataFeedProcessExecutionId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:DataFeedPublicationService
Reads theDataFeedPublication
by id and the data feed process execution id.- Specified by:
readByContextIdAndDataFeedProcessExecutionId
in interfaceDataFeedPublicationService<P extends DataFeedPublication>
- Parameters:
id
- the data feed publication iddataFeedProcessExecutionId
- the data feed process execution idcontextInfo
- context information around multitenant state- Returns:
- an
Optional
containing the narrowed entity instance in the form of a business instance, elseOptional.empty()
-
initializeNotificationStateAndEmitMessage
public List<P> initializeNotificationStateAndEmitMessage(List<String> ids, String messageType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:DataFeedPublicationService
Atomically finds theDataFeedPublication
instances for the givenids
, and initializes theirNotificationState
formessageType
.For those where the update is successful, calls
NotificationManager.handle(NotificationStateRepository, NotificationStateAware, String)
for themessageType
, which will emit the message.- Specified by:
initializeNotificationStateAndEmitMessage
in interfaceDataFeedPublicationService<P extends DataFeedPublication>
- Parameters:
ids
- theDataFeedPublication.getId()
ids for which to initialize and emit the message. Cannot be empty.messageType
- the message type (ex:NotificationState.getName()
contextInfo
- context information around multitenant state- Returns:
- the
DataFeedPublication
instances that were successfully found and updated (omitting those which were not successfully updated)
-
setStatusAndStartTime
@Nullable public P setStatusAndStartTime(String id, String newStatus, Instant startTime, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:DataFeedPublicationService
Atomically sets a newDataFeedPublication.getStatus()
andDataFeedPublication.getStartTime()
on the specified publication.- Specified by:
setStatusAndStartTime
in interfaceDataFeedPublicationService<P extends DataFeedPublication>
- Parameters:
id
- the ID of the publication to updatenewStatus
- the new value to set forDataFeedPublication.getStatus()
startTime
- the value to set forDataFeedPublication.getStartTime()
whereCurrentStatus
- (optional) if provided, the update will only be applied if the publication currently has this value for itsDataFeedPublication.getStatus()
contextInfo
- context information around multitenant state- Returns:
- the updated publication if successfully updated, else
null
-
setStatusAndCompletionDetails
@Nullable public P setStatusAndCompletionDetails(String id, String newStatus, Instant endTime, boolean containsErrors, @Nullable List<String> errorDetails, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:DataFeedPublicationService
Atomically sets a newDataFeedPublication.getStatus()
and completion details on the specified publication.- Specified by:
setStatusAndCompletionDetails
in interfaceDataFeedPublicationService<P extends DataFeedPublication>
- Parameters:
id
- the ID of the publication to updatenewStatus
- the new value to set forDataFeedPublication.getStatus()
endTime
- the value to set forDataFeedPublication.getEndTime()
containsErrors
- the value to set forDataFeedPublication.isContainsErrors()
errorDetails
- (optional) the value to set forDataFeedPublication.getErrorDetails()
whereCurrentStatus
- (optional) if provided, the update will only be applied if the publication currently has this value for itsDataFeedPublication.getStatus()
contextInfo
- context information around multitenant state- Returns:
- the updated publication if successfully updated, else
null
-
getPublicationRepository
protected DataFeedPublicationRepository<com.broadleafcommerce.data.tracking.core.Trackable> getPublicationRepository() -
getNotificationManager
@Nullable protected com.broadleafcommerce.common.messaging.notification.NotificationManager getNotificationManager()
-