/* * 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.expression.BinaryExpression; /** * Holds a mathematical relationship between two expressions. Note that the sub * expressions must be math expressions. In other words, they must be a math * literal, another math expression, or a feature attribute with a declared * math type. You may create math expressions of arbitrary complexity by * nesting other math expressions as sub expressions in one or more math * expressions. This filter defines left and right values to clarify the sub * expression precedence for non-associative operations, such as subtraction * and division. For example, the left value is the numerator and the right is * the denominator in an ExpressionMath division operation. * * @author Rob Hranac, Vision for New York * @source $URL$ * @version $Id$ * * @deprecated use {@link org.opengis.filter.expression.BinaryExpression} */ public interface MathExpression extends Expression, BinaryExpression { /** * Returns the value for this expression. * * @param feature Feature to use when return sub expression values. * * @return Value of this expression. * * @deprecated use {@link Expression#evaluate(Feature)}. * */ Object getValue(SimpleFeature feature); /** * Adds the 'right' value to this expression. * * @param rightValue Expression to add to this expression. * * @throws IllegalFilterException Attempting to add non-math expression. * * @deprecated use {@link BinaryExpression#setExpression2(Expression)} */ void addRightValue(Expression rightValue) throws IllegalFilterException; /** * Gets the type of this expression. * * @return Expression type. * @deprecated The expression type system has been replaced by an actual * class type system. */ short getType(); /** * Gets the left expression. * * @return the expression on the left of the comparison. * @deprecated use {@link BinaryExpression#getExpression1()}. */ Expression getLeftValue(); /** * Gets the right expression. * * @return the expression on the right of the comparison. * @deprecated use {@link BinaryExpression#getExpression2()}. */ Expression getRightValue(); /** * Adds the 'left' value to this expression. * * @param leftValue Expression to add to this expression. * * @throws IllegalFilterException Attempting to add non-math expression. * * @deprecated use {@link BinaryExpression#setExpression1(Expression)} */ void addLeftValue(Expression leftValue) throws IllegalFilterException; }