You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by an...@apache.org on 2025/04/25 13:43:41 UTC
(jena) 04/05: Add SSE.parseNodeValue
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 <an...@apache.org>
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 "?")