package org.infinispan.query.dsl;
import java.util.Collection;
/**
* The context that ends a condition. Here we are expected to specify the right hand side of the filter condition, the
* operator and the operand, in order to complete the filter.
*
* @author anistor@redhat.com
* @since 6.0
*/
public interface FilterConditionEndContext {
/**
* Checks that the left operand is equal to one of the (fixed) list of values given as argument.
*
* @param values the list of values
* @return the completed context
*/
FilterConditionContextQueryBuilder in(Object... values);
/**
* Checks that the left operand is equal to one of the elements from the Collection of values given as argument.
*
* @param values the collection of values
* @return the completed context
*/
FilterConditionContextQueryBuilder in(Collection values);
/**
* Checks that the left argument (which is expected to be a String) matches a wildcard pattern that follows the JPA
* rules.
*
* @param pattern the wildcard pattern
* @return the completed context
*/
FilterConditionContextQueryBuilder like(String pattern);
/**
* Checks that the left argument (which is expected to be an array or a Collection) contains the given element.
*
* @param value the value to check
* @return the completed context
*/
FilterConditionContextQueryBuilder contains(Object value);
/**
* Checks that the left argument (which is expected to be an array or a Collection) contains all of the the given
* elements, in any order.
*
* @param values the list of elements to check
* @return the completed context
*/
FilterConditionContextQueryBuilder containsAll(Object... values);
/**
* Checks that the left argument (which is expected to be an array or a Collection) contains all the elements of the
* given collection, in any order.
*
* @param values the Collection of elements to check
* @return the completed context
*/
FilterConditionContextQueryBuilder containsAll(Collection values);
/**
* Checks that the left argument (which is expected to be an array or a Collection) contains any of the the given
* elements.
*
* @param values the list of elements to check
* @return the completed context
*/
FilterConditionContextQueryBuilder containsAny(Object... values);
/**
* Checks that the left argument (which is expected to be an array or a Collection) contains any of the elements of
* the given collection.
*
* @param values the Collection of elements to check
* @return the completed context
*/
FilterConditionContextQueryBuilder containsAny(Collection values);
/**
* Checks that the left argument is null.
*
* @return the completed context
*/
FilterConditionContextQueryBuilder isNull();
/**
* Checks that the left argument is equal to the given value.
*
* @param value the value to compare with
* @return the completed context
*/
<T extends QueryBuilder & FilterConditionContext> T eq(Object value);
/**
* Alias for {@link #eq(Object)}
*/
FilterConditionContextQueryBuilder equal(Object value);
/**
* Checks that the left argument is less than the given value.
*
* @param value the value to compare with
* @return the completed context
*/
FilterConditionContextQueryBuilder lt(Object value);
/**
* Checks that the left argument is less than or equal to the given value.
*
* @param value the value to compare with
* @return the completed context
*/
FilterConditionContextQueryBuilder lte(Object value);
/**
* Checks that the left argument is greater than the given value.
*
* @param value the value to compare with
* @return the completed context
*/
FilterConditionContextQueryBuilder gt(Object value);
/**
* Checks that the left argument is greater than or equal to the given value.
*
* @param value the value to compare with
* @return the completed context
*/
FilterConditionContextQueryBuilder gte(Object value);
/**
* Checks that the left argument is between the given range limits. The limits are inclusive by default, but this can
* be changed using the methods from the returned {@link RangeConditionContext}
*
* @param from the start of the range
* @param to the end of the range
* @return the RangeConditionContext context
*/
RangeConditionContextQueryBuilder between(Object from, Object to);
}