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