Fwd: hg: lambda/lambda/jdk: Replace explode() with two forms of flatMap: flatMap(T->Stream<U>), and flatMap(FlatMapper<T, U>)

Brian Goetz brian.goetz at oracle.com
Thu Feb 7 11:53:30 PST 2013


I pushed an update along the lines of what was discussed yesterday, so 
people can take a look.  Summary:

  - Eliminated "Downstream" abstraction
  - Added FlatMapper type (with nested specializations) in j.u.s.
  - Added five forms of Stream.flatMap
    flatMap(Function<T, Stream<U>)
    flatMap(FlatMapper<T,U>)
    flatMap(FlatMapper.To{Int,Long,Double}<T>)
  - Added one form of flatMap for each primitive stream:
    {Int,Long,Double}Stream.flatMap(FlatMapper.{ILD}To{ILD})

Check it out and see what you think.  Commit message attached.  I think 
this is an improvement.

Bikeshedding on naming can continue :)

-------- Original Message --------
Subject: hg: lambda/lambda/jdk: Replace explode() with two forms of 
flatMap: flatMap(T->Stream<U>), and flatMap(FlatMapper<T, U>)
Date: Thu, 07 Feb 2013 19:37:14 +0000
From: brian.goetz at oracle.com
To: lambda-dev at openjdk.java.net

Changeset: 3aed6b4f4d42
Author:    briangoetz
Date:      2013-02-07 14:36 -0500
URL:       http://hg.openjdk.java.net/lambda/lambda/jdk/rev/3aed6b4f4d42

Replace explode() with two forms of flatMap: flatMap(T->Stream<U>), and 
flatMap(FlatMapper<T,U>)

! src/share/classes/java/util/stream/DoublePipeline.java
! src/share/classes/java/util/stream/DoubleStream.java
+ src/share/classes/java/util/stream/FlatMapper.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/bootlib/java/util/stream/LambdaTestHelpers.java
! test-ng/boottests/java/util/stream/SpinedBufferTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/ExplodeOpTest.java
! test-ng/tests/org/openjdk/tests/java/util/stream/ToArrayOpTest.java
! test/java/util/LambdaUtilities.java
! test/java/util/stream/Stream/EmployeeStreamTest.java
! test/java/util/stream/Stream/IntStreamTest.java
! test/java/util/stream/Stream/IntegerStreamTest.java
! test/java/util/stream/Stream/StringBuilderStreamTest.java
! test/java/util/stream/Streams/BasicTest.java






More information about the lambda-libs-spec-experts mailing list