1
2
3
4
5
6
7 package org.mule.example.loanbroker.transformers;
8
9 import org.mule.api.MuleMessage;
10 import org.mule.api.transformer.TransformerException;
11 import org.mule.example.loanbroker.messages.Customer;
12 import org.mule.example.loanbroker.messages.CustomerQuoteRequest;
13 import org.mule.transformer.AbstractMessageTransformer;
14 import org.mule.transformer.types.DataTypeFactory;
15
16
17
18
19 public class RestRequestToCustomerRequest extends AbstractMessageTransformer
20 {
21
22 public RestRequestToCustomerRequest()
23 {
24 setReturnDataType(DataTypeFactory.create(CustomerQuoteRequest.class));
25 }
26
27 @Override
28 public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException
29 {
30 String name;
31 int ssn;
32 double amount;
33 int duration;
34
35 try
36 {
37 name = getParam(message, "customerName");
38 ssn = Integer.parseInt(getParam(message, "ssn"));
39 amount = Double.parseDouble(getParam(message, "loanAmount"));
40 duration = Integer.parseInt(getParam(message, "loanDuration"));
41 }
42 catch (Exception e)
43 {
44 throw new TransformerException(this, e);
45 }
46
47 Customer c = new Customer(name, ssn);
48 CustomerQuoteRequest request = new CustomerQuoteRequest(c, amount, duration);
49 return request;
50 }
51
52 protected String getParam(MuleMessage message, String name) throws NullPointerException
53 {
54 String value = message.getOutboundProperty(name);
55 if (value == null)
56 {
57 throw new IllegalArgumentException("Parameter '" + name + "' must be set on the request");
58 }
59 return value;
60 }
61 }