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
  • 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

      public void afterPropertiesSet() throws Exception
      Specified by:
      afterPropertiesSet in interface org.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: CustomizedDataFeedPublicationRepository
      Atomically finds the DataFeedPublication instances for the given ids, and initializes their NotificationState for messageType.
      Specified by:
      initializeNotificationState in interface CustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
      Parameters:
      ids - the DataFeedPublication.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 DataFeedPublication instances that were successfully found and updated (omitting those which were not successfully updated)
    • initializeAndResetNotificationState

      protected com.broadleafcommerce.common.messaging.notification.domain.NotificationState initializeAndResetNotificationState(D entity, String notificationStateName, Instant changeTimestamp)
    • 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: CustomizedDataFeedPublicationRepository
      Atomically sets a new DataFeedPublication.getStatus() and DataFeedPublication.getStartTime() on the specified publication.
      Specified by:
      setStatusAndStartTime in interface CustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
      Parameters:
      id - the ID of the publication to update
      newStatus - the new value to set for DataFeedPublication.getStatus()
      startTime - the value to set for DataFeedPublication.getStartTime()
      whereCurrentStatus - (optional) if provided, the update will only be applied if the publication currently has this value for its DataFeedPublication.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: CustomizedDataFeedPublicationRepository
      Atomically sets a new DataFeedPublication.getStatus() and completion details on the specified publication.
      Specified by:
      setStatusAndCompletionDetails in interface CustomizedDataFeedPublicationRepository<D extends JpaDataFeedPublication>
      Parameters:
      id - the ID of the publication to update
      newStatus - the new value to set for DataFeedPublication.getStatus()
      endTime - the value to set for DataFeedPublication.getEndTime()
      containsErrors - the value to set for DataFeedPublication.isContainsErrors()
      errorDetails - (optional) the value to set for DataFeedPublication.getErrorDetails()
      whereCurrentStatus - (optional) if provided, the update will only be applied if the publication currently has this value for its DataFeedPublication.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

      protected JpaDataFeedQueryHelper getQueryHelper()
    • getEntityManager

      protected javax.persistence.EntityManager getEntityManager()
    • getNarrowingHelper

      protected com.broadleafcommerce.data.tracking.jpa.filtering.narrow.JpaNarrowingHelper getNarrowingHelper()
    • getBaseRepository

      protected DataFeedPublicationRepository<D> getBaseRepository()
      Lazy injection so we can access base repository methods.
    • setBaseRepository

      @Autowired @Lazy public void setBaseRepository(DataFeedPublicationRepository<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.