| 1 10 11 package org.mule.samples.loanbroker.routers; 12 13 import java.util.Iterator ; 14 15 import org.mule.config.i18n.Message; 16 import org.mule.impl.MuleMessage; 17 import org.mule.routing.inbound.EventGroup; 18 import org.mule.routing.response.ResponseCorrelationAggregator; 19 import org.mule.samples.loanbroker.LoanQuote; 20 import org.mule.umo.UMOEvent; 21 import org.mule.umo.UMOMessage; 22 import org.mule.umo.routing.RoutingException; 23 import org.mule.umo.transformer.TransformerException; 24 25 29 public class BankQuotesResponseAggregator extends ResponseCorrelationAggregator 30 { 31 42 protected UMOMessage aggregateEvents(EventGroup events) throws RoutingException 43 { 44 try 45 { 46 LoanQuote lowestQuote = null; 47 LoanQuote quote = null; 48 UMOEvent event = null; 49 50 for (Iterator iterator = events.iterator(); iterator.hasNext();) 51 { 52 event = (UMOEvent)iterator.next(); 53 quote = (LoanQuote)event.getTransformedMessage(); 54 logger.info("Processing quote: " + quote); 55 56 if (lowestQuote == null) 57 { 58 lowestQuote = quote; 59 } 60 else 61 { 62 if (quote.getInterestRate() < lowestQuote.getInterestRate()) 63 { 64 lowestQuote = quote; 65 } 66 } 67 } 68 69 logger.info("Lowest quote is: " + lowestQuote); 70 return new MuleMessage(lowestQuote, event.getMessage()); 71 } 72 catch (TransformerException e) 73 { 74 throw new RoutingException(Message.createStaticMessage("Failed to get lowest quote"), 75 new MuleMessage(events), null, e); 76 } 77 } 78 79 87 protected boolean shouldAggregate(EventGroup events) 88 { 89 return super.shouldAggregate(events); 90 } 91 92 } 93 | Popular Tags |