Class JpaCustomizedDataDrivenEnumRepository<D extends JpaDataDrivenEnum>

java.lang.Object
com.broadleafcommerce.catalog.provider.jpa.repository.enumeration.JpaCustomizedDataDrivenEnumRepository<D>
All Implemented Interfaces:
CustomizedDataDrivenEnumRepository<D>, org.springframework.beans.factory.InitializingBean

public class JpaCustomizedDataDrivenEnumRepository<D extends JpaDataDrivenEnum> extends Object implements CustomizedDataDrivenEnumRepository<D>, org.springframework.beans.factory.InitializingBean
Author:
Sunny Yu
  • Constructor Details

    • JpaCustomizedDataDrivenEnumRepository

      public JpaCustomizedDataDrivenEnumRepository(com.broadleafcommerce.data.tracking.core.TrackableBehaviorUtil behaviorUtil, com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaFiltersCriteriaBuilder filterRulesCriteriaBuilder, com.broadleafcommerce.common.jpa.RepositoryEntityTypeManager repositoryEntityTypeManager)
  • Method Details

    • afterPropertiesSet

      public void afterPropertiesSet()
      Specified by:
      afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
    • setRepository

      @Autowired @Lazy public void setRepository(DataDrivenEnumRepository<D> repository)
    • setRsqlQueryTransformers

      @Autowired @Lazy public void setRsqlQueryTransformers(List<com.broadleafcommerce.data.tracking.core.service.RsqlQueryTransformer> rsqlQueryTransformers)
    • setRsqlVisitor

      @Autowired @Lazy public void setRsqlVisitor(com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.JpaCriteriaBuilderRsqlVisitor rsqlVisitor)
    • findAllByContextIdIn

      public Stream<D> findAllByContextIdIn(Collection<String> contextIds, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CustomizedDataDrivenEnumRepository
      Retrieves all data driven enums whose context IDs match any of the given IDs.
      Specified by:
      findAllByContextIdIn in interface CustomizedDataDrivenEnumRepository<D extends JpaDataDrivenEnum>
      Parameters:
      contextIds - the context IDs to query for
      contextInfo - context information around sandbox and multitenant state
      Returns:
      all data driven enums whose context IDs match any of the given IDs
    • findAllByContextIdIn

      public Stream<D> findAllByContextIdIn(Collection<String> contextIds, @Nullable cz.jirutka.rsql.parser.ast.Node filters, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Specified by:
      findAllByContextIdIn in interface CustomizedDataDrivenEnumRepository<D extends JpaDataDrivenEnum>
    • findDistinctTypes

      public List<String> findDistinctTypes(@NonNull @NonNull cz.jirutka.rsql.parser.ast.Node filters, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
      Description copied from interface: CustomizedDataDrivenEnumRepository
      Retrieves all distinct data driven enum types.
      Specified by:
      findDistinctTypes in interface CustomizedDataDrivenEnumRepository<D extends JpaDataDrivenEnum>
      Parameters:
      filters - additional filters to apply in the query
      contextInfo - context information around sandbox and multitenant state
      Returns:
      all distinct data driven enum types
    • buildContextIdInFilter

      protected jakarta.persistence.criteria.Predicate buildContextIdInFilter(Collection<String> contextIds, jakarta.persistence.criteria.Root<D> dataDrivenEnumEntity, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, Map<String,Object> parameterValues)
    • applyRsqlCriteria

      protected LinkedRSQLQueryDetails applyRsqlCriteria(cz.jirutka.rsql.parser.ast.Node filters, jakarta.persistence.criteria.CriteriaBuilder criteriaBuilder, jakarta.persistence.criteria.CriteriaQuery<?> nativeQuery, Map<String,Object> nativeQueryParams, List<jakarta.persistence.criteria.Predicate> nativePredicates)
      Processes the given filters to build and apply the necessary Predicate for RSQL.
      Parameters:
      filters - RSQL filters to apply in the query. Should be EmptyNode if no additional filters should be applied.
      criteriaBuilder - the criteria builder used to generate parameters/predicates. Only used as an argument to populate the CriteriaContext in CriteriaContext.withBuilder(CriteriaBuilder).
      nativeQuery - the native query for the original request. Only used as an argument to populate the CriteriaContext in CriteriaContext.withCriteriaQuery(AbstractQuery).
      nativeQueryParams - the parameter values for the nativeQuery. Only used as an argument to populate the CriteriaContext in CriteriaContext.withNarrowingParams(Map).
      nativePredicates - the list of predicates that will be applied on nativeQuery. If the filters are not for linked fields, then the Predicate will be added to this list.
      Returns:
      the CriteriaContext.getLinkedQuery() and CriteriaContext.getLinkedNarrowingParams() that were produced during processing. While the wrapper object will not be null, any/all of its fields can be (for example, if the filters were not on linked fields). These values are useful for ultimately being supplied to JpaNarrowingHelper.JpaCriterias.
    • getManagedType

      protected Class<D> getManagedType()
    • getNarrowingHelper

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

      protected jakarta.persistence.EntityManager getEntityManager()
    • getRsqlParser

      protected cz.jirutka.rsql.parser.RSQLParser getRsqlParser()
    • setRsqlParser

      public void setRsqlParser(cz.jirutka.rsql.parser.RSQLParser rsqlParser)
    • getRepository

      protected DataDrivenEnumRepository<D> getRepository()