Class JpaCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
java.lang.Object
com.broadleafcommerce.datafeed.provider.jpa.repository.trackable.JpaCustomizedDataFeedPublicationRepository<D>
- Type Parameters:
D- the persisted domain type
- All Implemented Interfaces:
CustomizedDataFeedPublicationRepository<D>,org.springframework.beans.factory.InitializingBean
public class JpaCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
extends Object
implements CustomizedDataFeedPublicationRepository<D>, org.springframework.beans.factory.InitializingBean
JPA implementation of
CustomizedDataFeedPublicationRepository.-
Constructor Summary
ConstructorsConstructorDescriptionJpaCustomizedDataFeedPublicationRepository(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 TypeMethodDescriptionvoidprotected DataFeedPublicationRepository<D>Lazy injection so we can access base repository methods.protected com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtilprotected com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilderprotected javax.persistence.EntityManagerprotected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelperprotected com.broadleafcommerce.common.messaging.notification.NotificationStateServiceLazy injection since this is technically a service component.protected JpaDataFeedQueryHelperprotected com.broadleafcommerce.common.jpa.RepositoryEntityTypeManagerprotected com.broadleafcommerce.common.messaging.notification.domain.NotificationStateinitializeAndResetNotificationState(D entity, String notificationStateName, Instant changeTimestamp) initializeNotificationState(List<String> ids, String messageType, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Atomically finds theDataFeedPublicationinstances for the givenids, and initializes theirNotificationStateformessageType.voidsetBaseRepository(DataFeedPublicationRepository<D> baseRepository) Lazy injection so we can access base repository methods.voidsetNotificationStateService(com.broadleafcommerce.common.messaging.notification.NotificationStateService notificationStateService) Lazy injection since this is technically a service component.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.
-
Constructor Details
-
JpaCustomizedDataFeedPublicationRepository
public JpaCustomizedDataFeedPublicationRepository(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:
afterPropertiesSetin interfaceorg.springframework.beans.factory.InitializingBean- Throws:
Exception
-
initializeNotificationState
@Policy(operationTypes=UPDATE) @Transactional("datafeedTransactionManager") public List<D> initializeNotificationState(List<String> ids, String messageType, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo) Description copied from interface:CustomizedDataFeedPublicationRepositoryAtomically finds theDataFeedPublicationinstances for the givenids, and initializes theirNotificationStateformessageType.- Specified by:
initializeNotificationStatein interfaceCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>- Parameters:
ids- theDataFeedPublication.getId()ids for which to initialize the notification state. 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)
-
initializeAndResetNotificationState
-
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:CustomizedDataFeedPublicationRepositoryAtomically sets a newDataFeedPublication.getStatus()andDataFeedPublication.getStartTime()on the specified publication.- Specified by:
setStatusAndStartTimein interfaceCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>- 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 @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:CustomizedDataFeedPublicationRepositoryAtomically sets a newDataFeedPublication.getStatus()and completion details on the specified publication.- Specified by:
setStatusAndCompletionDetailsin interfaceCustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>- 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
-
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
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.
-