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

Reply via email to