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 static RegexEngine makeRegexEngine(NodeValue vPattern, NodeValue vFlags) { if ( ! vPattern.isString() ) throw new ExprException("REGEX: Pattern is not a string: "+vPattern) ; if ( vFlags != null && ! vFlags.isString() ) throw new ExprException("REGEX: Pattern flags are not a string: "+vFlags) ; String s = (vFlags==null)?null:vFlags.getString() ; checkFlags(s); return makeRegexEngine(vPattern.getString(), s) ; }
@Override public NodeValue exec(NodeValue nv) { NodeValue result; if(nv.isString()) { String str = nv.getString(); String tmp = encodeURIComponent(str); result = NodeValue.makeString(tmp); } else { result = nv; } return result; } }
@Override public boolean match(Var var, Expr expr, MapResult resultMap) { if ( ! expr.isConstant() ) // throw new NoMatch("ActionMatchString: Not a variable: "+expr) ; return false ; if ( ! expr.getConstant().isString() ) return false ; String x = expr.getConstant().getString() ; // Managed to get the string - pass on up. return super.match(var, expr, resultMap) ; } }
@Override public NodeValue eval(NodeValue x, NodeValue y) { if ( ! x.isString() ) throw new ExprEvalException("cast: arg 2 is not a string: "+x) ; if ( ! y.isIRI() ) throw new ExprEvalException("cast: arg 2 is not a URI: "+y) ; String lex = x.getString() ; y.asNode().getURI() ; throw new ARQNotImplemented() ; }
@Test public void js_dt_string() { NodeValue nv = eval("rtnString"); assertTrue(nv.isString()); }
public E_StrReplace(Expr expr1, Expr expr2, Expr expr3, Expr expr4) { super(symbol, expr1, expr2, expr3, expr4) ; if ( isString(expr2) && (expr4 == null || isString(expr4)) ) { String flags = null; if ( expr4 != null && expr4.isConstant() && expr4.getConstant().isString() ) flags = expr4.getConstant().getString(); String patternStr = expr2.getConstant().getString(); pattern = RegexJava.makePattern("REPLACE", patternStr, flags); } }
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 js_2() { NodeValue nv = eval("value", "<http://example/xyz>"); assertNotNull(nv); assertTrue(nv.isString()); }
private static void testString(String string) { Expr expr = parse(string) ; NodeValue v = expr.eval( env, new FunctionEnvBase()) ; assertTrue(v.isString()) ; }
@Test public void js_5() { NodeValue nv = eval("combine", "2", "'a'"); NodeValue nvx = nv("'2a'"); assertTrue(nv.isString()); assertEquals(nvx, nv); }
@Test public void js_4() { NodeValue nv = eval("combine", "'a'", "2"); NodeValue nvx = nv("'a2'"); assertTrue(nv.isString()); assertEquals(nvx, nv); }
@Test public void testString1() { NodeValue v = NodeValue.makeString("string"); assertTrue("Not a string: " + v, v.isString()); assertFalse("Is a node: " + v, v.hasNode()); }
@Test public void testNodeString1() { NodeValue v = NodeValue.makeNode("string", null, (String)null); // Plain // literal assertTrue("Not a string: " + v, v.isString()); assertTrue("Not a node: " + v, v.hasNode()); }
private static void testNumberFormat(String expression, String expected) { Expr expr = ExprUtils.parse(expression) ; NodeValue r = expr.eval(null, LibTestExpr.createTest()) ; Assert.assertTrue(r.isString()); Assert.assertEquals(expected, r.getString()) ; }
private static void testString(String string, String string2) { Expr expr = parse(string) ; NodeValue v = expr.eval( env, new FunctionEnvBase()) ; assertTrue(v.isString()) ; assertEquals(string2, v.getString()) ; }
@Test public void testNodeString2() { NodeValue v = NodeValue.makeNode("string", null, (String)null); // Plain // literal assertTrue("Not a string: " + v, v.isString()); assertTrue("Not a node: " + v, v.hasNode()); String actualStr = v.asQuotedString(); assertEquals("Print form mismatch", "\"string\"", actualStr); }
@Test public void testNodeString3() { NodeValue v = NodeValue.makeNode("string", XSDDatatype.XSDstring); // XSD // String // literal assertTrue("Not a string: " + v, v.isString()); assertTrue("Not a node: " + v, v.hasNode()); String actualStr = v.asQuotedString(); String rightAnswer = JenaRuntime.isRDF11 // RDF 1.1 -- appearance is a without ^^ ? "\"string\"" : "\"string\"^^<" + XSDDatatype.XSDstring.getURI() + ">"; assertEquals("Print form mismatch", rightAnswer, actualStr); }
@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()) ; }