01: /*
02: * $Id: SynchronousLoanBroker.java 11394 2008-03-17 15:18:29Z tcarlson $
03: * --------------------------------------------------------------------------------------
04: * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
05: *
06: * The software in this package is published under the terms of the CPAL v1.0
07: * license, a copy of which has been included with this distribution in the
08: * LICENSE.txt file.
09: */
10:
11: package org.mule.example.loanbroker.esn;
12:
13: import org.mule.example.loanbroker.DefaultLoanBroker;
14: import org.mule.example.loanbroker.LoanBrokerException;
15: import org.mule.example.loanbroker.credit.CreditAgencyService;
16: import org.mule.example.loanbroker.messages.CreditProfile;
17: import org.mule.example.loanbroker.messages.CustomerQuoteRequest;
18: import org.mule.example.loanbroker.messages.LoanBrokerQuoteRequest;
19:
20: /**
21: * <code>SyncLoanBroker</code> is a synchronous Loan Broker that makes the calls to
22: * various components through the event context synchronously.
23: */
24: public class SynchronousLoanBroker extends DefaultLoanBroker {
25: //A proxy for this object gets injected via the <nested-router> element configured on this service.
26: //The proxy will then call out to an endpoint and return the result.
27: //The transformers configured on the endpoint control how data is marshalled into and out of the call.
28: private CreditAgencyService creditAgency;
29:
30: @Override
31: public Object getLoanQuote(CustomerQuoteRequest request)
32: throws LoanBrokerException {
33: super .getLoanQuote(request);
34: LoanBrokerQuoteRequest bqr = new LoanBrokerQuoteRequest();
35: bqr.setCustomerRequest(request);
36:
37: //This calls out to the CreditAgency service (see above)
38: CreditProfile cp = creditAgency.getCreditProfile(request
39: .getCustomer());
40: bqr.setCreditProfile(cp);
41:
42: return bqr;
43: }
44:
45: public CreditAgencyService getCreditAgency() {
46: return creditAgency;
47: }
48:
49: public void setCreditAgency(CreditAgencyService creditAgency) {
50: this.creditAgency = creditAgency;
51: }
52: }
|