This is an automated email from the ASF dual-hosted git repository. andy pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/jena.git
commit 43c38d6e817d737fb0fb27709750e80d7914ef92 Author: Andy Seaborne <[email protected]> AuthorDate: Wed Apr 23 09:44:07 2025 +0100 Add SSE.parseNodeValue --- jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java | 13 +++++++++++++ .../test/java/org/apache/jena/sparql/sse/TestSSE_Basic.java | 13 ++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java b/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java index 41b489d2a5..18150f0c59 100644 --- a/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java +++ b/jena-arq/src/main/java/org/apache/jena/sparql/sse/SSE.java @@ -44,6 +44,7 @@ import org.apache.jena.sparql.engine.binding.Binding; import org.apache.jena.sparql.exec.RowSet; import org.apache.jena.sparql.expr.Expr; import org.apache.jena.sparql.expr.ExprList; +import org.apache.jena.sparql.expr.NodeValue; import org.apache.jena.sparql.path.Path; import org.apache.jena.sparql.serializer.SerializationContext; import org.apache.jena.sparql.sse.builders.*; @@ -188,6 +189,18 @@ public class SSE { return parseNode(new StringReader(str), pmap); } + /** Parse a string to obtain a {@link NodeValue}. */ + public static NodeValue parseNodeValue(String str) { + return parseNodeValue(str, null); + } + + /** Parse a string to obtain a {@link NodeValue}. */ + public static NodeValue parseNodeValue(String str, PrefixMapping pmap) { + Node node = parseNode(new StringReader(str), pmap); + NodeValue nv = NodeValue.makeNode(node); + return nv; + } + /** Parse a string to obtain a Quad */ public static Quad parseQuad(String s) { return parseQuad(s, null); diff --git a/jena-arq/src/test/java/org/apache/jena/sparql/sse/TestSSE_Basic.java b/jena-arq/src/test/java/org/apache/jena/sparql/sse/TestSSE_Basic.java index 6a7b193137..cb158be15f 100644 --- a/jena-arq/src/test/java/org/apache/jena/sparql/sse/TestSSE_Basic.java +++ b/jena-arq/src/test/java/org/apache/jena/sparql/sse/TestSSE_Basic.java @@ -20,12 +20,14 @@ package org.apache.jena.sparql.sse; import static org.junit.Assert.*; +import org.junit.Test; + import org.apache.jena.datatypes.xsd.XSDDatatype; import org.apache.jena.graph.Node; import org.apache.jena.graph.NodeFactory; import org.apache.jena.sparql.ARQConstants; import org.apache.jena.sparql.core.Var; -import org.junit.Test; +import org.apache.jena.sparql.expr.NodeValue; public class TestSSE_Basic { @@ -145,6 +147,10 @@ public class TestSSE_Basic @Test public void testTypedLit_2() { testNode("'123'^^<http://example/type>", typeLit1); } @Test public void testTypedLit_3() { testNode("'3'^^<"+XSDDatatype.XSDinteger.getURI()+">", int3); } + // ---- NodeValues + @Test public void testNodeValue_1() { testNodeValue("3", NodeValue.makeInteger(3)); } + @Test public void testNodeValue_2() { testNodeValue("<http://example/>", NodeValue.makeNode(NodeFactory.createURI("http://example/"))); } + // --- Symbols @Test public void testSymbol_1() { testSymbol("word"); } @@ -357,6 +363,11 @@ public class TestSSE_Basic assertEquals(result, node); } + private void testNodeValue(String str, NodeValue result) { + NodeValue nodeValue = SSE.parseNodeValue(str); + assertEquals(result, nodeValue); + } + private Node parseNode(String str) { // Not NodeFactory.parseNode which does not have all the features (e.g. "_" // and "?")
