Repository: jena Updated Branches: refs/heads/master 84eca45b8 -> e9a976bae
Fix for JENA-966 Added removeNext(), andThen(), toList() and toSet() implementations to LazyIterator. Deprecated LateBindingIterator which had much the same. Modified Unparser to use LazyIterator rather than LateBindingIterator Project: http://git-wip-us.apache.org/repos/asf/jena/repo Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/e9a976ba Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/e9a976ba Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/e9a976ba Branch: refs/heads/master Commit: e9a976bae67be635047b52d7fa598e144015553b Parents: 84eca45 Author: Claude Warren <[email protected]> Authored: Fri Jun 26 18:48:45 2015 +0100 Committer: Claude Warren <[email protected]> Committed: Fri Jun 26 18:48:45 2015 +0100 ---------------------------------------------------------------------- .../jena/rdfxml/xmloutput/impl/Unparser.java | 9 +++---- .../jena/util/iterator/LateBindingIterator.java | 3 +++ .../apache/jena/util/iterator/LazyIterator.java | 26 +++++++++++++++++++- 3 files changed, 32 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/e9a976ba/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java b/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java index 8e6d765..0210f9e 100644 --- a/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java +++ b/jena-core/src/main/java/org/apache/jena/rdfxml/xmloutput/impl/Unparser.java @@ -115,7 +115,6 @@ package org.apache.jena.rdfxml.xmloutput.impl; * * [6.34] literal ::= (any well-formed XML) */ -import static org.apache.jena.util.iterator.WrappedIterator.create; import java.io.PrintWriter ; import java.util.* ; @@ -1545,11 +1544,11 @@ class Unparser { * used before instantiating the underlying iterator. */ private ExtendedIterator<Resource> allInfiniteLeft() { - return create(new LateBindingIterator<Resource>() { - @Override public Iterator<Resource> create() { - return infinite.iterator(); + return new LazyIterator<Resource>() { + @Override public ExtendedIterator<Resource> create() { + return WrappedIterator.create(infinite.iterator()); } - }); + }; } private Iterator<Resource> pleasingTypeIterator() { http://git-wip-us.apache.org/repos/asf/jena/blob/e9a976ba/jena-core/src/main/java/org/apache/jena/util/iterator/LateBindingIterator.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/util/iterator/LateBindingIterator.java b/jena-core/src/main/java/org/apache/jena/util/iterator/LateBindingIterator.java index eff26ba..099fce3 100644 --- a/jena-core/src/main/java/org/apache/jena/util/iterator/LateBindingIterator.java +++ b/jena-core/src/main/java/org/apache/jena/util/iterator/LateBindingIterator.java @@ -26,7 +26,10 @@ import java.util.Iterator ; * This allows an Iterator to be passed to some other * code, while delaying the evaluation of what actually * is going to be iterated over. + * + * @deprecated Use LazyIterator instead. */ +@Deprecated abstract public class LateBindingIterator<T> implements Iterator<T> { private Iterator<? extends T> it; http://git-wip-us.apache.org/repos/asf/jena/blob/e9a976ba/jena-core/src/main/java/org/apache/jena/util/iterator/LazyIterator.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/org/apache/jena/util/iterator/LazyIterator.java b/jena-core/src/main/java/org/apache/jena/util/iterator/LazyIterator.java index 8a26180..c3a103e 100644 --- a/jena-core/src/main/java/org/apache/jena/util/iterator/LazyIterator.java +++ b/jena-core/src/main/java/org/apache/jena/util/iterator/LazyIterator.java @@ -18,6 +18,9 @@ package org.apache.jena.util.iterator; +import java.util.Iterator; +import java.util.List; +import java.util.Set; import java.util.function.Function; import java.util.function.Predicate; @@ -59,7 +62,7 @@ abstract public class LazyIterator<T> implements ExtendedIterator<T> { it.remove(); } - public ExtendedIterator<T> andThen(ClosableIterator<? extends T> other) { + public ExtendedIterator<T> andThen(ClosableIterator<? extends T> other) { lazy(); return it.andThen(other); } @@ -88,6 +91,27 @@ abstract public class LazyIterator<T> implements ExtendedIterator<T> { it.close(); } + + @Override + public T removeNext() { + lazy(); + return it.removeNext(); + } + + @Override + public <X extends T> ExtendedIterator<T> andThen( Iterator<X> other ){ + return NiceIterator.andThen(this, other); + } + + @Override + public List<T> toList() { + return NiceIterator.asList(this); + } + + @Override + public Set<T> toSet() { + return NiceIterator.asSet(this); + } private void lazy() { if (it == null)
