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 "?")

Reply via email to