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