private static void getTriggers(XPathExpression x, List <TreeReference> v) { if (x is XPathPathExpr) { TreeReference ref_ = ((XPathPathExpr)x).getReference(); if (!v.Contains(ref_)) { v.Add(ref_); } } else if (x is XPathBinaryOpExpr) { getTriggers(((XPathBinaryOpExpr)x).a, v); getTriggers(((XPathBinaryOpExpr)x).b, v); } else if (x is XPathUnaryOpExpr) { getTriggers(((XPathUnaryOpExpr)x).a, v); } else if (x is XPathFuncExpr) { XPathFuncExpr fx = (XPathFuncExpr)x; for (int i = 0; i < fx.args.Length; i++) { getTriggers(fx.args[i], v); } } }
private void evaluatePivot(CmpPivot pivot, IConditionExpr conditional, EvaluationContext c, FormInstance instance) { double unit = this.unit(); double val = pivot.Val; double lt = val - unit; double gt = val + unit; c.isConstraint = true; c.candidateValue = (IAnswerData)(Object)castToValue(val); Boolean eq = XPathFuncExpr.toBoolean(conditional.eval(instance, c)); c.candidateValue = (IAnswerData)(Object)castToValue(lt); Boolean ltr = XPathFuncExpr.toBoolean(conditional.eval(instance, c)); c.candidateValue = (IAnswerData)(Object)castToValue(gt); Boolean gtr = XPathFuncExpr.toBoolean(conditional.eval(instance, c)); if (ltr && !gtr) { max = (Double)(val); maxInclusive = eq; } if (!ltr && gtr) { min = (Double)(val); minInclusive = eq; } }
public String evalReadable(FormInstance model, EvaluationContext evalContext) { return(XPathFuncExpr.ToString(evalRaw(model, evalContext))); }
public Boolean eval(FormInstance model, EvaluationContext evalContext) { return(XPathFuncExpr.toBoolean(evalRaw(model, evalContext))); }
public Object evalRaw(FormInstance model, EvaluationContext evalContext) { return(XPathFuncExpr.unpack(expr.eval(model, evalContext))); }
protected DateData castToValue(double value) { DateTime dt = (DateTime)XPathFuncExpr.toDate((Double)(Math.Floor(value))); return(new DateData(ref dt)); }