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
ConstructorDescriptionDetailTableItemFilterProcessor
(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.com.querydsl.core.types.Predicate
process
(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, singleValuePredicateWithNotTreated
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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 actualItemSqlMapper
used 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-ONPredicate
for entity paths ofDetailTableItemFilterProcessor
andDetailTableItemFilterProcessor
nestedItemMapper
-ItemSqlMapper
for 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
-