Class ValueFilterValues<T,V>
- java.lang.Object
-
- com.evolveum.midpoint.repo.sqlbase.filtering.ValueFilterValues<T,V>
-
- Type Parameters:
T
- type of filter valueV
- type of value after conversion (can be the same as T)
public abstract class ValueFilterValues<T,V> extends Object
Object wraps zero, one or multiple values and makes their processing easier. Instead of just wrapping the values it uses the whole filter object to utilize its convenience methods. Returned values are typed to Object, because they can be converted from original type. Conversion is moved into this class, so the client code doesn't have to handle translation fromPrismPropertyValue
to "real value" and then to convert it. BothsingleValue()
andallValues()
are handled the same way. If#conversionFunction
is used anyIllegalArgumentException
will be re-wrapped asQueryException
, other runtime exceptions are not intercepted.
-
-
Field Summary
Fields Modifier and Type Field Description protected @NotNull PropertyValueFilter<T>
filter
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description @NotNull List<V>
allValues()
Returns multiple values, all converted, or empty list - never null.@NotNull List<T>
allValuesRaw()
Returns multiple real values without conversion or empty list - never null.static <T> ValueFilterValues<T,T>
from(@NotNull PropertyValueFilter<T> filter)
static <T,V>
ValueFilterValues<T,V>from(@NotNull PropertyValueFilter<T> filter, @Nullable Function<T,V> conversionFunction)
static <T,V>
ValueFilterValues<T,V>from(@NotNull PropertyValueFilter<T> filter, com.querydsl.core.types.Expression<?> expression)
boolean
isEmpty()
boolean
isMultiValue()
abstract V
singleValue()
Returns single value or null or fails if there are multiple values, all converted.abstract T
singleValueRaw()
Returns single value or null or fails if there are multiple values without conversion.
-
-
-
Field Detail
-
filter
@NotNull protected final @NotNull PropertyValueFilter<T> filter
-
-
Method Detail
-
from
public static <T> ValueFilterValues<T,T> from(@NotNull @NotNull PropertyValueFilter<T> filter)
-
from
public static <T,V> ValueFilterValues<T,V> from(@NotNull @NotNull PropertyValueFilter<T> filter, com.querydsl.core.types.Expression<?> expression)
-
from
public static <T,V> ValueFilterValues<T,V> from(@NotNull @NotNull PropertyValueFilter<T> filter, @Nullable @Nullable Function<T,V> conversionFunction)
-
singleValue
@Nullable public abstract V singleValue() throws QueryException
Returns single value or null or fails if there are multiple values, all converted.- Throws:
QueryException
-
singleValueRaw
@Nullable public abstract T singleValueRaw()
Returns single value or null or fails if there are multiple values without conversion. Null-safe version ofValueFilter.getSingleValue()
followed byPrismPropertyValue.getRealValue()
.
-
allValues
@NotNull public @NotNull List<V> allValues()
Returns multiple values, all converted, or empty list - never null.
-
allValuesRaw
@NotNull public @NotNull List<T> allValuesRaw()
Returns multiple real values without conversion or empty list - never null.
-
isEmpty
public boolean isEmpty()
-
isMultiValue
public boolean isMultiValue()
-
-