1
2
3
4
5
6
7
8
9
10
11 package org.mule.routing.outbound;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.api.MessagingException;
15 import org.mule.api.MuleMessage;
16 import org.mule.api.MuleSession;
17 import org.mule.api.endpoint.ImmutableEndpoint;
18 import org.mule.api.routing.RoutingException;
19 import org.mule.api.transformer.Transformer;
20 import org.mule.api.transformer.TransformerException;
21 import org.mule.config.i18n.CoreMessages;
22
23
24
25
26
27 public class TransformerRouter extends AbstractOutboundRouter
28 {
29 private Transformer transformer;
30
31 public MuleMessage route(MuleMessage message, MuleSession session, boolean synchronous) throws MessagingException
32 {
33 if (transformer != null)
34 {
35 try
36 {
37 Object payload = transformer.transform(message.getPayload());
38 message = new DefaultMuleMessage(payload, message);
39 }
40 catch (TransformerException e)
41 {
42 throw new RoutingException(
43 CoreMessages.transformFailedBeforeFilter(),
44 message, (ImmutableEndpoint)endpoints.get(0), e);
45 }
46 }
47 return message;
48 }
49
50 public boolean isMatch(MuleMessage message) throws MessagingException
51 {
52 return true;
53 }
54
55 public Transformer getTransformer()
56 {
57 return transformer;
58 }
59
60 public void setTransformer(Transformer transformer)
61 {
62 this.transformer = transformer;
63 }
64 }
65