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
ConstructorsConstructorDescriptionDefaultDataFeedPublicationService(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.NotificationManagerprotected DataFeedPublicationRepository<com.broadleafcommerce.data.tracking.core.Trackable>initializeNotificationStateAndEmitMessage(List<String> ids, String messageType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically finds theDataFeedPublicationinstances for the givenids, and initializes theirNotificationStateformessageType.readByContextIdAndDataFeedProcessExecutionId(String id, String dataFeedProcessExecutionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads theDataFeedPublicationby id and the data feed process execution id.readByProcessExecutionId(String dataFeedProcessExecutionId, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads allDataFeedPublicationinstances 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 theDataFeedPublicationinstances 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, readAllMethods 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, 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
create, createAll, createAllAllowingPartialSuccess, delete, readAll, readAll, readAll, readAllByContextId, readByContextId, replace, replaceAll, replaceAllAllowingPartialSuccess, update, updateAll, updateAllAllowingPartialSuccess, updateSortMethods 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:DataFeedPublicationServiceReads allDataFeedPublicationinstances belonging to the givenDataFeedProcessExecution.- Specified by:
readByProcessExecutionIdin 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:DataFeedPublicationServiceReads theDataFeedPublicationinstances for the specified data feed process execution id.- Specified by:
readByProcessExecutionIdin interfaceDataFeedPublicationService<P extends DataFeedPublication>- Parameters:
dataFeedProcessExecutionId- the data feed process execution idfilters- the RSQLNodeused to restrict resultpage- the requested page of results from the databasecontextInfo- context information around multitenant state- Returns:
- the
DataFeedPublicationinstances 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:DataFeedPublicationServiceReads theDataFeedPublicationby id and the data feed process execution id.- Specified by:
readByContextIdAndDataFeedProcessExecutionIdin interfaceDataFeedPublicationService<P extends DataFeedPublication>- Parameters:
id- the data feed publication iddataFeedProcessExecutionId- the data feed process execution idcontextInfo- context information around multitenant state- Returns:
- an
Optionalcontaining 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:DataFeedPublicationServiceAtomically finds theDataFeedPublicationinstances for the givenids, and initializes theirNotificationStateformessageType.For those where the update is successful, calls
NotificationManager.handle(NotificationStateRepository, NotificationStateAware, String)for themessageType, which will emit the message.- Specified by:
initializeNotificationStateAndEmitMessagein 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
DataFeedPublicationinstances 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:DataFeedPublicationServiceAtomically sets a newDataFeedPublication.getStatus()andDataFeedPublication.getStartTime()on the specified publication.- Specified by:
setStatusAndStartTimein 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:DataFeedPublicationServiceAtomically sets a newDataFeedPublication.getStatus()and completion details on the specified publication.- Specified by:
setStatusAndCompletionDetailsin 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()
-