/** * The contents of this file are subject to the Open Software License * Version 3.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.opensource.org/licenses/osl-3.0.txt * * Software distributed under the License is distributed on an "AS IS" * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See * the License for the specific language governing rights and limitations * under the License. */ package org.mulgara.query.filter.value; import org.mulgara.query.QueryException; import org.mulgara.query.filter.Filter; import org.mulgara.query.filter.RDFTerm; /** * Represents expressions that can appear in a comparison expression, used by filters * * @created Mar 10, 2008 * @author Paula Gearon * @copyright © 2008 <a href="http://www.topazproject.org/">The Topaz Project</a> * @licence <a href="{@docRoot}/../../LICENCE.txt">Open Software License v3.0</a> */ public interface ComparableExpression extends RDFTerm, Filter { /** * Returns the data represented by this expression. * @return The represented data. * @throws QueryException Resolving the data for this value leads to an error. */ public Object getValue() throws QueryException; /** * A value based magnitude test. * @param v The object to compare to * @return <code>true</code> iff v has a greater value than the current object. * @throws QueryException Resolving the data for this value leads to an error, * or the types are incompatible. */ public boolean lessThan(ComparableExpression v) throws QueryException; /** * A value based magnitude test. * @param v The object to compare to * @return <code>true</code> iff v has a lesser value than the current object. * @throws QueryException Resolving the data for this value leads to an error, * or the types are incompatible. */ public boolean greaterThan(ComparableExpression v) throws QueryException; /** * A value based magnitude test. * @param v The object to compare to * @return <code>false</code> iff v has a lesser value than the current object. * @throws QueryException Resolving the data for this value leads to an error, * or the types are incompatible. */ public boolean lessThanEqualTo(ComparableExpression v) throws QueryException; /** * A value based magnitude test. * @param v The object to compare to * @return <code>false</code> iff v has a greater value than the current object. * @throws QueryException Resolving the data for this value leads to an error, * or the types are incompatible. */ public boolean greaterThanEqualTo(ComparableExpression v) throws QueryException; }