Class DetailTableItemFilterProcessor<S,Q extends FlexibleRelationalPathBase<?>,DQ extends FlexibleRelationalPathBase<DR>,DR>
java.lang.Object
com.evolveum.midpoint.repo.sqlbase.filtering.item.ItemValueFilterProcessor<PropertyValueFilter<String>>
com.evolveum.midpoint.repo.sqlbase.filtering.item.DetailTableItemFilterProcessor<S,Q,DQ,DR>
- Type Parameters:
S- schema type for the owner of the detail table mappingQ- query type (entity path) from which we traverse to the detail table (owner)DQ- query type for the detail (target) tableDR- row type related to theDetailTableItemFilterProcessor
- All Implemented Interfaces:
FilterProcessor<PropertyValueFilter<String>>,RightHandProcessor
public class DetailTableItemFilterProcessor<S,Q extends FlexibleRelationalPathBase<?>,DQ extends FlexibleRelationalPathBase<DR>,DR>
extends ItemValueFilterProcessor<PropertyValueFilter<String>>
Filter processor for a an attribute path (Prism item) that is stored in detail table.
Mapper using this processor defines how to get to the actual column on the detail table
and also takes the actual
ItemSqlMapper producing the right type of ItemValueFilterProcessor.-
Constructor Summary
ConstructorsConstructorDescriptionDetailTableItemFilterProcessor(SqlQueryContext<S, Q, ?> context, Class<DQ> detailQueryType, BiFunction<Q, DQ, com.querydsl.core.types.Predicate> joinOnPredicate, ItemSqlMapper<DQ, DR> nestedItemMapper) -
Method Summary
Modifier and TypeMethodDescriptionstatic <Q extends FlexibleRelationalPathBase<R>,R, DQ extends FlexibleRelationalPathBase<DR>, DR>
ItemSqlMapper<Q,R> mapper(@NotNull Class<DQ> detailQueryType, @NotNull BiFunction<Q, DQ, com.querydsl.core.types.Predicate> joinOnPredicate, @NotNull ItemSqlMapper<DQ, DR> nestedItemMapper) Creates composition mapper that defines: 1. how to traverse to the detail table and 2. specifies the actualItemSqlMapperused for the column on the detail table.com.querydsl.core.types.Predicateprocess(PropertyValueFilter<String> filter) Methods inherited from class com.evolveum.midpoint.repo.sqlbase.filtering.item.ItemValueFilterProcessor
createBinaryCondition, createUnsupportedMatchingRuleException, createUnsupportedMatchingRuleException, fuzzyStringPredicate, getSingleValue, isIgnoreCaseFilter, operation, predicateWithNotTreated, rightHand, singleValuePredicate, singleValuePredicateWithNotTreatedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.evolveum.midpoint.repo.sqlbase.filtering.FilterProcessor
process
-
Constructor Details
-
DetailTableItemFilterProcessor
public DetailTableItemFilterProcessor(SqlQueryContext<S, Q, ?> context, Class<DQ> detailQueryType, BiFunction<Q, DQ, com.querydsl.core.types.Predicate> joinOnPredicate, ItemSqlMapper<DQ, DR> nestedItemMapper)
-
-
Method Details
-
mapper
public static <Q extends FlexibleRelationalPathBase<R>,R, ItemSqlMapper<Q,DQ extends FlexibleRelationalPathBase<DR>, DR> R> mapper(@NotNull @NotNull Class<DQ> detailQueryType, @NotNull @NotNull BiFunction<Q, DQ, com.querydsl.core.types.Predicate> joinOnPredicate, @NotNull @NotNull ItemSqlMapper<DQ, DR> nestedItemMapper) Creates composition mapper that defines: 1. how to traverse to the detail table and 2. specifies the actualItemSqlMapperused for the column on the detail table. Note that the nested mapper works in the context using the joined path, so any item path mapping is already relative to the query type representing the detail table. See class javadoc for the meaning of other parametrized types.- Type Parameters:
R- row type related to theDetailTableItemFilterProcessor- Parameters:
detailQueryType- class of the starting query type (DetailTableItemFilterProcessor)joinOnPredicate- bi-function producing Querydsl JOIN-ONPredicatefor entity paths ofDetailTableItemFilterProcessorandDetailTableItemFilterProcessornestedItemMapper-ItemSqlMapperfor the column on the detail table that actually represents the target of the whole composition of mappers for the item path
-
process
public com.querydsl.core.types.Predicate process(PropertyValueFilter<String> filter) throws RepositoryException - Throws:
RepositoryException
-