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 actualItemSqlMapper
producing the right type ofItemValueFilterProcessor
.
-
-
Constructor Summary
Constructors Constructor Description DetailTableItemFilterProcessor(SqlQueryContext<S,Q,?> context, Class<DQ> detailQueryType, BiFunction<Q,DQ,com.querydsl.core.types.Predicate> joinOnPredicate, ItemSqlMapper<DQ,DR> nestedItemMapper)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <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, 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 Detail
-
DetailTableItemFilterProcessor
public DetailTableItemFilterProcessor(SqlQueryContext<S,Q,?> context, Class<DQ> detailQueryType, BiFunction<Q,DQ,com.querydsl.core.types.Predicate> joinOnPredicate, ItemSqlMapper<DQ,DR> nestedItemMapper)
-
-
Method Detail
-
mapper
public static <Q extends FlexibleRelationalPathBase<R>,R,DQ extends FlexibleRelationalPathBase<DR>,DR> ItemSqlMapper<Q,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
-
-