Class DefaultJpaRsqlFilterRulesCriteriaBuilder

    • Constructor Detail

      • DefaultJpaRsqlFilterRulesCriteriaBuilder

        public DefaultJpaRsqlFilterRulesCriteriaBuilder​(JpaCriteriaBuilderRsqlVisitor rsqlVisitor,
                                                        Collection<com.broadleafcommerce.data.tracking.core.filtering.fetch.rsql.CatalogFilterRulesMapping> ruleMappings)
    • Method Detail

      • buildContextCriteria

        public javax.persistence.criteria.Predicate buildContextCriteria​(@NonNull
                                                                         String filters,
                                                                         @NonNull
                                                                         Class<?> typeToRead,
                                                                         @NonNull
                                                                         Map<String,​Object> narrowingParams,
                                                                         javax.persistence.criteria.CriteriaBuilder builder,
                                                                         javax.persistence.criteria.AbstractQuery<?> criteriaQuery)
        Description copied from interface: JpaFiltersCriteriaBuilder
        Builds filter rule criteria based on a generic rsql expression included on the ContextInfo. Refer to ContextInfoCustomizer for more information on how to include one or more filter items on ContextInfo.
        Specified by:
        buildContextCriteria in interface JpaFiltersCriteriaBuilder
        Parameters:
        filters - One or more valid RSQL expressions against the target typeToRead, delimited by a semicolon character.
        typeToRead - java domain currently being queried
        narrowingParams - The key/value map of actual value to apply to the resulting parameterized query.
        builder - The jpa criteria query builder
        criteriaQuery - The current query being built up
        Returns:
        a single Criteria representing the filters that should be applied
      • buildCatalogCriteria

        public Optional<javax.persistence.criteria.Predicate> buildCatalogCriteria​(@Nullable
                                                                                   com.broadleafcommerce.data.tracking.core.tenant.domain.InheritanceLines inheritance,
                                                                                   @NonNull
                                                                                   Class<?> typeToRead,
                                                                                   @NonNull
                                                                                   Map<String,​Object> narrowingParams,
                                                                                   javax.persistence.criteria.CriteriaBuilder builder,
                                                                                   javax.persistence.criteria.AbstractQuery<?> criteriaQuery)
        Description copied from interface: JpaFiltersCriteriaBuilder
        Builds filter rule criteria based on a catalog hierarchy. Allows for more fine grained control for applying criteria within different levels of the hierarchy or differentiations for each member. If there is a single rule then the result will be non-empty and contain all of the catalogs applied as discriminated. If there are no inclusion or exclusion rules then this will return an empty optional
        Specified by:
        buildCatalogCriteria in interface JpaFiltersCriteriaBuilder
        Parameters:
        inheritance - the hierarchy being queried for. Can be null if this is not available in which case this will return an empty criteria
        typeToRead - java domain currently being queried
        narrowingParams - The key/value map of actual value to apply to the resulting parameterized query.
        builder - The jpa criteria query builder
        criteriaQuery - The current query being built up
        Returns:
        a single Criteria representing the filter rules that should be applied at each level in the hierarchy. This should include both rule-based catalog criteria along with catalog relationships that do not have any criteria