public Object computeValue(EvalContext context) { double l = InfoSetUtil.doubleValue(args[0].computeValue(context)); double r = InfoSetUtil.doubleValue(args[1].computeValue(context)); return new Double(l - r); }
public Object computeValue(EvalContext context) { double s = 0.0; for (int i = 0; i < args.length; i++) { s += InfoSetUtil.doubleValue(args[i].computeValue(context)); } return new Double(s); }
public Object computeValue(EvalContext context) { double l = InfoSetUtil.doubleValue(args[0].computeValue(context)); double r = InfoSetUtil.doubleValue(args[1].computeValue(context)); return new Double(l * r); }
public Object computeValue(EvalContext context) { long l = (long) InfoSetUtil.doubleValue(args[0].computeValue(context)); long r = (long) InfoSetUtil.doubleValue(args[1].computeValue(context)); return new Double(l % r); }
public Object computeValue(EvalContext context) { for (int i = 0; i < args.length; i++) { if (!InfoSetUtil.booleanValue(args[i].computeValue(context))) { return Boolean.FALSE; } } return Boolean.TRUE; }
public Object computeValue(EvalContext context) { double l = InfoSetUtil.doubleValue(args[0].computeValue(context)); double r = InfoSetUtil.doubleValue(args[1].computeValue(context)); return new Double(l / r); }
public Object computeValue(EvalContext context) { for (int i = 0; i < args.length; i++) { if (InfoSetUtil.booleanValue(args[i].computeValue(context))) { return Boolean.TRUE; } } return Boolean.FALSE; }
public Object computeValue(EvalContext context) { double a = InfoSetUtil.doubleValue(args[0].computeValue(context)); return new Double(-a); }
/** * ceiling() implementation. * @param context evaluation context * @return Number */ protected Object functionCeiling(EvalContext context) { assertArgCount(1); double v = InfoSetUtil.doubleValue(getArg1().computeValue(context)); if (Double.isNaN(v) || Double.isInfinite(v)) { return new Double(v); } return new Double(Math.ceil(v)); }
/** * floor() implementation. * @param context evaluation context * @return Number */ protected Object functionFloor(EvalContext context) { assertArgCount(1); double v = InfoSetUtil.doubleValue(getArg1().computeValue(context)); if (Double.isNaN(v) || Double.isInfinite(v)) { return new Double(v); } return new Double(Math.floor(v)); }
/** * round() implementation. * @param context evaluation context * @return Number */ protected Object functionRound(EvalContext context) { assertArgCount(1); double v = InfoSetUtil.doubleValue(getArg1().computeValue(context)); if (Double.isNaN(v) || Double.isInfinite(v)) { return new Double(v); } return new Double(Math.round(v)); }
/** * Extracts the string value of the expression from a predicate like * [@name=expression]. * @param context evaluation context * @param predicate predicate to evaluate * @return String key extracted */ private static String keyFromPredicate(EvalContext context, Expression predicate) { Expression expr = ((NameAttributeTest) predicate).getNameTestExpression(); return InfoSetUtil.stringValue(expr.computeValue(context)); }
/** * starts-with() implementation. * @param context evaluation context * @return Boolean */ protected Object functionStartsWith(EvalContext context) { assertArgCount(2); String s1 = InfoSetUtil.stringValue(getArg1().computeValue(context)); String s2 = InfoSetUtil.stringValue(getArg2().computeValue(context)); return s1.startsWith(s2) ? Boolean.TRUE : Boolean.FALSE; }
/** * contains() implementation. * @param context evaluation context * @return Boolean */ protected Object functionContains(EvalContext context) { assertArgCount(2); String s1 = InfoSetUtil.stringValue(getArg1().computeValue(context)); String s2 = InfoSetUtil.stringValue(getArg2().computeValue(context)); return s1.indexOf(s2) != -1 ? Boolean.TRUE : Boolean.FALSE; }
/** * substring-before() implementation. * @param context evaluation context * @return String */ protected Object functionSubstringBefore(EvalContext context) { assertArgCount(2); String s1 = InfoSetUtil.stringValue(getArg1().computeValue(context)); String s2 = InfoSetUtil.stringValue(getArg2().computeValue(context)); int index = s1.indexOf(s2); if (index == -1) { return ""; } return s1.substring(0, index); }
/** * boolean() implementation. * @param context evaluation context * @return Boolean */ protected Object functionBoolean(EvalContext context) { assertArgCount(1); return InfoSetUtil.booleanValue(getArg1().computeValue(context)) ? Boolean.TRUE : Boolean.FALSE; }
/** * not() implementation. * @param context evaluation context * @return Boolean */ protected Object functionNot(EvalContext context) { assertArgCount(1); return InfoSetUtil.booleanValue(getArg1().computeValue(context)) ? Boolean.FALSE : Boolean.TRUE; }
/** * id() implementation. * @param context evaluation context * @return Pointer */ protected Object functionID(EvalContext context) { assertArgCount(1); String id = InfoSetUtil.stringValue(getArg1().computeValue(context)); JXPathContext jxpathContext = context.getJXPathContext(); NodePointer pointer = (NodePointer) jxpathContext.getContextPointer(); return pointer.getPointerByID(jxpathContext, id); }
/** * number() implementation. * @param context evaluation context * @return Number */ protected Object functionNumber(EvalContext context) { if (getArgumentCount() == 0) { return InfoSetUtil.number(context.getCurrentNodePointer()); } assertArgCount(1); return InfoSetUtil.number(getArg1().computeValue(context)); }
/** * string() implementation. * @param context evaluation context * @return String */ protected Object functionString(EvalContext context) { if (getArgumentCount() == 0) { return InfoSetUtil.stringValue(context.getCurrentNodePointer()); } assertArgCount(1); return InfoSetUtil.stringValue(getArg1().computeValue(context)); }