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 2024/08/28 21:55:15 UTC
(jena) 03/12: GH-2664: Consolidate NullIterator and SingletonIterator around Iter functions
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 <an...@apache.org>
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.