package net.sourceforge.mayfly.evaluation.condition; import net.sourceforge.mayfly.evaluation.ResultRow; import net.sourceforge.mayfly.evaluation.select.Evaluator; public class Or extends Condition { public final Condition leftSide; public final Condition rightSide; public Or(Condition leftSide, Condition rightSide) { this.leftSide = leftSide; this.rightSide = rightSide; } @Override public boolean evaluate(ResultRow row, Evaluator evaluator) { return leftSide.evaluate(row, evaluator) || rightSide.evaluate(row, evaluator); } @Override public Condition resolve(ResultRow row, Evaluator evaluator) { Condition newLeftSide = leftSide.resolve(row, evaluator); Condition newRightSide = rightSide.resolve(row, evaluator); if (newLeftSide != leftSide || newRightSide != rightSide) { return new Or(newLeftSide, newRightSide); } else { return this; } } @Override public String firstAggregate() { return firstAggregate(leftSide, rightSide); } @Override public void check(ResultRow row) { leftSide.check(row); rightSide.check(row); } }