Class DefaultJpaRsqlFilterRulesCriteriaBuilder
- java.lang.Object
-
- com.broadleafcommerce.data.tracking.jpa.filtering.fetch.rsql.DefaultJpaRsqlFilterRulesCriteriaBuilder
-
- All Implemented Interfaces:
JpaFiltersCriteriaBuilder
public class DefaultJpaRsqlFilterRulesCriteriaBuilder extends Object implements JpaFiltersCriteriaBuilder
Converts catalog filtration rules to JPA criteraPredicate
instances based on RSQL operations.- Author:
- Jeff Fischer
-
-
Constructor Summary
Constructors Constructor Description DefaultJpaRsqlFilterRulesCriteriaBuilder(JpaCriteriaBuilderRsqlVisitor rsqlVisitor, Collection<com.broadleafcommerce.data.tracking.core.filtering.fetch.rsql.CatalogFilterRulesMapping> ruleMappings)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Optional<javax.persistence.criteria.Predicate>
buildCatalogCriteria(com.broadleafcommerce.data.tracking.core.tenant.domain.InheritanceLines inheritance, Class<?> typeToRead, Map<String,Object> narrowingParams, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.AbstractQuery<?> criteriaQuery)
Builds filter rule criteria based on a catalog hierarchy.javax.persistence.criteria.Predicate
buildContextCriteria(String filters, Class<?> typeToRead, Map<String,Object> narrowingParams, javax.persistence.criteria.CriteriaBuilder builder, javax.persistence.criteria.AbstractQuery<?> criteriaQuery)
Builds filter rule criteria based on a generic rsql expression included on theContextInfo
.
-
-
-
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 theContextInfo
. Refer toContextInfoCustomizer
for more information on how to include one or more filter items on ContextInfo.- Specified by:
buildContextCriteria
in interfaceJpaFiltersCriteriaBuilder
- Parameters:
filters
- One or more valid RSQL expressions against the targettypeToRead
, delimited by a semicolon character.typeToRead
- java domain currently being queriednarrowingParams
- The key/value map of actual value to apply to the resulting parameterized query.builder
- The jpa criteria query buildercriteriaQuery
- 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 interfaceJpaFiltersCriteriaBuilder
- Parameters:
inheritance
- the hierarchy being queried for. Can be null if this is not available in which case this will return an empty criteriatypeToRead
- java domain currently being queriednarrowingParams
- The key/value map of actual value to apply to the resulting parameterized query.builder
- The jpa criteria query buildercriteriaQuery
- 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
-
-