1
2
3
4
5
6
7
8
9
10
11 package org.mule.examples.loanbroker.routers;
12
13 import org.mule.examples.loanbroker.LocaleMessage;
14 import org.mule.examples.loanbroker.messages.LoanQuote;
15 import org.mule.impl.MuleMessage;
16 import org.mule.routing.inbound.EventGroup;
17 import org.mule.umo.UMOEvent;
18 import org.mule.umo.UMOMessage;
19
20 import java.util.Iterator;
21
22 import org.apache.commons.logging.Log;
23 import org.apache.commons.logging.LogFactory;
24
25 public class BankQuotesAggregationLogic
26 {
27
28
29
30 protected static final Log logger = LogFactory.getLog(BankQuotesAggregationLogic.class);
31
32 public static UMOMessage aggregateEvents(EventGroup events) throws Exception
33 {
34 LoanQuote lowestQuote = null;
35 LoanQuote quote = null;
36 UMOEvent event = null;
37
38 for (Iterator iterator = events.iterator(); iterator.hasNext();)
39 {
40 event = (UMOEvent)iterator.next();
41 quote = (LoanQuote)event.getTransformedMessage();
42 logger.info(LocaleMessage.processingQuote(quote));
43
44 if (lowestQuote == null)
45 {
46 lowestQuote = quote;
47 }
48 else
49 {
50 if (quote.getInterestRate() < lowestQuote.getInterestRate())
51 {
52 lowestQuote = quote;
53 }
54 }
55 }
56
57 logger.info(LocaleMessage.lowestQuote(lowestQuote));
58 return new MuleMessage(lowestQuote, event.getMessage());
59 }
60 }