[ https://issues.apache.org/jira/browse/GROOVY-10893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17750245#comment-17750245 ]
Paul King commented on GROOVY-10893: ------------------------------------ The collectMany extension is similar to flatMap, and that would work by flattening (potentially empty) lists or non-empty optionals. I think it would be worth: * having some examples with the empty lists (I noticed you changed quite a few but I haven't checked some examples of the old style are left. I'll add some more examples unless I find some still there.) * supporting Optional (I'll raise another issue for this) > collectEntries accepts one or more entry values for each iteration but not > zero (via null) > ------------------------------------------------------------------------------------------ > > Key: GROOVY-10893 > URL: https://issues.apache.org/jira/browse/GROOVY-10893 > Project: Groovy > Issue Type: Improvement > Components: groovy-jdk > Reporter: Eric Milles > Assignee: Eric Milles > Priority: Minor > Fix For: 4.0.14 > > > The {{collectEntries}} extension methods accept one entry (as an entry, > array, list or map). And it accepts multiple entries (via a map). However, > it does not let you return no entry (as null). You can probably return an > empty map... > Similar to {{findResults}}, I'd like to be able to conditionally return an > entry or entries: > {code:groovy} > def map = list.collectEntries { item -> > if (item ...) { > def key = ..., val = ...; > Collections.singletonMap(key, val) > } > } > {code} > {{org.codehaus.groovy.runtime.DefaultGroovyMethods#addEntry(Map,Object)}} > could check for null before calling {{asType(newEntry, Map.Entry.class)}}. > {{collectMany}} has a similar issue. I need to write "if \(x\) y else > Collections.emptyList()" instead of just "if \(x\) y" in the closure block. > A simple null check in > {{org.codehaus.groovy.runtime.DefaultGroovyMethods#collectMany(Iterable,Collection,Closure)}} > could take care of this. -- This message was sent by Atlassian Jira (v8.20.10#820010)