You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Matt Benson (JIRA)" <ji...@apache.org> on 2009/09/11 19:06:57 UTC
[jira] Resolved: (COLLECTIONS-182) [collections] Change
CollectionUtils.forAllDo to return the Closure
[ https://issues.apache.org/jira/browse/COLLECTIONS-182?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Matt Benson resolved COLLECTIONS-182.
-------------------------------------
Resolution: Fixed
Committed revision 813925.
solution I used was:
public static <T, C extends Closure<? super T>> C forAllDo(Collection<T> collection, C closure) {
> [collections] Change CollectionUtils.forAllDo to return the Closure
> -------------------------------------------------------------------
>
> Key: COLLECTIONS-182
> URL: https://issues.apache.org/jira/browse/COLLECTIONS-182
> Project: Commons Collections
> Issue Type: Improvement
> Affects Versions: 3.1
> Environment: Operating System: All
> Platform: All
> Reporter: Jim Cakalic
> Priority: Minor
> Fix For: Generics
>
>
> I frequently use CollectionUtils.forAllDo with a Closure that determines some
> kind of aggregate value across the members of the Collection. For example, and
> this is entirely manufactured, say I have an Order with a collection of
> LineItems. Order might use a SumClosure to count the number of actual items (not
> LineItem objects) on the Order or to compute the sum of the LineItems cost. It
> would be convenient in these cases if I could use the return of forAllDo to
> chain method calls like this:
> public BigDecimal getTotal() {
> return CollectionUtils.forAllDo(lineItems, new SumTotalClosure()).total();
> }
> As it is, I have to make do with the somewhat less compact:
> public BigDecimal getTotal() {
> SumTotalClosure closure = new SumTotalClosure();
> CollectionUtils.forAllDo(lineItems, closure);
> return closure.total();
> }
> Thanks for considering it.
> Regards,
> Jim Cakalic
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.