package uk.ac.imperial.lsds.streamsql.expressions; import java.io.Serializable; import java.util.List; import uk.ac.imperial.lsds.seep.comm.serialization.DataTuple; import uk.ac.imperial.lsds.streamsql.conversion.TypeConversion; import uk.ac.imperial.lsds.streamsql.visitors.ValueExpressionVisitor; public interface IValueExpression<T extends Comparable<T>> extends Serializable { public void accept(ValueExpressionVisitor vev); public void changeValues(int i, IValueExpression<T> newExpr); public T eval(DataTuple tuple); public String evalString(DataTuple tuple); // not ValueExpression<T> because inside might be other type(as in // IntegerYearFromDate) public List<IValueExpression> getInnerExpressions(); public TypeConversion getType(); public void inverseNumber(); public boolean isNegative(); }