This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-lang.git
The following commit(s) were added to refs/heads/master by this push: new b9c7da0a8 Add Streams.failableStream(T), non-varargs variant b9c7da0a8 is described below commit b9c7da0a8ccff15ef78f906c11590d9e983fcbd6 Author: Gary Gregory <garydgreg...@gmail.com> AuthorDate: Fri Mar 29 11:45:08 2024 -0400 Add Streams.failableStream(T), non-varargs variant --- src/changes/changes.xml | 1 + src/main/java/org/apache/commons/lang3/stream/Streams.java | 12 ++++++++++++ .../org/apache/commons/lang3/stream/FailableStreamTest.java | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index efed426b7..9fa424dc6 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -53,6 +53,7 @@ The <action> type attribute can be add,update,fix,remove. <action issue="LANG-1724" type="add" dev="ggregory" due-to="Gary Gregory">Add ReflectionDiffBuilder.Builder.</action> <action issue="LANG-1724" type="add" dev="ggregory" due-to="Gary Gregory">Add ReflectionDiffBuilder.builder().</action> <action issue="LANG-1702" type="add" dev="ggregory" due-to="Elliotte Rusty Harold">Add test in TypeUtilsTest #1151.</action> + <action issue="LANG-1724" type="add" dev="ggregory" due-to="Gary Gregory">Add Streams.failableStream(T), non-varargs variant.</action> <!-- FIX --> <action type="fix" dev="ggregory" due-to="Miklós Karakó, Gary Gregory">Improve Javadoc in ExceptionUtils #1136.</action> <action type="fix" dev="ggregory" due-to="Saiharshith Karuneegar Ramesh, Gary Gregory">Fixed two non-deterministic tests in EnumUtilsTest.java #1131.</action> diff --git a/src/main/java/org/apache/commons/lang3/stream/Streams.java b/src/main/java/org/apache/commons/lang3/stream/Streams.java index 97f8321ca..d5399c542 100644 --- a/src/main/java/org/apache/commons/lang3/stream/Streams.java +++ b/src/main/java/org/apache/commons/lang3/stream/Streams.java @@ -579,6 +579,18 @@ public class Streams { return new FailableStream<>(stream); } + /** + * Shorthand for {@code Streams.failableStream(value == null ? Stream.empty() : Stream.of(value))}. + * + * @param <T> the type of stream elements. + * @param value the single element of the new stream, may be {@code null}. + * @return the new FailableStream on {@code value} or an empty stream. + * @since 3.15.0 + */ + public static <T> FailableStream<T> failableStream(final T value) { + return failableStream(value == null ? Stream.empty() : Stream.of(value)); + } + /** * Shorthand for {@code Streams.failableStream(Streams.of(arrayValues))}. * diff --git a/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java b/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java index 6944bda73..d15714cdc 100644 --- a/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java +++ b/src/test/java/org/apache/commons/lang3/stream/FailableStreamTest.java @@ -60,6 +60,10 @@ public class FailableStreamTest { return Streams.failableStream(strings).map(this::failable).collect(Collectors.toList()).toArray(new String[0]); } + private String[] toArray(final String string) { + return Streams.failableStream(string).map(this::failable).collect(Collectors.toList()).toArray(new String[0]); + } + private String[] toArray(final String... strings) { return Streams.failableStream(strings).map(this::failable).collect(Collectors.toList()).toArray(new String[0]); }