changeset 7493:2d19796f57c4

Decouple Stream APIs from implementation; fix test bug
author briangoetz
date Thu, 21 Feb 2013 17:50:19 -0500
parents 440c59e7eed0
children ecc9a27d4b83
files src/share/classes/java/util/stream/DelegatingStream.java src/share/classes/java/util/stream/DoublePipeline.java src/share/classes/java/util/stream/DoubleStream.java src/share/classes/java/util/stream/IntPipeline.java src/share/classes/java/util/stream/IntStream.java src/share/classes/java/util/stream/LongPipeline.java src/share/classes/java/util/stream/LongStream.java src/share/classes/java/util/stream/ReferencePipeline.java src/share/classes/java/util/stream/Stream.java test-ng/tests/org/openjdk/tests/java/util/RandomStreamTest.java
diffstat 10 files changed, 31 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/classes/java/util/stream/DelegatingStream.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/DelegatingStream.java	Thu Feb 21 17:50:19 2013 -0500
@@ -26,6 +26,7 @@
 package java.util.stream;
 
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Spliterator;
@@ -76,6 +77,11 @@
         return delegate.getStreamFlags();
     }
 
+    @Override
+    public Iterator<T> iterator() {
+        return delegate.iterator();
+    }
+
     // -- Stream methods --
 
     public Stream<T> filter(Predicate<? super T> predicate) {
--- a/src/share/classes/java/util/stream/DoublePipeline.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/DoublePipeline.java	Thu Feb 21 17:50:19 2013 -0500
@@ -135,6 +135,11 @@
         }
     }
 
+    @Override
+    public DoubleIterator iterator() {
+        return Streams.doubleIteratorFrom(spliterator());
+    }
+
     // Stateless intermediate ops from DoubleStream
 
     @Override
--- a/src/share/classes/java/util/stream/DoubleStream.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/DoubleStream.java	Thu Feb 21 17:50:19 2013 -0500
@@ -45,9 +45,7 @@
     // BaseStream
 
     @Override
-    default DoubleIterator iterator() {
-        return Streams.doubleIteratorFrom(spliterator());
-    }
+    DoubleIterator iterator();
 
     @Override
     Spliterator.OfDouble spliterator();
--- a/src/share/classes/java/util/stream/IntPipeline.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/IntPipeline.java	Thu Feb 21 17:50:19 2013 -0500
@@ -134,6 +134,11 @@
         }
     }
 
+    @Override
+    public IntIterator iterator() {
+        return Streams.intIteratorFrom(spliterator());
+    }
+
     // Stateless intermediate ops from IntStream
 
     @Override
--- a/src/share/classes/java/util/stream/IntStream.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/IntStream.java	Thu Feb 21 17:50:19 2013 -0500
@@ -52,9 +52,7 @@
 public interface IntStream extends BaseStream<Integer, IntStream> {
 
     @Override
-    default IntIterator iterator() {
-        return Streams.intIteratorFrom(spliterator());
-    }
+    IntIterator iterator();
 
     @Override
     Spliterator.OfInt spliterator();
--- a/src/share/classes/java/util/stream/LongPipeline.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/LongPipeline.java	Thu Feb 21 17:50:19 2013 -0500
@@ -135,6 +135,11 @@
         }
     }
 
+    @Override
+    public LongIterator iterator() {
+        return Streams.longIteratorFrom(spliterator());
+    }
+
     // Stateless intermediate ops from LongStream
 
     @Override
--- a/src/share/classes/java/util/stream/LongStream.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/LongStream.java	Thu Feb 21 17:50:19 2013 -0500
@@ -46,9 +46,7 @@
     // BaseStream
 
     @Override
-    default LongIterator iterator() {
-        return Streams.longIteratorFrom(spliterator());
-    }
+    LongIterator iterator();
 
     @Override
     Spliterator.OfLong spliterator();
--- a/src/share/classes/java/util/stream/ReferencePipeline.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/ReferencePipeline.java	Thu Feb 21 17:50:19 2013 -0500
@@ -25,6 +25,7 @@
 package java.util.stream;
 
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Spliterator;
@@ -114,6 +115,11 @@
         return Nodes.makeBuilder(exactSizeIfKnown, generator);
     }
 
+    @Override
+    public Iterator<U> iterator() {
+        return Streams.iteratorFrom(spliterator());
+    }
+
     // Stateless intermediate operations from Stream
 
     @Override
--- a/src/share/classes/java/util/stream/Stream.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/src/share/classes/java/util/stream/Stream.java	Thu Feb 21 17:50:19 2013 -0500
@@ -568,8 +568,4 @@
      * @see #findFirst()
      */
     Optional<T> findAny();
-
-    default Iterator<T> iterator() {
-        return Streams.iteratorFrom(spliterator());
-    }
 }
--- a/test-ng/tests/org/openjdk/tests/java/util/RandomStreamTest.java	Thu Feb 21 16:43:05 2013 -0500
+++ b/test-ng/tests/org/openjdk/tests/java/util/RandomStreamTest.java	Thu Feb 21 17:50:19 2013 -0500
@@ -57,14 +57,13 @@
 
     public void testThreadLocalIntStream() throws InterruptedException {
         ExecutorService e = Executors.newFixedThreadPool(10);
-        ThreadLocalRandom tlr = ThreadLocalRandom.current();
 
         class RandomTask implements Runnable {
             int[] randoms;
 
             @Override
             public void run() {
-                randoms = tlr.ints().limit(100).toArray();
+                randoms = ThreadLocalRandom.current().ints().limit(100).toArray();
             }
         }
         RandomTask[] tasks = new RandomTask[10];