1
2
3
4
5
6
7
8
9
10 package org.mule.transformer;
11
12 import org.mule.api.MuleMessage;
13 import org.mule.api.transformer.TransformerException;
14
15
16 public class TransformerTemplate extends AbstractMessageTransformer
17 {
18 private TransformerCallback callback;
19
20 public TransformerTemplate(TransformerCallback callback)
21 {
22 this.callback = callback;
23 }
24
25 @Override
26 public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException
27 {
28 try
29 {
30 return callback.doTransform(message);
31 }
32 catch (TransformerException e)
33 {
34 throw new TransformerException(e.getI18nMessage(),this, e);
35 }
36 catch (Exception e)
37 {
38 throw new TransformerException(this, e);
39 }
40 }
41
42 public interface TransformerCallback
43 {
44 public Object doTransform(MuleMessage message) throws Exception;
45 }
46
47 public static class OverwitePayloadCallback implements TransformerCallback
48 {
49 private Object payload;
50
51 public OverwitePayloadCallback(Object payload)
52 {
53 this.payload = payload;
54 }
55
56 public Object doTransform(MuleMessage message) throws Exception
57 {
58 return payload;
59 }
60 }
61 }