Class ItemValueFilterProcessor<O extends ValueFilter<?,?>>
- java.lang.Object
-
- com.evolveum.midpoint.repo.sqlbase.filtering.item.ItemValueFilterProcessor<O>
-
- All Implemented Interfaces:
FilterProcessor<O>
,RightHandProcessor
- Direct Known Subclasses:
DetailTableItemFilterProcessor
,PolyStringItemFilterProcessor
,SinglePathItemFilterProcessor
public abstract class ItemValueFilterProcessor<O extends ValueFilter<?,?>> extends Object implements FilterProcessor<O>, RightHandProcessor
Type ofFilterProcessor
for a single Prism item (not necessarily one SQL column). These are executed as "leaves" of filter processing tree returning terminal predicates. These are used inQueryTableMapping
objects. This superclass contains support methods for determining operator from filter, getting single value and other typical operations needed by item filter processors. SeeValueFilterProcessor
for details how complex paths are resolved to its last part.
-
-
Field Summary
Fields Modifier and Type Field Description protected SqlQueryContext<?,?,?>
context
-
Constructor Summary
Constructors Modifier Constructor Description protected
ItemValueFilterProcessor(SqlQueryContext<?,?,?> context)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T> @NotNull com.querydsl.core.types.Predicate
createBinaryCondition(ValueFilter<?,?> filter, com.querydsl.core.types.Path<T> path, ValueFilterValues<?,T> values)
protected <T> T
getSingleValue(PropertyValueFilter<T> filter)
Returns the single "real" value from the property filter (or null).protected boolean
isIgnoreCaseFilter(ValueFilter<?,?> filter)
protected FilterOperation
operation(ValueFilter<?,?> filter)
protected com.querydsl.core.types.Predicate
predicateWithNotTreated(com.querydsl.core.types.Expression<?> path, com.querydsl.core.types.Predicate predicate)
Returns the predicate or (predicate AND path IS NOT NULL) if NOT is used somewhere above.com.querydsl.core.types.Expression<?>
rightHand(ValueFilter<?,?> filter)
protected com.querydsl.core.types.Predicate
singleValuePredicate(com.querydsl.core.types.Expression<?> path, FilterOperation operation, Object value)
protected com.querydsl.core.types.Predicate
singleValuePredicateWithNotTreated(com.querydsl.core.types.Expression<?> path, FilterOperation operation, Object value)
Creates predicate for specified path and value using the provided operator.-
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, process
-
-
-
-
Field Detail
-
context
protected final SqlQueryContext<?,?,?> context
-
-
Constructor Detail
-
ItemValueFilterProcessor
protected ItemValueFilterProcessor(SqlQueryContext<?,?,?> context)
-
-
Method Detail
-
getSingleValue
@Nullable protected <T> T getSingleValue(PropertyValueFilter<T> filter)
Returns the single "real" value from the property filter (or null).
-
operation
protected FilterOperation operation(ValueFilter<?,?> filter) throws QueryException
- Throws:
QueryException
-
isIgnoreCaseFilter
protected boolean isIgnoreCaseFilter(ValueFilter<?,?> filter)
-
createBinaryCondition
@NotNull protected <T> @NotNull com.querydsl.core.types.Predicate createBinaryCondition(ValueFilter<?,?> filter, com.querydsl.core.types.Path<T> path, ValueFilterValues<?,T> values) throws QueryException
- Throws:
QueryException
-
singleValuePredicateWithNotTreated
protected com.querydsl.core.types.Predicate singleValuePredicateWithNotTreated(com.querydsl.core.types.Expression<?> path, FilterOperation operation, Object value)
Creates predicate for specified path and value using the provided operator. If the value is not QuerydslExpression
it is changed to constant expression, otherwise the expression is passed as-is. Technically, any expression can be used on path side as well.
-
singleValuePredicate
protected com.querydsl.core.types.Predicate singleValuePredicate(com.querydsl.core.types.Expression<?> path, FilterOperation operation, Object value)
-
predicateWithNotTreated
protected com.querydsl.core.types.Predicate predicateWithNotTreated(com.querydsl.core.types.Expression<?> path, com.querydsl.core.types.Predicate predicate)
Returns the predicate or (predicate AND path IS NOT NULL) if NOT is used somewhere above. This makes NOT truly complementary to non-NOT result.
-
rightHand
public com.querydsl.core.types.Expression<?> rightHand(ValueFilter<?,?> filter) throws RepositoryException
- Specified by:
rightHand
in interfaceRightHandProcessor
- Throws:
RepositoryException
-
-