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 bc3d30bb038f7dafe0ab73eb7f26df0ec08f6d6a
Author: Andy Seaborne <[email protected]>
AuthorDate: Fri Aug 16 09:05:56 2024 +0100

    GH-2664: Consolidate NullIterator and SingletonIterator around Iter 
functions
---
 .../apache/jena/sparql/algebra/table/Table1.java   |  2 +-
 .../jena/sparql/algebra/table/TableUnit.java       |  2 +-
 .../apache/jena/sparql/core/DatasetGraphOne.java   |  5 ++--
 .../sparql/engine/iterator/QueryIterGroup.java     |  4 +--
 .../jena/sparql/engine/main/JoinClassifier.java    |  2 +-
 .../engine/main/iterator/QueryIterGraph.java       | 33 ++++++++++----------
 .../jena/sparql/modify/UpdateEngineWorker.java     |  2 +-
 .../apache/jena/sparql/util/graph/GraphList.java   |  2 +-
 .../java/org/apache/jena/atlas/iterator/Iter.java  | 12 ++++++--
 .../apache/jena/atlas/iterator/NullIterator.java   | 10 +++++++
 .../jena/atlas/iterator/SingletonIterator.java     |  8 ++---
 .../org/apache/jena/atlas/lib/cache/Cache1.java    |  4 +--
 .../bplustree/BPTreeDistinctKeyPrefixIterator.java |  6 ++--
 .../java/org/apache/jena/tdb1/store/QuadTable.java | 35 +++++++++++-----------
 .../org/apache/jena/tdb1/store/TripleTable.java    | 29 +++++++++---------
 .../nodetupletable/NodeTupleTableConcrete.java     |  3 +-
 .../tdb1/store/tupletable/TupleIndexRecord.java    |  4 +--
 .../tdb2/store/tupletable/TupleIndexRecord.java    |  6 ++--
 18 files changed, 90 insertions(+), 79 deletions(-)

diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/Table1.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/Table1.java
index 0c3fa9c111..a7cc31ea1a 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/Table1.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/Table1.java
@@ -45,7 +45,7 @@ public class Table1 extends TableBase {
     @Override
     public Iterator<Binding> rows() {
         Binding b = BindingFactory.binding(var, value) ;
-        return Iter.singleton(b) ;
+        return Iter.singletonIterator(b) ;
     }
 
     @Override
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/TableUnit.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/TableUnit.java
index 58ec34d055..26b6e9bd61 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/TableUnit.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/algebra/table/TableUnit.java
@@ -41,7 +41,7 @@ public class TableUnit extends TableBase
     @Override
     public Iterator<Binding> rows() {
         Binding binding = BindingFactory.empty() ;
-        return Iter.singleton(binding) ;
+        return Iter.singletonIterator(binding) ;
     }
 
     @Override
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphOne.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphOne.java
index 88b05fab4d..9345edc362 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphOne.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/core/DatasetGraphOne.java
@@ -21,7 +21,6 @@ package org.apache.jena.sparql.core;
 import java.util.Iterator;
 
 import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.atlas.iterator.NullIterator;
 import org.apache.jena.graph.Graph;
 import org.apache.jena.graph.Node;
 import org.apache.jena.graph.Triple;
@@ -139,7 +138,7 @@ public class DatasetGraphOne extends DatasetGraphBaseFind {
 
     @Override
     public Iterator<Node> listGraphNodes() {
-        return new NullIterator<>();
+        return Iter.nullIterator();
     }
 
     @Override
@@ -226,7 +225,7 @@ public class DatasetGraphOne extends DatasetGraphBaseFind {
         if ( isWildcard(g) || isDefaultGraph(g) )
             return G.triples2quadsDftGraph(graph.find(s, p, o));
         else
-            return new NullIterator<>();
+            return Iter.nullIterator();
     }
 
     @Override
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
index 99026f60b5..429e4c963b 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/iterator/QueryIterGroup.java
@@ -90,7 +90,7 @@ public class QueryIterGroup extends QueryIterPlainWrapper
                         return Iter.nullIterator() ;
                     if ( ! hasAggregators ) {
                         // No GROUP BY, no aggregators. One result row of no 
columns.
-                        return Iter.singleton(BindingFactory.binding());
+                        return 
Iter.singletonIterator(BindingFactory.binding());
                     }
                     // No GROUP BY, has aggregators. Insert default values.
                     BindingBuilder builder = Binding.builder();
@@ -101,7 +101,7 @@ public class QueryIterGroup extends QueryIterPlainWrapper
                         Var v = agg.getVar();
                         builder.add(v, value);
                     }
-                    return Iter.singleton(builder.build());
+                    return Iter.singletonIterator(builder.build());
                 }
 
                 // Case: there is input.
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java
index 9b1b13bb8d..9488b5e35e 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/JoinClassifier.java
@@ -310,7 +310,7 @@ public class JoinClassifier
     // XXX This method could go to OpLib or the Op interface directly
     private static Iterator<Op> getSubOps(Op op) {
         if (op instanceof Op1)
-            return Iter.singleton(((Op1)op).getSubOp());
+            return Iter.singletonIterator(((Op1)op).getSubOp());
 
         if (op instanceof Op2) {
             Op2 x = (Op2)op;
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/iterator/QueryIterGraph.java
 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/iterator/QueryIterGraph.java
index a07110e79e..2c3e52434e 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/iterator/QueryIterGraph.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/engine/main/iterator/QueryIterGraph.java
@@ -22,7 +22,6 @@ import java.util.Iterator ;
 import java.util.NoSuchElementException ;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.SingletonIterator ;
 import org.apache.jena.atlas.lib.Lib ;
 import org.apache.jena.graph.Graph ;
 import org.apache.jena.graph.Node ;
@@ -46,30 +45,30 @@ public class QueryIterGraph extends QueryIterRepeatApply
 {
     /*
      * A note on the strange case of GRAPH ?g { ... ?g ... }
-     * 
+     *
      * The inner pattern is solved, then the outer ?g=... is added. This 
happens
      * because the outer ?g is added by QueryIterAssignVarValue which tests a
      * variable is the same as the binding and drops the binding if not. (which
      * is a specialised form of join.
      */
     protected OpGraph opGraph ;
-    
+
     public QueryIterGraph(QueryIterator input, OpGraph opGraph, 
ExecutionContext context)
     {
         super(input, context) ;
         this.opGraph = opGraph ;
     }
-    
+
     @Override
     protected QueryIterator nextStage(Binding outerBinding) {
         DatasetGraph ds = getExecContext().getDataset() ;
         // Is this closed?
         Iterator<Node> graphNameNodes = makeSources(ds, outerBinding, 
opGraph.getNode());
-        
+
 //        List<Node> x = Iter.toList(graphNameNodes) ;
 //        graphNameNodes = x.iterator() ;
 //        System.out.println(x) ;
-        
+
         QueryIterator current = new QueryIterGraphInner(outerBinding, 
graphNameNodes, opGraph, getExecContext()) ;
         return current ;
     }
@@ -82,17 +81,17 @@ public class QueryIterGraph extends QueryIterRepeatApply
 
     protected static Iterator<Node> makeSources(DatasetGraph data, Binding b, 
Node graphVar) {
         Node n2 = resolve(b, graphVar) ;
-        if ( n2 != null && n2.isLiteral() ) 
+        if ( n2 != null && n2.isLiteral() )
             // Literal possible after resolving
             return Iter.nullIterator() ;
-        
+
         // n2 is a URI or null.
         if ( n2 == null )
             // Do all submodels.
             return data.listGraphNodes() ;
-        return new SingletonIterator<>(n2) ;
+        return Iter.singletonIterator(n2) ;
     }
-    
+
 
     protected static class QueryIterGraphInner extends QueryIterSub
     {
@@ -146,15 +145,15 @@ public class QueryIterGraph extends QueryIterRepeatApply
             }
             return null;
         }
-        
+
         // Build iterator or return null for if there can't be any results.
         private QueryIterator buildIterator(Node gn) {
             QueryIterator qIter = buildIterator(parentBinding, gn, 
opSubstituted, getExecContext()) ;
             if ( qIter == null )
-                // Known to be nothing (e.g. graph does not exist). 
+                // Known to be nothing (e.g. graph does not exist).
                 // try again.
                 return null ;
-            
+
             if ( Var.isVar(opGraph.getNode()) ) {
                 // This is the join of the graph node variable to the 
sub-pattern solution.
                 // Do after the subpattern so that the variable is not visible 
to the
@@ -164,14 +163,14 @@ public class QueryIterGraph extends QueryIterRepeatApply
             }
             return qIter ;
         }
-        
+
         // Create the iterator for a cycle of one node - or return null if 
there can't be any results.
         protected static QueryIterator buildIterator(Binding binding, Node 
graphNode, Op opExec, ExecutionContext outerCxt) {
             if ( !graphNode.isURI() && !graphNode.isBlank() )
                 // e.g. variable bound to a literal or blank node.
                 throw new 
ARQInternalErrorException("QueryIterGraphInner.buildIterator: Not a URI or 
blank node: "+graphNode) ;
-            
-            // We can't just use DatasetGraph.getGraph because it may 
+
+            // We can't just use DatasetGraph.getGraph because it may
             // "auto-create" graphs. Use the containsGraph function.
             boolean syntheticGraph = ( Quad.isDefaultGraph(graphNode) || 
Quad.isUnionGraph(graphNode) ) ;
             if ( ! syntheticGraph && ! 
outerCxt.getDataset().containsGraph(graphNode) )
@@ -182,7 +181,7 @@ public class QueryIterGraph extends QueryIterRepeatApply
             if ( g == null )
                 return null ;
                 //throw new ARQInternalErrorException(".containsGraph was true 
but .getGraph is null") ;
-            
+
             ExecutionContext cxt2 = new ExecutionContext(outerCxt, g) ;
             QueryIterator subInput = QueryIterSingleton.create(binding, cxt2) ;
             return QC.execute(opExec, subInput, cxt2) ;
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
index 0ec552931c..5c4eeab04b 100644
--- 
a/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
+++ 
b/jena-arq/src/main/java/org/apache/jena/sparql/modify/UpdateEngineWorker.java
@@ -533,7 +533,7 @@ public class UpdateEngineWorker implements UpdateVisitor
         // ... but that's going to happen again :-(
         if ( query == null ) {
             Binding binding = (null != inputBinding) ? inputBinding : 
BindingRoot.create();
-            return Iter.singleton(binding);
+            return Iter.singletonIterator(binding);
         }
 
         // Not QueryExecDataset.dataset(...) because of initialBinding.
diff --git 
a/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java 
b/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
index 8c1f12f8a5..cb56d73218 100644
--- a/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
+++ b/jena-arq/src/main/java/org/apache/jena/sparql/util/graph/GraphList.java
@@ -132,7 +132,7 @@ public class GraphList
         GNode gn = new GNode(graph, s);
         if ( ! isAny(o) ) {
             if ( contains(gn, o) )
-                return Iter.singleton(Triple.create(s, 
ListPFunction.nListMember, o));
+                return Iter.singletonIterator(Triple.create(s, 
ListPFunction.nListMember, o));
             else
                 return Iter.nullIterator();
         }
diff --git a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java 
b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
index 87e99abe46..7338bd3f59 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/Iter.java
@@ -79,7 +79,13 @@ public class Iter<T> implements IteratorCloseable<T> {
 
     // ---- Special iterators.
 
+    /** @deprecated Sue {@link #singletonIterator} */
+    @Deprecated
     public static <T> Iterator<T> singleton(T item) {
+        return singletonIterator(item);
+    }
+
+    public static <T> Iterator<T> singletonIterator(T item) {
         // There is a singleton iterator in Collections but it is not public.
         return new SingletonIterator<>(item);
     }
@@ -95,7 +101,7 @@ public class Iter<T> implements IteratorCloseable<T> {
     }
 
     public static <T> Iter<T> of(T item) {
-        return Iter.iter(new SingletonIterator<>(item));
+        return Iter.iter(singletonIterator(item));
     }
 
     @SafeVarargs
@@ -796,11 +802,11 @@ public class Iter<T> implements IteratorCloseable<T> {
     }
 
     public static <T> Iter<T> singletonIter(T item) {
-        return iter(new SingletonIterator<>(item));
+        return iter(singletonIterator(item));
     }
 
     public static <T> Iter<T> nullIter() {
-        return iter(new NullIterator<T>());
+        return iter(nullIterator());
     }
 
     /**
diff --git 
a/jena-base/src/main/java/org/apache/jena/atlas/iterator/NullIterator.java 
b/jena-base/src/main/java/org/apache/jena/atlas/iterator/NullIterator.java
index 8b699dc33f..bf94c938b4 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/iterator/NullIterator.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/iterator/NullIterator.java
@@ -26,7 +26,13 @@ import java.util.function.Consumer;
 /**
  *  Null Iterator - also guaranteed shareable and immutable
  */
+@Deprecated
 public class NullIterator<T> implements Iterator<T> {
+
+    public static <X> NullIterator<X> create(){ return new NullIterator<>(); }
+
+    private NullIterator() {}
+
     @Override
     public boolean hasNext() {
         return false;
@@ -41,4 +47,8 @@ public class NullIterator<T> implements Iterator<T> {
     public void forEachRemaining(Consumer<? super T> action) {
         Objects.requireNonNull(action);
     }
+
+    @Override
+    public void remove()
+    { throw new UnsupportedOperationException("NullIterator.remove") ;}
 }
diff --git 
a/jena-base/src/main/java/org/apache/jena/atlas/iterator/SingletonIterator.java 
b/jena-base/src/main/java/org/apache/jena/atlas/iterator/SingletonIterator.java
index 9c49e489cb..788ef3540a 100644
--- 
a/jena-base/src/main/java/org/apache/jena/atlas/iterator/SingletonIterator.java
+++ 
b/jena-base/src/main/java/org/apache/jena/atlas/iterator/SingletonIterator.java
@@ -25,11 +25,9 @@ public class SingletonIterator<T> implements Iterator<T>
 {
     private T thing = null ;
     private boolean yielded = false ;
-    
-    public static <T> SingletonIterator<T> create(T thing) { return new 
SingletonIterator<>(thing) ; }
-    
+
     public SingletonIterator(T thing) { this.thing = thing ; }
-    
+
     @Override
     public boolean hasNext()
     {
@@ -47,5 +45,5 @@ public class SingletonIterator<T> implements Iterator<T>
 
     @Override
     public void remove()
-    { throw new NoSuchElementException("SingletonIterator.remove") ;}
+    { throw new UnsupportedOperationException("SingletonIterator.remove") ;}
 }
diff --git 
a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java 
b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
index 22b1d71836..2a3c035999 100644
--- a/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
+++ b/jena-base/src/main/java/org/apache/jena/atlas/lib/cache/Cache1.java
@@ -23,7 +23,7 @@ import java.util.Objects;
 import java.util.function.BiConsumer;
 import java.util.function.Function;
 
-import org.apache.jena.atlas.iterator.SingletonIterator;
+import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.atlas.lib.Cache;
 
 /** A one-slot cache. */
@@ -82,7 +82,7 @@ public class Cache1<K, V> implements Cache<K, V> {
 
     @Override
     public Iterator<K> keys() {
-        return new SingletonIterator<>(cacheKey);
+        return Iter.singletonIterator(cacheKey);
     }
 
     @Override
diff --git 
a/jena-db/jena-dboe-trans-data/src/main/java/org/apache/jena/dboe/trans/bplustree/BPTreeDistinctKeyPrefixIterator.java
 
b/jena-db/jena-dboe-trans-data/src/main/java/org/apache/jena/dboe/trans/bplustree/BPTreeDistinctKeyPrefixIterator.java
index 5e65dd15de..b4b65c8a8c 100644
--- 
a/jena-db/jena-dboe-trans-data/src/main/java/org/apache/jena/dboe/trans/bplustree/BPTreeDistinctKeyPrefixIterator.java
+++ 
b/jena-db/jena-dboe-trans-data/src/main/java/org/apache/jena/dboe/trans/bplustree/BPTreeDistinctKeyPrefixIterator.java
@@ -48,7 +48,7 @@ class BPTreeDistinctKeyPrefixIterator implements 
Iterator<Record> {
         }
         // If there's only a single distinct prefix then just return a 
singleton
         if (Arrays.compare(minRecord.getKey(), 0, keyPrefixLength, 
maxRecord.getKey(), 0, keyPrefixLength) == 0) {
-            return Iter.singleton(minRecord);
+            return Iter.singletonIterator(minRecord);
         }
         // Otherwise need the full iterator
         return new BPTreeDistinctKeyPrefixIterator(node, keyPrefixLength, 
minRecord, maxRecord);
@@ -131,7 +131,7 @@ class BPTreeDistinctKeyPrefixIterator implements 
Iterator<Record> {
             Record subtreeMin = n.minRecord();
             Record subtreeMax = n.maxRecord();
             if (haveSamePrefix(subtreeMin, subtreeMax)) {
-                return Iter.singleton(subtreeMin);
+                return Iter.singletonIterator(subtreeMin);
             }
             r = loadStack(n);
         } else {
@@ -156,7 +156,7 @@ class BPTreeDistinctKeyPrefixIterator implements 
Iterator<Record> {
             Record lowRecord = records.getLowRecord();
             if (haveSamePrefix(lowRecord, records.getHighRecord())) {
                 // If the low and high keys for this page have the same prefix 
then just return a singleton iterator
-                iter = Iter.singleton(lowRecord);
+                iter = Iter.singletonIterator(lowRecord);
             } else {
                 // Otherwise need to scan the whole page
                 iter = records.getRecordBuffer().iterator();
diff --git a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/QuadTable.java 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/QuadTable.java
index 24057081bd..1e9fc6d213 100644
--- a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/QuadTable.java
+++ b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/QuadTable.java
@@ -20,7 +20,8 @@ package org.apache.jena.tdb1.store;
 
 
 import java.util.Iterator ;
-import org.apache.jena.atlas.iterator.NullIterator ;
+
+import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.atlas.lib.tuple.Tuple ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -43,47 +44,47 @@ public class QuadTable extends TableBase
     }
 
     /** Add a quad - return true if it was added, false if it already existed 
*/
-    public boolean add( Quad quad ) 
-    { 
+    public boolean add( Quad quad )
+    {
         return add(quad.getGraph(), quad.getSubject(), quad.getPredicate(), 
quad.getObject()) ;
     }
 
     /** Add a quad (as graph node and triple) - return true if it was added, 
false if it already existed */
-    public boolean add(Node gn, Triple triple ) 
-    { 
+    public boolean add(Node gn, Triple triple )
+    {
         return add(gn, triple.getSubject(), triple.getPredicate(), 
triple.getObject()) ;
     }
-    
+
     /** Add a quad - return true if it was added, false if it already existed 
*/
-    public boolean add(Node g, Node s, Node p, Node o) 
-    { 
+    public boolean add(Node g, Node s, Node p, Node o)
+    {
         return table.addRow(g,s,p,o) ;
     }
-    
+
     /** Delete a quad - return true if it was deleted, false if it didn't 
exist */
-    public boolean delete( Quad quad ) 
-    { 
+    public boolean delete( Quad quad )
+    {
         return delete(quad.getGraph(), quad.getSubject(), quad.getPredicate(), 
quad.getObject()) ;
     }
 
     /** Delete a quad (as graph node and triple) - return true if it was 
deleted, false if it didn't exist */
-    public boolean delete( Node gn, Triple triple ) 
-    { 
+    public boolean delete( Node gn, Triple triple )
+    {
         return delete(gn, triple.getSubject(), triple.getPredicate(), 
triple.getObject()) ;
     }
 
     /** Delete a quad - return true if it was deleted, false if it didn't 
exist */
-    public boolean delete(Node g, Node s, Node p, Node o) 
-    { 
+    public boolean delete(Node g, Node s, Node p, Node o)
+    {
         return table.deleteRow(g, s, p, o) ;
     }
-    
+
     /** Find matching quads */
     public Iterator<Quad> find(Node g, Node s, Node p, Node o)
     {
         Iterator<Tuple<NodeId>> iter = table.findAsNodeIds(g, s, p, o) ;
         if ( iter == null )
-            return new NullIterator<>() ;
+            return Iter.nullIterator();
         Iterator<Quad> iter2 = TupleLib.convertToQuads(table.getNodeTable(), 
iter) ;
         return iter2 ;
     }
diff --git 
a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/TripleTable.java 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/TripleTable.java
index ea05fe2c3d..0ad4baa13d 100644
--- a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/TripleTable.java
+++ b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/TripleTable.java
@@ -20,7 +20,8 @@ package org.apache.jena.tdb1.store;
 
 
 import java.util.Iterator ;
-import org.apache.jena.atlas.iterator.NullIterator ;
+
+import org.apache.jena.atlas.iterator.Iter;
 import org.apache.jena.atlas.lib.tuple.Tuple ;
 import org.apache.jena.graph.Node ;
 import org.apache.jena.graph.Triple ;
@@ -44,26 +45,26 @@ public class TripleTable extends TableBase
         super(3, indexes, nodeTable, policy) ;
         //table = new NodeTupleTableConcrete(3, indexes, nodeTable, policy) ;
     }
-    
-    public boolean add( Triple triple ) 
-    { 
+
+    public boolean add( Triple triple )
+    {
         return add(triple.getSubject(), triple.getPredicate(), 
triple.getObject()) ;
     }
 
-    public boolean add(Node s, Node p, Node o) 
-    { 
+    public boolean add(Node s, Node p, Node o)
+    {
         return table.addRow(s, p, o) ;
     }
-    
+
     /** Delete a triple  - return true if it was deleted, false if it didn't 
exist */
-    public boolean delete( Triple triple ) 
-    { 
+    public boolean delete( Triple triple )
+    {
         return delete(triple.getSubject(), triple.getPredicate(), 
triple.getObject()) ;
     }
-    
+
     /** Delete a triple  - return true if it was deleted, false if it didn't 
exist */
-    public boolean delete(Node s, Node p, Node o) 
-    { 
+    public boolean delete(Node s, Node p, Node o)
+    {
         return table.deleteRow(s, p, o) ;
     }
 
@@ -72,11 +73,11 @@ public class TripleTable extends TableBase
     {
         Iterator<Tuple<NodeId>> iter = table.findAsNodeIds(s, p, o) ;
         if ( iter == null )
-            return new NullIterator<>() ;
+            return Iter.nullIterator();
         Iterator<Triple> iter2 = 
TupleLib.convertToTriples(table.getNodeTable(), iter) ;
         return iter2 ;
     }
-    
+
     /** Clear - does not clear the associated node tuple table */
     public void clearTriples()
     { table.clear() ; }
diff --git 
a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/nodetupletable/NodeTupleTableConcrete.java
 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/nodetupletable/NodeTupleTableConcrete.java
index 23508cb70d..acb7592c14 100644
--- 
a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/nodetupletable/NodeTupleTableConcrete.java
+++ 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/nodetupletable/NodeTupleTableConcrete.java
@@ -23,7 +23,6 @@ import static java.lang.String.format ;
 import java.util.Iterator ;
 
 import org.apache.jena.atlas.iterator.Iter ;
-import org.apache.jena.atlas.iterator.NullIterator ;
 import org.apache.jena.atlas.lib.tuple.Tuple ;
 import org.apache.jena.atlas.lib.tuple.TupleFactory ;
 import org.apache.jena.graph.Node ;
@@ -127,7 +126,7 @@ public class NodeTupleTableConcrete implements 
NodeTupleTable
         try {
             startRead() ;
             Iterator<Tuple<NodeId>> iter1 = findAsNodeIds(nodes) ; // **public 
call
-            if (iter1 == null) return new NullIterator<>() ;
+            if (iter1 == null) return Iter.nullIterator(); ;
             Iterator<Tuple<Node>> iter2 = TupleLib.convertToNodes(nodeTable, 
iter1) ;
             // iteratorControl() not needed due to public call above.
             return iter2 ;
diff --git 
a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/tupletable/TupleIndexRecord.java
 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/tupletable/TupleIndexRecord.java
index e5ef0c5db5..9a3081167f 100644
--- 
a/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/tupletable/TupleIndexRecord.java
+++ 
b/jena-tdb1/src/main/java/org/apache/jena/tdb1/store/tupletable/TupleIndexRecord.java
@@ -133,9 +133,9 @@ public class TupleIndexRecord extends TupleIndexBase
         // Is it a simple existence test?
         if ( numSlots == pattern.len() ) {
             if ( index.contains(minRec) )
-                return new SingletonIterator<>(pattern);
+                return Iter.singletonIterator(pattern);
             else
-                return new NullIterator<>();
+                return Iter.nullIterator();
         }
 
         Iterator<Record> iter = null;
diff --git 
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecord.java
 
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecord.java
index 56c13b7a88..09540ad9b4 100644
--- 
a/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecord.java
+++ 
b/jena-tdb2/src/main/java/org/apache/jena/tdb2/store/tupletable/TupleIndexRecord.java
@@ -26,8 +26,6 @@ import java.util.Iterator;
 import java.util.function.Predicate;
 
 import org.apache.jena.atlas.iterator.Iter;
-import org.apache.jena.atlas.iterator.NullIterator;
-import org.apache.jena.atlas.iterator.SingletonIterator;
 import org.apache.jena.atlas.lib.tuple.Tuple;
 import org.apache.jena.atlas.lib.tuple.TupleFactory;
 import org.apache.jena.atlas.lib.tuple.TupleMap;
@@ -179,9 +177,9 @@ public class TupleIndexRecord extends TupleIndexBase
         // Is it a simple existence test?
         if ( numSlots == pattern.len() ) {
             if ( index.contains(minRec) )
-                return new SingletonIterator<>(pattern);
+                return Iter.singletonIterator(pattern);
             else
-                return new NullIterator<>();
+                return Iter.nullIterator();
         }
 
         // ---- Retrieval.

Reply via email to