View Javadoc

1   /*
2    * $Id: TransformerRouter.java 19739 2010-09-27 14:28:40Z tcarlson $
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.routing.outbound;
12  
13  import org.mule.DefaultMuleEvent;
14  import org.mule.DefaultMuleMessage;
15  import org.mule.api.MessagingException;
16  import org.mule.api.MuleEvent;
17  import org.mule.api.MuleException;
18  import org.mule.api.MuleMessage;
19  import org.mule.api.routing.RoutingException;
20  import org.mule.api.transformer.Transformer;
21  import org.mule.api.transformer.TransformerException;
22  import org.mule.config.i18n.CoreMessages;
23  
24  /**
25   * Simply applies a transformer before continuing on to the next router.
26   * This can be useful with the {@link ChainingRouter}.
27   * @deprecated
28   */
29  public class TransformerRouter extends AbstractOutboundRouter
30  {
31      private Transformer transformer;
32  
33      @Override
34      public MuleEvent route(MuleEvent event) throws MessagingException
35      {
36          MuleMessage message = event.getMessage();
37  
38          if (transformer != null)
39          {
40              try
41              {
42                  Object payload = transformer.transform(message.getPayload());
43                  message = new DefaultMuleMessage(payload, message, muleContext);
44                  propagateMagicProperties(message, message);
45              }
46              catch (TransformerException e)
47              {
48                  throw new RoutingException(CoreMessages.transformFailedBeforeFilter(), event, 
49                      routes.get(0), e);
50              }
51          }
52          return message == null ? null : new DefaultMuleEvent(message, event);
53      }
54  
55      public boolean isMatch(MuleMessage message) throws MuleException
56      {
57          return true;
58      }
59  
60      public Transformer getTransformer()
61      {
62          return transformer;
63      }
64  
65      public void setTransformer(Transformer transformer)
66      {
67          this.transformer = transformer;
68      }
69  }
70