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
The following commit(s) were added to refs/heads/main by this push:
new 09869898ed GH-3362: StatementTerms are not Resources
09869898ed is described below
commit 09869898edf4f3b30f22e486ef5de426bc1331c2
Author: Andy Seaborne <[email protected]>
AuthorDate: Fri Aug 1 12:03:42 2025 +0100
GH-3362: StatementTerms are not Resources
---
.../java/org/apache/jena/enhanced/EnhNode.java | 2 +-
.../java/org/apache/jena/rdf/model/RDFNode.java | 16 +++++---------
.../org/apache/jena/rdf/model/StatementTerm.java | 2 +-
.../apache/jena/rdf/model/test/TestRDFNodes.java | 25 ++++++++++++++++++++++
4 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/jena-core/src/main/java/org/apache/jena/enhanced/EnhNode.java
b/jena-core/src/main/java/org/apache/jena/enhanced/EnhNode.java
index cbfd3fb297..11cfcfcca0 100644
--- a/jena-core/src/main/java/org/apache/jena/enhanced/EnhNode.java
+++ b/jena-core/src/main/java/org/apache/jena/enhanced/EnhNode.java
@@ -94,7 +94,7 @@ public class EnhNode extends Polymorphic<RDFNode> implements
FrontsNode
An enhanced node is a resource if it's node is a URI node, a blank
node or a triple term.
*/
public final boolean isResource() {
- return node.isURI() || node.isBlank() || node.isTripleTerm();
+ return node.isURI() || node.isBlank();
}
/**
diff --git a/jena-core/src/main/java/org/apache/jena/rdf/model/RDFNode.java
b/jena-core/src/main/java/org/apache/jena/rdf/model/RDFNode.java
index d84719ca09..addb867771 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/RDFNode.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/RDFNode.java
@@ -35,33 +35,27 @@ public interface RDFNode extends FrontsNode {
public String toString();
/**
- * Answer true iff this RDFNode is an anonymous resource. Useful for
one-off
- * tests: see also visitWith() for making literal/anon/URI choices.
+ * Answer true iff this RDFNode is an anonymous resource.
*/
public boolean isAnon();
/**
- * Answer true iff this RDFNode is a literal resource. Useful for one-off
tests:
- * see also visitWith() for making literal/anon/URI choices.
+ * Answer true iff this RDFNode is a literal resource.
*/
public boolean isLiteral();
/**
- * Answer true iff this RDFNode is an named resource. Useful for one-off
tests:
- * see also visitWith() for making literal/anon/URI choices.
+ * Answer true iff this RDFNode is an named resource.
*/
public boolean isURIResource();
/**
- * Answer true iff this RDFNode is a URI resource or an anonymous resource
or a
- * statement term (ie is not a literal). Useful for one-off tests: see also
- * visitWith() for making literal/anon/URI choices.
+ * Answer true iff this RDFNode is a URI resource or an anonymous resource.
*/
public boolean isResource();
/**
- * Answer true iff this RDFNode is a resource representing an RDF-star
triple
- * term.
+ * Answer true iff this RDFNode is a resource representing a triple term.
*/
public boolean isStatementTerm();
diff --git
a/jena-core/src/main/java/org/apache/jena/rdf/model/StatementTerm.java
b/jena-core/src/main/java/org/apache/jena/rdf/model/StatementTerm.java
index bbdf420cdf..40997c6afe 100644
--- a/jena-core/src/main/java/org/apache/jena/rdf/model/StatementTerm.java
+++ b/jena-core/src/main/java/org/apache/jena/rdf/model/StatementTerm.java
@@ -19,7 +19,7 @@
package org.apache.jena.rdf.model;
/**
- * The Jena Model abstraction of a RDF 1.2 triple term.
+ * The Jena Model abstraction of an RDF 1.2 triple term.
*/
public interface StatementTerm extends RDFNode {
diff --git
a/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFNodes.java
b/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFNodes.java
index 562b06957d..3e497902e3 100644
--- a/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFNodes.java
+++ b/jena-core/src/test/java/org/apache/jena/rdf/model/test/TestRDFNodes.java
@@ -72,10 +72,13 @@ public class TestRDFNodes extends AbstractModelTestBase {
public void testIsResource() {
final Model m = ModelHelper.modelWithStatements(this, "");
+ Statement stmt = ModelHelper.statement("S P O");
+ StatementTerm tripleTerm = m.createStatementTerm(stmt);
Assert.assertEquals(true, m.createResource("eh:/foo").isResource());
Assert.assertEquals(true, m.createResource().isResource());
Assert.assertEquals(false, m.createTypedLiteral(17).isResource());
Assert.assertEquals(false, m.createTypedLiteral("hello").isResource());
+ Assert.assertEquals(false, tripleTerm.isResource());
}
public void testIsURIResource() {
@@ -86,6 +89,28 @@ public class TestRDFNodes extends AbstractModelTestBase {
Assert.assertEquals(false,
m.createTypedLiteral("hello").isURIResource());
}
+ public void testIsStatementTerm1() {
+ final Model m = ModelHelper.modelWithStatements(this, "");
+ Statement stmt = ModelHelper.statement("S P O");
+ StatementTerm tripleTerm = m.createStatementTerm(stmt);
+ Assert.assertEquals(false,
m.createResource("eh:/foo").isStatementTerm());
+ Assert.assertEquals(false, m.createResource().isStatementTerm());
+ Assert.assertEquals(false, m.createTypedLiteral(17).isStatementTerm());
+ Assert.assertEquals(false,
m.createTypedLiteral("hello").isStatementTerm());
+ Assert.assertEquals(true, tripleTerm.isStatementTerm());
+ }
+
+ public void testIsStatementTerm2() {
+ final Model m = ModelHelper.modelWithStatements(this, "");
+ Statement stmt = ModelHelper.statement("S P O");
+ StatementTerm tripleTerm = m.createStatementTerm(stmt);
+ Assert.assertEquals(false, tripleTerm.isAnon());
+ Assert.assertEquals(false, tripleTerm.isURIResource());
+ Assert.assertEquals(false, tripleTerm.isLiteral());
+ Assert.assertEquals(false, tripleTerm.isResource());
+ Assert.assertEquals(true, tripleTerm.isStatementTerm());
+ }
+
public void testLiteralAsResourceThrows() {
final Model m = ModelHelper.modelWithStatements(this, "");
final Resource r = m.createResource("eh:/spoo");