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.AbstractMessageAwareTransformer;
18
19
20
21
22 public class RestRequestToCustomerRequest extends AbstractMessageAwareTransformer
23 {
24
25 public RestRequestToCustomerRequest()
26 {
27 setReturnClass(CustomerQuoteRequest.class);
28 }
29
30 public Object transform(MuleMessage message, String outputEncoding) throws TransformerException
31 {
32 String name;
33 int ssn;
34 double amount;
35 int duration;
36
37 try
38 {
39 name = getParam(message, "customerName");
40 ssn = Integer.parseInt(getParam(message, "ssn"));
41 amount = Double.parseDouble(getParam(message, "loanAmount"));
42 duration = Integer.parseInt(getParam(message, "loanDuration"));
43 }
44 catch (Exception e)
45 {
46 throw new TransformerException(this, e);
47 }
48
49 Customer c = new Customer(name, ssn);
50 CustomerQuoteRequest request = new CustomerQuoteRequest(c, amount, duration);
51 return request;
52 }
53
54 protected String getParam(MuleMessage message, String name) throws NullPointerException
55 {
56 String value = message.getStringProperty(name, null);
57 if (value == null)
58 {
59 throw new IllegalArgumentException("Parameter '" + name + "' must be set on the request");
60 }
61 return value;
62 }
63 }