1 10 11 package org.mule.samples.loanbroker; 12 13 import org.apache.commons.logging.Log; 14 import org.apache.commons.logging.LogFactory; 15 import org.mule.MuleManager; 16 import org.mule.impl.RequestContext; 17 import org.mule.routing.outbound.StaticRecipientList; 18 import org.mule.umo.UMOMessage; 19 20 import java.util.ArrayList ; 21 import java.util.List ; 22 23 27 public class DefaultLenderService 28 { 29 32 protected transient Log logger = LogFactory.getLog(getClass()); 33 34 public void setLenderList(BankQuoteRequest request) 35 { 36 Bank[] l = getLenderList(request.getLoanRequest().getCreditProfile(), new Double ( 37 request.getLoanRequest().getLoanAmount())); 38 request.setLenders(l); 39 } 40 41 public Bank[] getLenderList(CreditProfile creditProfile, Double loanAmount) 42 { 43 Bank[] lenders; 44 if ((loanAmount.doubleValue() >= 20000)) { 50 lenders = new Bank[2]; 51 lenders[0] = new Bank("Bank1", getEndpoint("Bank1")); 52 lenders[1] = new Bank("Bank2", getEndpoint("Bank2")); 53 54 } 55 else if (((loanAmount.doubleValue() >= 10000) && (loanAmount.doubleValue() <= 19999))) { 64 lenders = new Bank[2]; 65 lenders[0] = new Bank("Bank3", getEndpoint("Bank3")); 66 lenders[1] = new Bank("Bank4", getEndpoint("Bank4")); 67 } 68 else 69 { 70 lenders = new Bank[1]; 71 lenders[0] = new Bank("Bank5", getEndpoint("Bank5")); 72 } 73 74 List recipients = new ArrayList (lenders.length); 75 for (int i = 0; i < lenders.length; i++) 76 { 77 recipients.add(lenders[i].getEndpoint()); 78 } 79 80 UMOMessage m = RequestContext.getEventContext().getMessage(); 81 m.setProperty(StaticRecipientList.RECIPIENTS_PROPERTY, recipients); 82 return lenders; 83 } 84 85 92 private String getEndpoint(String name) 93 { 94 String endpoint = MuleManager.getInstance().lookupEndpointIdentifier(name, null); 95 96 if (endpoint.startsWith("axis") || endpoint.startsWith("xfire") || endpoint.startsWith("glue") 97 || endpoint.startsWith("soap")) 98 { 99 int i = endpoint.indexOf('?'); 100 if (i > -1) 101 { 102 endpoint = endpoint.replaceFirst("\\?", "/" + name + "?method=getLoanQuote\\&"); 103 } 104 else 105 { 106 endpoint += "/" + name + "?method=getLoanQuote"; 107 } 108 } 109 110 return endpoint; 111 } 112 113 } 114 | Popular Tags |