Class JpaCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
java.lang.Object
com.broadleafcommerce.datafeed.provider.jpa.repository.trackable.JpaCustomizedDataFeedProcessExecutionRepository<D>
- Type Parameters:
D
- the persisted domain type
- All Implemented Interfaces:
CustomizedDataFeedProcessExecutionRepository<D>
,org.springframework.beans.factory.InitializingBean
public class JpaCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
extends Object
implements CustomizedDataFeedProcessExecutionRepository<D>, org.springframework.beans.factory.InitializingBean
JPA implementation of
CustomizedDataFeedProcessExecutionRepository
.-
Constructor Summary
ConstructorDescriptionJpaCustomizedDataFeedProcessExecutionRepository
(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil behaviorUtil, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder criteriaBuilder, com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager repositoryEntityTypeManager, JpaDataFeedQueryHelper queryHelper) -
Method Summary
Modifier and TypeMethodDescriptionvoid
protected DataFeedProcessExecutionRepository<D>
Lazy injection so we can access base repository methods.protected com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil
protected com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder
protected javax.persistence.EntityManager
protected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelper
protected com.broadleafcommerce.common.messaging.notification.NotificationStateService
Lazy injection since this is technically a service component.protected JpaDataFeedQueryHelper
protected com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager
protected com.broadleafcommerce.common.messaging.notification.domain.NotificationState
initializeAndResetNotificationState
(D entity, String notificationStateName, Instant changeTimestamp) initializeNotificationState
(String id, String messageType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically finds theDataFeedProcessExecution
for the givenid
, and initializes itsNotificationState
formessageType
.void
setBaseRepository
(DataFeedProcessExecutionRepository<D> baseRepository) Lazy injection so we can access base repository methods.void
setNotificationStateService
(com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService) Lazy injection since this is technically a service component.setQueriedDataFileLocation
(String id, String queriedDataFileLocation, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically setsDataFeedProcessExecution.getQueriedDataFileLocation()
on the specified execution.setStatus
(String id, String newStatus, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedProcessExecution.getStatus()
on the specified execution.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 newDataFeedProcessExecution.getStatus()
and completion details on the specified execution.setStatusAndStartTime
(String id, String newStatus, Instant startTime, String whereCurrentStatus, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically sets a newDataFeedProcessExecution.getStatus()
andDataFeedProcessExecution.getStartTime()
on the specified execution.
-
Constructor Details
-
JpaCustomizedDataFeedProcessExecutionRepository
public JpaCustomizedDataFeedProcessExecutionRepository(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil behaviorUtil, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder criteriaBuilder, com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager repositoryEntityTypeManager, JpaDataFeedQueryHelper queryHelper)
-
-
Method Details
-
afterPropertiesSet
- Specified by:
afterPropertiesSet
in interfaceorg.springframework.beans.factory.InitializingBean
- Throws:
Exception
-
initializeNotificationState
@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D initializeNotificationState(String id, String messageType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedProcessExecutionRepository
Atomically finds theDataFeedProcessExecution
for the givenid
, and initializes itsNotificationState
formessageType
.- Specified by:
initializeNotificationState
in interfaceCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
- Parameters:
id
- theDataFeedProcessExecution.getId()
for which to initialize the notification statemessageType
- the message type (ex:NotificationState.getName()
contextInfo
- context information around multitenant state- Returns:
- the updated
DataFeedProcessExecution
if successfully found and updated,null
otherwise
-
initializeAndResetNotificationState
-
setStatus
@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D setStatus(String id, String newStatus, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedProcessExecutionRepository
Atomically sets a newDataFeedProcessExecution.getStatus()
on the specified execution.- Specified by:
setStatus
in interfaceCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
- Parameters:
id
- the ID of the execution to updatenewStatus
- the new value to set forDataFeedProcessExecution.getStatus()
whereCurrentStatus
- (optional) if provided, the update will only be applied if the execution currently has this value for itsDataFeedProcessExecution.getStatus()
contextInfo
- context information around multitenant state- Returns:
- the updated execution if successfully updated, else
null
-
setStatusAndStartTime
@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D setStatusAndStartTime(String id, String newStatus, Instant startTime, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedProcessExecutionRepository
Atomically sets a newDataFeedProcessExecution.getStatus()
andDataFeedProcessExecution.getStartTime()
on the specified execution.- Specified by:
setStatusAndStartTime
in interfaceCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
- Parameters:
id
- the ID of the execution to updatenewStatus
- the new value to set forDataFeedProcessExecution.getStatus()
startTime
- the value to set forDataFeedProcessExecution.getStartTime()
whereCurrentStatus
- (optional) if provided, the update will only be applied if the execution currently has this value for itsDataFeedProcessExecution.getStatus()
contextInfo
- context information around multitenant state- Returns:
- the updated execution if successfully updated, else
null
-
setStatusAndCompletionDetails
@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D 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:CustomizedDataFeedProcessExecutionRepository
Atomically sets a newDataFeedProcessExecution.getStatus()
and completion details on the specified execution.- Specified by:
setStatusAndCompletionDetails
in interfaceCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
- Parameters:
id
- the ID of the execution to updatenewStatus
- the new value to set forDataFeedProcessExecution.getStatus()
endTime
- the value to set forDataFeedProcessExecution.getEndTime()
containsErrors
- the value to set forDataFeedProcessExecution.isContainsErrors()
errorDetails
- (optional) the value to set forDataFeedProcessExecution.getErrorDetails()
whereCurrentStatus
- (optional) if provided, the update will only be applied if the execution currently has this value for itsDataFeedProcessExecution.getStatus()
contextInfo
- context information around multitenant state- Returns:
- the updated execution if successfully updated, else
null
-
setQueriedDataFileLocation
@Nullable @Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public D setQueriedDataFileLocation(String id, String queriedDataFileLocation, @Nullable String whereCurrentStatus, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedProcessExecutionRepository
Atomically setsDataFeedProcessExecution.getQueriedDataFileLocation()
on the specified execution.- Specified by:
setQueriedDataFileLocation
in interfaceCustomizedDataFeedProcessExecutionRepository<D extends JpaDataFeedProcessExecution>
- Parameters:
id
- the ID of the execution to updatequeriedDataFileLocation
- the value to set forDataFeedProcessExecution.getQueriedDataFileLocation()
whereCurrentStatus
- (optional) if provided, the update will only be applied if the execution currently has this value for itsDataFeedProcessExecution.getStatus()
contextInfo
- context information around multitenant state- Returns:
- the updated execution if successfully updated, else
null
-
getBehaviorUtil
protected com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil getBehaviorUtil() -
getCriteriaBuilder
protected com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder getCriteriaBuilder() -
getRepositoryEntityTypeManager
protected com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager getRepositoryEntityTypeManager() -
getQueryHelper
-
getEntityManager
protected javax.persistence.EntityManager getEntityManager() -
getNarrowingHelper
protected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelper getNarrowingHelper() -
getBaseRepository
Lazy injection so we can access base repository methods. -
setBaseRepository
@Autowired @Lazy public void setBaseRepository(DataFeedProcessExecutionRepository<D> baseRepository) Lazy injection so we can access base repository methods. -
getNotificationStateService
protected com.broadleafcommerce.common.messaging.notification.NotificationStateService getNotificationStateService()Lazy injection since this is technically a service component. -
setNotificationStateService
@Autowired @Lazy public void setNotificationStateService(com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService) Lazy injection since this is technically a service component.
-