/** * Constructor. * @param expression Filter expression (not null) * @param from Minimum value * @param to Maximum value */ public BetweenFilter(TypedExpression<T> expression, T from, T to) { super(expression, FilterOperator.BETWEEN, CollectionConstantExpression.create(expression, from, to)); }
@Override public Optional<TemporalType> getTemporalType() { if (temporalType != null) { return Optional.of(temporalType); } return CollectionConstantExpression.super.getTemporalType(); }
@SuppressWarnings("unchecked") @Override public Optional<FieldValue> resolve(CollectionConstantExpression expression, MongoResolutionContext context) throws InvalidExpressionException { // validate expression.validate(); // resolve return context.resolve(Value.create(expression.getValue(), expression), FieldValue.class); }
@Override public Optional<QueryDslExpression> resolve(CollectionConstantExpression expression, QueryDslResolutionContext context) throws InvalidExpressionException { // validate expression.validate(); // return a constant return Optional.of(QueryDslExpression.create(ConstantImpl.create(expression.getModelValue()))); }
/** * Build a {@link QueryFilter} using given <code>expression</code>, which checks if expression value is equal to any * of the given constant values. * @param <T> Expression type * @param expression Filter expression (not null) * @param values Filter values (not null) * @return QueryFilter */ static <T> QueryFilter in(TypedExpression<T> expression, Collection<T> values) { return in(expression, CollectionConstantExpression.create(expression, values)); }
/** * Build a {@link QueryFilter} using given <code>expression</code>, which checks if expression value is not included * in given constant values. * @param <T> Expression type * @param expression Filter expression (not null) * @param values Filter values (not null) * @return QueryFilter */ @SuppressWarnings("unchecked") static <T> QueryFilter nin(TypedExpression<T> expression, T... values) { return nin(expression, CollectionConstantExpression.create(expression, values)); }
/** * Build a {@link QueryFilter} using given <code>expression</code>, which checks if expression value is not included * in given constant values. * @param <T> Expression type * @param expression Filter expression (not null) * @param values Filter values (not null) * @return QueryFilter */ static <T> QueryFilter nin(TypedExpression<T> expression, Collection<T> values) { return nin(expression, CollectionConstantExpression.create(expression, values)); }
/** * Build a {@link QueryFilter} using given <code>expression</code>, which checks if expression value is equal to any * of the given constant values. * @param <T> Expression type * @param expression Filter expression (not null) * @param values Filter values (not null) * @return QueryFilter */ @SuppressWarnings("unchecked") static <T> QueryFilter in(TypedExpression<T> expression, T... values) { return in(expression, CollectionConstantExpression.create(expression, values)); }