/** LANGMATCHES * * @param nv The language string * @param nvPattern The pattern to match against * @return Boolean nodeValue */ public static NodeValue langMatches(NodeValue nv, NodeValue nvPattern) { return langMatches(nv, nvPattern.getString()) ; }
@Override public NodeValue exec(NodeValue v) { try { return NodeValue.makeString(URLDecoder.decode(v.getString(), "UTF8")); } catch (UnsupportedEncodingException e) { // Will never catch something, will never give something back in return return null; } } }
@Override public NodeValue eval(NodeValue v) { try { return new NodeValueGeom(new PGgeometry(v.getString())); } catch (SQLException e) { throw new RuntimeException(e); } }
@Override public NodeValue eval(NodeValue v) { // TODO If we evaluate to an PGgeometry object, then the call to geomFormText will not be pushed. try { return new NodeValueGeom(new PGgeometry(v.getString())); } catch (SQLException e) { throw new RuntimeException(e); } }
public static NodeValue javaSubstring(NodeValue nvString, NodeValue nvStart, NodeValue nvFinish) { try { String string = nvString.getString() ; int start = nvStart.getInteger().intValue() ; if ( nvFinish == null ) return NodeValue.makeString(string.substring(start)) ; int finish = nvFinish.getInteger().intValue() ; return NodeValue.makeString(string.substring(start, string.offsetByCodePoints(start, finish - start))) ; } catch (IndexOutOfBoundsException ex) { throw new ExprEvalException("IndexOutOfBounds", ex) ; } }
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) ; }
public static String getString(Expr expr) { String result = null; if(expr.isConstant()) { NodeValue nv = expr.getConstant(); if(nv.isString()) { result = nv.getString(); } } return result; }
@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; } }
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); } }
@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() ; }
@Override public SDBConstraint recognize(Expr expr) { MapResult rMap = null ; if ( ( rMap = equalsString1.match(expr) ) != null ) { Var var = rMap.get("a1").getExprVar().asVar() ; String str = rMap.get("a2").getConstant().getString() ; return new StringEqualsSqlGen(expr, equalsString1, true) ; } return null ; } }
@Test public void testStr1() { NodeValue nv = NodeValue.makeNodeInteger(56) ; NodeValue s = NodeFunctions.str(nv) ; assertEquals("56", s.getString()) ; }
@Test public void testStr3() { NodeValue nv = NodeValue.makeNode("abc", "fr", (String)null) ; NodeValue s = NodeFunctions.str(nv) ; assertEquals("abc", s.getString()) ; }
@Test public void testStr2() { NodeValue nv = NodeValue.makeInteger(56) ; NodeValue s = NodeFunctions.str(nv) ; assertEquals("56", s.getString()) ; }
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 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()) ; }
@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()) ; }