1
2
3
4
5
6
7 package org.mule.expression;
8
9 import org.mule.api.ExceptionPayload;
10 import org.mule.api.MuleMessage;
11 import org.mule.api.expression.ExpressionEvaluator;
12 import org.mule.util.StringUtils;
13
14 import org.apache.commons.logging.Log;
15 import org.apache.commons.logging.LogFactory;
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public class MessageExpressionEvaluator implements ExpressionEvaluator
38 {
39 public static final String NAME = "message";
40
41
42
43
44 protected transient final Log logger = LogFactory.getLog(MessagePayloadExpressionEvaluator.class);
45
46 public Object evaluate(String expression, MuleMessage message)
47 {
48 if (StringUtils.isEmpty(expression) || message==null)
49 {
50 return message;
51 }
52 else
53 {
54 if (expression.equals("id"))
55 {
56 return message.getUniqueId();
57 }
58 else if (expression.equals("correlationId"))
59 {
60 return message.getCorrelationId();
61 }
62 else if (expression.equals("correlationSequence"))
63 {
64 return message.getCorrelationSequence();
65 }
66 else if (expression.equals("correlationGroupSize"))
67 {
68 return message.getCorrelationGroupSize();
69 }
70 else if (expression.equals("replyTo"))
71 {
72 return message.getReplyTo();
73 }
74 else if (expression.equals("payload"))
75 {
76 return message.getPayload();
77 }
78 else if (expression.equals("encoding"))
79 {
80 return message.getEncoding();
81 }
82 else if (expression.equals("exception"))
83 {
84 ExceptionPayload ep = message.getExceptionPayload();
85 if (ep != null)
86 {
87 return ep.getException();
88 }
89 return null;
90 }
91 else
92 {
93 throw new IllegalArgumentException(expression);
94 }
95
96 }
97 }
98
99
100
101
102
103 public String getName()
104 {
105 return NAME;
106 }
107
108
109
110
111 public void setName(String name)
112 {
113 throw new UnsupportedOperationException();
114 }
115 }