@Override public NodeValue exec(NodeValue v1, NodeValue v2) { return NodeFunctions.langMatches(NodeFunctions.lang(v1), v2) ; }
@Override public NodeValue exec(NodeValue str, NodeValue match) { return XSDFuncOp.strAfter(str, match) ; } }
/** Get the timezone in XSD tiezone format (e.g. "Z" or "+01:00"). * Assumes the NodeValue is of suitable datatype. */ private static String tzStrFromNV(NodeValue nv) { DateTimeStruct dts = parseAnyDT(nv) ; if ( dts == null ) return "" ; String tzStr = dts.timezone ; if ( tzStr == null ) tzStr = "" ; return tzStr ; }
@Override public NodeValue eval(NodeValue lang, NodeValue pattern) { return NodeFunctions.langMatches(lang, pattern) ; }
@Override public NodeValue eval(NodeValue x, NodeValue y) { return NodeFunctions.sameTerm(x, y) ; }
private static boolean filterEBV(NodeValue nv) { try { return XSDFuncOp.booleanEffectiveValue(nv); } catch (ExprEvalException ex) { return false; } }
@Override public NodeValue exec() { return XSDFuncOp.localTimezone(); } }
@Override public NodeValue eval(NodeValue v) { return XSDFuncOp.strEncodeForURI(v) ; }
@Override public NodeValue exec(NodeValue v1, NodeValue v2) { return XSDFuncOp.dtDateTime(v1, v2) ; } }
@Override public NodeValue exec(NodeValue v) { return XSDFuncOp.dtGetHours(v) ; } }
@Override public NodeValue exec(NodeValue nv1, NodeValue nv2) { return XSDFuncOp.min(nv1, nv2) ; } }
@Override public NodeValue exec(NodeValue str) { // How to implement this?? // If no argument is supplied, then $arg defaults to the string value (calculated using fn:string) of the context item (.). return XSDFuncOp.strNormalizeSpace(str); } }
@Override public NodeValue exec(NodeValue str, NodeValue match) { return XSDFuncOp.strEndsWith(str, match) ; } }
@Override public NodeValue exec(NodeValue v) { return XSDFuncOp.dtGetDay(v) ; } }
@Override public NodeValue exec(NodeValue v) { return XSDFuncOp.dtGetMinutes(v) ; } }
public static NodeValue min(NodeValue nv1, NodeValue nv2) { int x = compareNumeric(nv1, nv2) ; if ( x == Expr.CMP_GREATER ) return nv2 ; return nv1 ; }
@Override public NodeValue exec(NodeValue v) { return XSDFuncOp.dtGetTimezone(v) ; } }
@Override public NodeValue exec(NodeValue v) { return XSDFuncOp.durGetSeconds(v) ; } }
@Override public NodeValue exec(NodeValue str, NodeValue match) { return XSDFuncOp.strContains(str, match) ; } }
@Override public NodeValue eval(NodeValue v1, NodeValue v2) { return NodeFunctions.strDatatype(v1, v2) ; }