1
2
3
4
5
6
7
8
9
10
11 package org.mule.providers.vm;
12
13 import org.mule.impl.ThreadSafeAccess;
14 import org.mule.providers.AbstractMessageAdapter;
15 import org.mule.umo.UMOMessage;
16 import org.mule.umo.provider.MessageTypeNotSupportedException;
17
18
19
20
21
22
23
24 public class VMMessageAdapter extends AbstractMessageAdapter
25 {
26
27
28
29 private static final long serialVersionUID = 4037066880189053665L;
30
31
32
33
34 private UMOMessage message = null;
35
36 public VMMessageAdapter(UMOMessage message) throws MessageTypeNotSupportedException
37 {
38 setMessage(message);
39 }
40
41 protected VMMessageAdapter(VMMessageAdapter template)
42 {
43 super(template);
44
45 message = template.message;
46 }
47
48
49
50
51
52
53
54
55
56 public String getPayloadAsString(String encoding) throws Exception
57 {
58 return message.getPayloadAsString(encoding);
59 }
60
61
62
63
64
65
66
67 public byte[] getPayloadAsBytes() throws Exception
68 {
69 return convertToBytes(message.getPayload());
70 }
71
72
73
74
75 public Object getPayload()
76 {
77 return message;
78 }
79
80
81
82
83 private void setMessage(UMOMessage message) throws MessageTypeNotSupportedException
84 {
85 if (message == null)
86 {
87 throw new MessageTypeNotSupportedException(null, getClass());
88 }
89 this.message = message;
90 }
91
92 public String getUniqueId()
93 {
94 return message.getUniqueId();
95 }
96
97 public ThreadSafeAccess newThreadCopy()
98 {
99 return new VMMessageAdapter(this);
100 }
101
102 }