public final String asUnquotedString() { return asString() ; }
@Override public void accumulate(NodeValue nv, Binding binding, FunctionEnv functionEnv) { String str = nv.asString() ; if ( ! first ) stringSoFar.append(separator) ; stringSoFar.append(str) ; first = false ; }
@Override protected void accumulate(NodeValue nv, Binding binding, FunctionEnv functionEnv) { String str = nv.asString() ; if ( ! first ) stringSoFar.append(separator) ; stringSoFar.append(str) ; first = false ; }
@Override public NodeValue exec(NodeValue nv) { String s = nv.asString() ; System.out.println(s) ; System.out.flush() ; return NodeValue.TRUE ; } }
@Override public String toString() { // Preserve lexical form if ( getNode() != null ) return super.asString() ; return Float.toString(value) ; }
/** fn:normalizeSpace */ public static NodeValue strNormalizeSpace(NodeValue v){ String str = v.asString() ; if(str == "" ) return NodeValue.nvEmptyString; // is it possible that str is null? str = str.trim().replaceAll("\\s+"," "); return NodeValue.makeString(str) ; }
@Override public String toString() { // Preserve lexical form if ( getNode() != null ) return super.asString() ; // str() return integer.toString() ; }
/** {@literal F&O} fn:concat (implicit cast to strings). */ public static NodeValue fnConcat(List<NodeValue> args) { StringBuilder sb = new StringBuilder() ; for (NodeValue arg : args) { String x = arg.asString() ; sb.append(x) ; } return NodeValue.makeString(sb.toString()) ; }
@Override public NodeValue exec(List<NodeValue> args) { long now = System.currentTimeMillis() ; StringJoiner sj = new StringJoiner(" ", "", ""); args.forEach((a)-> { sj.add(a.asString()) ; }) ; if ( lastms != -1 ) sj.add("("+Long.toString(now - lastms)+")") ; String str = sj.toString() ; if ( ! str.isEmpty() ) System.err.printf("%s : %d ms\n",str, System.currentTimeMillis()) ; else System.err.printf("---- %d ms\n",str, System.currentTimeMillis()) ; lastms = now ; return NodeValue.TRUE ; }
@Override public final NodeValue exec(List<NodeValue> args) { if ( args == null ) // The contract on the function interface is that this should not happen. throw new ARQInternalErrorException(Lib.className(this)+": Null args list") ; Iterator<NodeValue> iter = args.iterator() ; String sep = iter.next().asString() ; List<String> x = new ArrayList<>() ; iter.forEachRemaining(arg->x.add(arg.asString())); return NodeValue.makeString(String.join(sep, x)) ; }
public static Optional<String> getIriOrString(Expr expr) { //String result = expr.isConstant() ? expr.getConstant() Optional<String> result = Optional.of(expr) .map(e -> e.isConstant() ? e.getConstant() : null) .map(e -> e.asString()); return result; }
public static Optional<String> getIriOrString(Expr expr) { //String result = expr.isConstant() ? expr.getConstant() Optional<String> result = Optional.of(expr) .map(e -> e.isConstant() ? e.getConstant() : null) .map(e -> e.asString()); return result; }
@Override public String toString() { // Preserve lexical form. if ( getNode() != null ) return super.asString() ; return Utils.stringForm(decimal) ; }
@Override public String toString() { // Preserve lexical form if ( getNode() != null ) return super.asString() ; return Utils.stringForm(value) ; }
public static NodeValue strLang(NodeValue v1, NodeValue v2) { if ( !v1.isString() ) throw new ExprEvalException("Not a string (arg 1): " + v1) ; if ( !v2.isString() ) throw new ExprEvalException("Not a string (arg 2): " + v2) ; String lex = v1.asString() ; String lang = v2.asString() ; if ( lang.isEmpty() ) throw new ExprEvalException("Empty lang tag") ; return NodeValue.makeLangString(lex, lang) ; }
public NodeValue exec(NodeValue name, Context context) { if (name == null) return null; if (!name.isString()) throw new ExprEvalException("Not a string: " + name); PrefixMapping prefixes = context.get(ExpandPrefixFunction.PREFIX_MAPPING); if (prefixes == null) throw new ExprEvalException("No prefix mapping registered"); String pname = name.asString(); int idx = pname.indexOf(':'); if (idx == -1) throw new ExprEvalException("Not a prefixed name: " + name); String prefix = pname.substring(0, idx); String iri = prefixes.getNsPrefixURI(prefix); if (iri == null) throw new ExprEvalException("Prefix not defined: " + prefix); return NodeValue.makeNode(NodeFactory.createURI(iri + pname.substring(idx + 1))); }
public static NodeValue strDatatype(NodeValue v1, NodeValue v2) { if ( !v1.isString() ) throw new ExprEvalException("Not a string (arg 1): " + v1) ; if ( !v2.isIRI() ) throw new ExprEvalException("Not an IRI (arg 2): " + v2) ; String lex = v1.asString() ; Node dt = v2.asNode() ; // Check? Node n = NodeFactory.createLiteral(lex, NodeFactory.getType(dt.getURI())) ; return NodeValue.makeNode(n) ; }
@Test public void langString_01() { NodeValue nv = make("''@en") ; assertFalse(nv.isString()) ; assertTrue(nv.isLangString()) ; assertEquals("en", nv.getLang()) ; assertEquals("", nv.getString()) ; assertEquals("", nv.asString()) ; }
@Test public void langString_02() { NodeValue nv = make("'not empty'@cy") ; assertFalse(nv.isString()) ; assertTrue(nv.isLangString()) ; assertEquals("cy", nv.getLang()) ; assertEquals("not empty", nv.getString()) ; assertEquals("not empty", nv.asString()) ; }