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