Class DetailTableItemFilterProcessor<Q extends FlexibleRelationalPathBase<?>,DQ extends FlexibleRelationalPathBase<DR>,DR>
- java.lang.Object
-
- com.evolveum.midpoint.repo.sqlbase.filtering.item.ItemFilterProcessor<PropertyValueFilter<String>>
-
- com.evolveum.midpoint.repo.sqlbase.filtering.item.DetailTableItemFilterProcessor<Q,DQ,DR>
-
- All Implemented Interfaces:
FilterProcessor<PropertyValueFilter<String>>
public class DetailTableItemFilterProcessor<Q extends FlexibleRelationalPathBase<?>,DQ extends FlexibleRelationalPathBase<DR>,DR> extends ItemFilterProcessor<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 ofItemFilterProcessor
.
-
-
Field Summary
-
Fields inherited from class com.evolveum.midpoint.repo.sqlbase.filtering.item.ItemFilterProcessor
context
-
-
Constructor Summary
Constructors Constructor Description DetailTableItemFilterProcessor(SqlQueryContext<?,?,?> ctx, Class<DQ> detailQueryType, BiFunction<Q,DQ,com.querydsl.core.types.Predicate> joinOnPredicate, ItemSqlMapper nestedItemMapper)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <Q extends FlexibleRelationalPathBase<?>,DQ extends FlexibleRelationalPathBase<DR>,DR>
ItemSqlMappermapper(@NotNull Class<DQ> detailQueryType, @NotNull BiFunction<Q,DQ,com.querydsl.core.types.Predicate> joinOnPredicate, @NotNull ItemSqlMapper 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.ItemFilterProcessor
createBinaryCondition, getSingleValue, isIgnoreCaseFilter, operation, predicateWithNotTreated, singleValuePredicate
-
-
-
-
Constructor Detail
-
DetailTableItemFilterProcessor
public DetailTableItemFilterProcessor(SqlQueryContext<?,?,?> ctx, Class<DQ> detailQueryType, BiFunction<Q,DQ,com.querydsl.core.types.Predicate> joinOnPredicate, ItemSqlMapper nestedItemMapper)
-
-
Method Detail
-
mapper
public static <Q extends FlexibleRelationalPathBase<?>,DQ extends FlexibleRelationalPathBase<DR>,DR> ItemSqlMapper mapper(@NotNull @NotNull Class<DQ> detailQueryType, @NotNull @NotNull BiFunction<Q,DQ,com.querydsl.core.types.Predicate> joinOnPredicate, @NotNull @NotNull ItemSqlMapper 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.- Type Parameters:
Q
- query type (entity path) from which we traverse to the detail tableDQ
- query type for the detail tableDR
- 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
-
-