/*
* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*/
package org.geotools.filter;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.filter.PropertyIsBetween;
/**
* Defines a 'between' filter (which is a specialized compare filter). A
* between filter is just shorthand for a less-than-or-equal filter ANDed with
* a greater-than-or-equal filter. Arguably, this would be better handled
* using those constructs, but the OGC filter specification creates its own
* object for this, so we do as well. An important note here is that a
* between filter is actually a math filter, so its outer (left and right)
* expressions must be math expressions. This is enforced by the
* FilterAbstract class, which considers a BETWEEN operator to be a math
* filter.
*
* @author Rob Hranac, TOPP
* @source $URL$
* @version $Id$
*
* @deprecated use {@link org.opengis.filter.PropertyIsBetween}
*/
public interface BetweenFilter extends CompareFilter, PropertyIsBetween {
/**
* Determines whether or not a given feature is 'inside' this filter.
*
* @param feature Specified feature to examine.
*
* @return Whether or not this feature is inside the filter.
*
* @deprecated use {@link org.opengis.filter.Filter#evaluate(Feature)}
*/
boolean contains(SimpleFeature feature);
/**
* @deprecated use {@link PropertyIsBetween#getLowerBoundary()}
*/
org.opengis.filter.expression.Expression getExpression1();
/**
* @deprecated use {@link PropertyIsBetween#getUpperBoundary()()}
*/
org.opengis.filter.expression.Expression getExpression2();
/**
* @deprecated use {@link PropertyIsBetween#setLowerBoundary(Expression)()}
*/
void setExpression1(org.opengis.filter.expression.Expression expression);
/**
* @deprecated use {@link PropertyIsBetween#setUpperBoundary(Expression)()}
*/
void setExpression2(org.opengis.filter.expression.Expression expression);
/**
* Gets the middle value of the between. Should generally be an
* AttributeExpression: 1 <= area <= 200 makes sense,
* 1 <= 200 <= area should just use a less-than-or-equal filter.
*
* @return the expression in the middle.
*
* @deprecated use {@link PropertyIsBetween#getExpression()}
*/
Expression getMiddleValue();
/**
* Sets the values to be compared as between the left and right values.
*
* @param middleValue The expression to be compared.
* @task REVISIT: rename to setMiddleValue? You can't have more than 1.
*
* @deprecated use {@link PropertyIsBetween#setExpression(Expression)}
*/
void addMiddleValue(Expression middleValue);
}