/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.query.dsl; /** * @author Emmanuel Bernard */ public interface RangeMatchingContext extends FieldCustomization<RangeMatchingContext> { /** * field / property the term query is executed on * @param field the name of the field * @return the {@link RangeMatchingContext} */ RangeMatchingContext andField(String field); //TODO what about numeric range query, I guess we can detect it automatically based on the field bridge //TODO get info on precisionStepDesc (index time info) //FIXME: Is <T> correct or should we specialize to String and Numeric (or all the numeric types? <T> FromRangeContext<T> from(T from); public interface FromRangeContext<T> { RangeTerminationExcludable to(T to); FromRangeContext<T> excludeLimit(); } /** * The field value must be below <code>below</code> * You can exclude the value <code>below</code> by calling <code>.excludeLimit()</code> * @param below the lower limit of the range * @return a {@link RangeTerminationExcludable} */ RangeTerminationExcludable below(Object below); /** * The field value must be above <code>above</code> * You can exclude the value <code>above</code> by calling <code>.excludeLimit()</code> * @param above the upper limit of the range * @return a {@link RangeTerminationExcludable} */ RangeTerminationExcludable above(Object above); }