>"could" not "would"? If the operation is strictly many-to-one, then it will always emit a single element, this means that it might need to track as a part of its state whether it has emitted something in its integrator and if not then emit it in the finisher.
But I, guess that one could reason about it from multiple levels of zoom: a Stream can have end-to-end a specific N:M-ratio, a Gatherer could have a specific N:M-ratio, and an Integrator itself could have a specific N:M-ratio. Think of something like a `sort()`-Gatherer, it would not be able to emit anything until it has consumed all upstream elements, and it would only know that all upstream elements have been consumed once its finisher is invoked, and as a response to that it could then iterate over the entire sorted set of elements and emit them in the new order downstream. >Other than at initialization or finish, is it possible to have an "empty" >input? No, not an empty as in "absense of". You'd have to emit in the finisher then. Cheers, √ Viktor Klang Software Architect, Java Platform Group Oracle ________________________________ From: Ernie Rael <err...@raelity.com> Sent: Sunday, 7 April 2024 18:31 To: Viktor Klang <viktor.kl...@oracle.com>; core-libs-dev@openjdk.org <core-libs-dev@openjdk.org> Subject: [External] : Re: JEP 473: Stream Gatherers (Second Preview) On 24/04/07 9:11 AM, Viktor Klang wrote: Hi Ernie, "Many" in this case refers to "N", which is "0 ... N", OK, I was wondering about "many" including "0". so I'd say while it is techincally correct as-is, perhaps more precise would be to say "1-to-0..1" gatherer, since for every element in, there is 0 or 1 element out. I see. Many-to-one would be 0..N -> 1, which means that an empty input would "could" not "would"? yield a single output. Out of curiosity, is either correct technically? Other than at initialization or finish, is it possible to have an "empty" input? -ernie Cheers, √ Viktor Klang Software Architect, Java Platform Group Oracle ________________________________ From: core-libs-dev <core-libs-dev-r...@openjdk.org><mailto:core-libs-dev-r...@openjdk.org> on behalf of Ernie Rael <err...@raelity.com><mailto:err...@raelity.com> Sent: Sunday, 7 April 2024 18:06 To: core-libs-dev@openjdk.org<mailto:core-libs-dev@openjdk.org> <core-libs-dev@openjdk.org><mailto:core-libs-dev@openjdk.org> Subject: JEP 473: Stream Gatherers (Second Preview) This is about what might be a minor doc issue. In https://openjdk.org/jeps/473 it says As another example, Stream::filter takes a predicate that determines whether an input element should be passed downstream; this is simply a stateless one-to-many gatherer. Shouldn't this be "many-to-one"? -ernie