Interface DataFeedPublicationService<P extends DataFeedPublication>
- All Superinterfaces:
com.broadleafcommerce.data.tracking.core.service.CrudEntityService<P>
,com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
- All Known Implementing Classes:
DefaultDataFeedPublicationService
public interface DataFeedPublicationService<P extends DataFeedPublication>
extends com.broadleafcommerce.data.tracking.core.service.RsqlCrudEntityService<P>
Service component providing API for CRUD operations on
DataFeedPublication
. Supported by
DataFeedPublicationRepository
.- See Also:
-
Method Summary
Modifier and TypeMethodDescriptioninitializeNotificationStateAndEmitMessage
(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 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
-
Method Details
-
readByProcessExecutionId
List<P> readByProcessExecutionId(String dataFeedProcessExecutionId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads allDataFeedPublication
instances belonging to the givenDataFeedProcessExecution
.- Parameters:
dataFeedProcessExecutionId
- the value ofDataFeedPublication.getDataFeedProcessExecutionId()
to matchcontextInfo
- context information around multitenant state- Returns:
- a list of all found publication instances
-
readByProcessExecutionId
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) Reads theDataFeedPublication
instances for the specified data feed process execution id.- 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
Optional<P> readByContextIdAndDataFeedProcessExecutionId(String id, String dataFeedProcessExecutionId, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Reads theDataFeedPublication
by id and the data feed process execution id.- 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
List<P> initializeNotificationStateAndEmitMessage(List<String> ids, String messageType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) 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.- 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 P setStatusAndStartTime(String id, String newStatus, Instant startTime, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedPublication.getStatus()
andDataFeedPublication.getStartTime()
on the specified publication.- 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 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) Atomically sets a newDataFeedPublication.getStatus()
and completion details on the specified publication.- 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
-