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 2015/06/28 22:22:35 UTC
jena git commit: JENA-966 : filterKeep/filterDrop : Fix for laziness
to apply on use.
Repository: jena
Updated Branches:
refs/heads/master 92bff669e -> 6f54f6431
JENA-966 : filterKeep/filterDrop : Fix for laziness to apply on use.
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/6f54f643
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/6f54f643
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/6f54f643
Branch: refs/heads/master
Commit: 6f54f643125ee356b9694da51b70b50342abcd49
Parents: 92bff66
Author: Andy Seaborne <an...@apache.org>
Authored: Sun Jun 28 21:15:47 2015 +0100
Committer: Andy Seaborne <an...@apache.org>
Committed: Sun Jun 28 21:15:47 2015 +0100
----------------------------------------------------------------------
.../apache/jena/util/iterator/LazyIterator.java | 32 ++++++++++++++------
1 file changed, 22 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/6f54f643/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 0b78722..07c5e2c 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
@@ -62,22 +62,34 @@ abstract public class LazyIterator<T> implements ExtendedIterator<T> {
it.remove();
}
+ // This calls unlazy as the iterator chain is created.
+ // Too early - wait until the chain is used.
+// @Override
+// public ExtendedIterator<T> filterKeep(Predicate<T> f) {
+// lazy();
+// return it.filterKeep(f);
+// }
+//
+// @Override
+// public ExtendedIterator<T> filterDrop(Predicate<T> f) {
+// lazy();
+// return it.filterDrop(f);
+// }
+
+ // Don't unlazy until hasNext of the filter is called.
@Override
- public ExtendedIterator<T> filterKeep(Predicate<T> f) {
- lazy();
- return it.filterKeep(f);
- }
+ public FilterIterator<T> filterKeep( Predicate<T> f )
+ { return new FilterIterator<>( f, this ); }
@Override
- public ExtendedIterator<T> filterDrop(Predicate<T> f) {
- lazy();
- return it.filterDrop(f);
- }
+ public FilterIterator<T> filterDrop( final Predicate<T> f )
+ { return new FilterIterator<>( f.negate(), this ); }
@Override
public <U> ExtendedIterator<U> mapWith(Function<T,U> map1) {
- lazy();
- return it.mapWith(map1);
+ return new Map1Iterator<>(map1, this) ;
+ //lazy();
+ //return it.mapWith(map1);
}
@Override