View Javadoc

1   /*
2    * $Id: RestRequestToCustomerRequest.java 20321 2010-11-24 15:21:24Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
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   * Converts parameters on the message into a CustomerQuoteRequest object
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  }