@Override public EvalNode bind(EvalContext evalContext, Schema schema) { super.bind(evalContext, schema); if (begin.getType() == EvalType.CONST && end.getType() == EvalType.CONST) { Datum beginValue = ((ConstEval)begin).getValue(); Datum endValue = ((ConstEval)end).getValue(); if (symmetric || beginValue.compareTo(endValue) <= 0) { checker = new ConstantChecker(not, predicand, beginValue, endValue); } else { checker = new AsymmetricChecker(not, predicand, begin, end); } } else { if (symmetric) { checker = new SymmetricChecker(not, predicand, begin, end); } else { checker = new AsymmetricChecker(not, predicand, begin, end); } } checker.bind(evalContext, schema); return this; }
@Override @SuppressWarnings("unchecked") public Datum eval(Tuple tuple) { super.eval(tuple); return checker.eval(tuple); }
@Override public EvalNode bind(EvalContext evalContext, Schema schema) { super.bind(evalContext, schema); if (begin.getType() == EvalType.CONST && end.getType() == EvalType.CONST) { Datum beginValue = ((ConstEval)begin).getValue(); Datum endValue = ((ConstEval)end).getValue(); if (symmetric || beginValue.compareTo(endValue) <= 0) { checker = new ConstantChecker(not, predicand, beginValue, endValue); } else { checker = new AsymmetricChecker(not, predicand, begin, end); } } else { if (symmetric) { checker = new SymmetricChecker(not, predicand, begin, end); } else { checker = new AsymmetricChecker(not, predicand, begin, end); } } checker.bind(evalContext, schema); return this; }
@Override @SuppressWarnings("unchecked") public Datum eval(Tuple tuple) { super.eval(tuple); return checker.eval(tuple); }