You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ad...@apache.org on 2017/11/29 14:20:07 UTC

[2/3] james-project git commit: JAMES-2235 add a vararg API to flatten

JAMES-2235 add a vararg API to flatten


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/22495689
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/22495689
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/22495689

Branch: refs/heads/master
Commit: 22495689fb83beea66607dbd4caa5094389c070f
Parents: a5dc56d
Author: Matthieu Baechler <ma...@apache.org>
Authored: Wed Nov 29 10:42:51 2017 +0100
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Wed Nov 29 10:55:57 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/james/util/StreamUtils.java | 11 ++++++++--
 .../org/apache/james/util/StreamUtilsTest.java  | 21 ++++++++++++++++++++
 2 files changed, 30 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/22495689/server/container/util-java8/src/main/java/org/apache/james/util/StreamUtils.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/main/java/org/apache/james/util/StreamUtils.java b/server/container/util-java8/src/main/java/org/apache/james/util/StreamUtils.java
index f980802..4036ae5 100644
--- a/server/container/util-java8/src/main/java/org/apache/james/util/StreamUtils.java
+++ b/server/container/util-java8/src/main/java/org/apache/james/util/StreamUtils.java
@@ -19,16 +19,23 @@
 
 package org.apache.james.util;
 
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.function.Function;
 import java.util.stream.Stream;
 
 public class StreamUtils {
-    public static  <T> Stream<T> flatten(Collection<Stream<T>> streams) {
+
+    public static <T> Stream<T> flatten(Collection<Stream<T>> streams) {
         return flatten(streams.stream());
     }
 
-    public static  <T> Stream<T> flatten(Stream<Stream<T>> streams) {
+    public static <T> Stream<T> flatten(Stream<Stream<T>> streams) {
         return streams.flatMap(Function.identity());
     }
+
+    @SafeVarargs
+    public static <T> Stream<T> flatten(Stream<T>... streams) {
+        return flatten(Arrays.stream(streams));
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/22495689/server/container/util-java8/src/test/java/org/apache/james/util/StreamUtilsTest.java
----------------------------------------------------------------------
diff --git a/server/container/util-java8/src/test/java/org/apache/james/util/StreamUtilsTest.java b/server/container/util-java8/src/test/java/org/apache/james/util/StreamUtilsTest.java
index c14cd4c..13729f4 100644
--- a/server/container/util-java8/src/test/java/org/apache/james/util/StreamUtilsTest.java
+++ b/server/container/util-java8/src/test/java/org/apache/james/util/StreamUtilsTest.java
@@ -20,6 +20,7 @@
 package org.apache.james.util;
 
 import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 
 import java.util.stream.Stream;
 
@@ -77,4 +78,24 @@ public class StreamUtilsTest {
             .containsExactly(1, 2, 3);
     }
 
+    @Test
+    public void flattenShouldAcceptEmptyVarArg() {
+        assertThat(
+            StreamUtils.flatten()
+                .collect(Guavate.toImmutableList()))
+            .isEmpty();
+    }
+
+    @Test
+    public void flattenShouldThrowOnNullVarArg() {
+        Stream<String>[] streams = null;
+        assertThatThrownBy(() -> StreamUtils.flatten(streams).collect(Guavate.toImmutableList()))
+            .isInstanceOf(NullPointerException.class);
+    }
+
+    @Test
+    public void flattenShouldFlattenNonEmptyVarArg() {
+        assertThat(StreamUtils.flatten(Stream.of(1), Stream.of(2)).collect(Guavate.toImmutableList()))
+            .containsExactly(1, 2);
+    }
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org