1
2
3
4
5
6
7
8
9
10
11 package org.mule.module.scripting.transformer;
12
13 import org.mule.api.MuleMessage;
14 import org.mule.api.transformer.TransformerException;
15 import org.mule.module.scripting.component.Scriptable;
16 import org.mule.transformer.AbstractMessageTransformer;
17
18 import javax.script.ScriptException;
19 import javax.script.Bindings;
20
21
22
23
24 public class ScriptTransformer extends AbstractMessageTransformer
25 {
26 private Scriptable script;
27
28 @Override
29 public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException
30 {
31 Bindings bindings = script.getScriptEngine().createBindings();
32 script.populateBindings(bindings, message);
33 try
34 {
35 return script.runScript(bindings);
36 }
37 catch (ScriptException e)
38 {
39 throw new TransformerException(this, e);
40 }
41 }
42
43 public Scriptable getScript()
44 {
45 return script;
46 }
47
48 public void setScript(Scriptable script)
49 {
50 this.script = script;
51 }
52 }