package net.sourceforge.mayfly.evaluation.condition; import net.sourceforge.mayfly.datastore.Cell; import net.sourceforge.mayfly.evaluation.Expression; import net.sourceforge.mayfly.evaluation.ResultRow; import net.sourceforge.mayfly.evaluation.select.Evaluator; public class Equal extends RowExpression { public Equal(Expression leftSide, Expression rightSide) { super(leftSide, rightSide); } @Override protected boolean compare(Cell leftSide, Cell rightSide) { return leftSide.sqlEquals(rightSide); } @Override public Condition resolve(ResultRow row, Evaluator evaluator) { Expression newLeftSide = leftSide.resolve(row, evaluator); Expression newRightSide = rightSide.resolve(row, evaluator); if (newLeftSide != leftSide || newRightSide != rightSide) { return new Equal(newLeftSide, newRightSide); } else { return this; } } }