1
2
3
4
5
6
7
8
9
10 package org.mule.routing;
11
12 import org.mule.DefaultMessageCollection;
13 import org.mule.DefaultMuleEvent;
14 import org.mule.api.MuleContext;
15 import org.mule.api.MuleEvent;
16 import org.mule.api.MuleMessage;
17 import org.mule.api.MuleMessageCollection;
18 import org.mule.api.routing.RouterResultsHandler;
19
20 import java.util.List;
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public class DefaultRouterResultsHandler implements RouterResultsHandler
38 {
39 public MuleEvent aggregateResults(List<MuleEvent> results, MuleEvent previous, MuleContext muleContext)
40 {
41 MuleMessage aggregate;
42
43 if (results == null || results.size() == 0)
44 {
45 aggregate = null;
46 }
47 else if (results.size() == 1)
48 {
49 MuleEvent event = results.get(0);
50 aggregate = event == null ? null : event.getMessage();
51 }
52 else
53 {
54 MuleMessageCollection coll = new DefaultMessageCollection(muleContext);
55 coll.propagateRootId(previous.getMessage());
56 for (MuleEvent event : results)
57 {
58 MuleMessage muleMessage = event == null ? null : event.getMessage();
59 if(muleMessage!=null)
60 {
61 coll.addMessage(muleMessage);
62 }
63 }
64 aggregate = coll;
65 }
66
67 return aggregate == null ? null : new DefaultMuleEvent(aggregate, previous);
68 }
69 }