Repository: jena Updated Branches: refs/heads/jena2 56021764e -> 480706bdc
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/480706bd Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/480706bd Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/480706bd Branch: refs/heads/jena2 Commit: 480706bdcff37bf740c9b66d3c6a5ed8f6d17709 Parents: 5602176 Author: Claude Warren <[email protected]> Authored: Fri Jun 26 19:13:20 2015 +0100 Committer: Claude Warren <[email protected]> Committed: Fri Jun 26 19:13:20 2015 +0100 ---------------------------------------------------------------------- .../jena/rdfxml/xmloutput/impl/Unparser.java | 6 ++--- .../jena/util/iterator/LateBindingIterator.java | 3 +++ .../hp/hpl/jena/util/iterator/LazyIterator.java | 24 ++++++++++++++++++++ 3 files changed, 30 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jena/blob/480706bd/jena-core/src/main/java/com/hp/hpl/jena/rdfxml/xmloutput/impl/Unparser.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/com/hp/hpl/jena/rdfxml/xmloutput/impl/Unparser.java b/jena-core/src/main/java/com/hp/hpl/jena/rdfxml/xmloutput/impl/Unparser.java index c9a7127..d28a2dc 100644 --- a/jena-core/src/main/java/com/hp/hpl/jena/rdfxml/xmloutput/impl/Unparser.java +++ b/jena-core/src/main/java/com/hp/hpl/jena/rdfxml/xmloutput/impl/Unparser.java @@ -1544,9 +1544,9 @@ class Unparser { * used before instantiating the underlying iterator. */ private Iterator<Resource> allInfiniteLeft() { - return 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()); } }; } http://git-wip-us.apache.org/repos/asf/jena/blob/480706bd/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LateBindingIterator.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LateBindingIterator.java b/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LateBindingIterator.java index 85c4dc5..84450ca 100644 --- a/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LateBindingIterator.java +++ b/jena-core/src/main/java/com/hp/hpl/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/480706bd/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LazyIterator.java ---------------------------------------------------------------------- diff --git a/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LazyIterator.java b/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LazyIterator.java index 456bf0f..a7ae37d 100644 --- a/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LazyIterator.java +++ b/jena-core/src/main/java/com/hp/hpl/jena/util/iterator/LazyIterator.java @@ -18,6 +18,10 @@ package com.hp.hpl.jena.util.iterator; +import java.util.Iterator; +import java.util.List; +import java.util.Set; + /** An ExtendedIterator that is created lazily. * This is useful when constructing an iterator is expensive and * you'd prefer to delay doing it until certain it's actually needed. @@ -85,6 +89,26 @@ abstract public class LazyIterator<T> implements ExtendedIterator<T> { it.close(); } + + @Override + public T removeNext() { + throw new UnsupportedOperationException(); + } + + @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)
