1
2
3
4
5
6
7
8
9
10
11 package org.mule.providers.jbi;
12
13 import org.mule.impl.ThreadSafeAccess;
14 import org.mule.providers.AbstractMessageAdapter;
15 import org.mule.umo.MessagingException;
16 import org.mule.umo.provider.MessageTypeNotSupportedException;
17
18 import java.util.Iterator;
19 import java.util.Set;
20
21 import javax.activation.DataHandler;
22 import javax.jbi.messaging.NormalizedMessage;
23
24
25
26
27
28
29
30
31
32 public class JbiMessageAdapter extends AbstractMessageAdapter
33 {
34
35
36
37 private static final long serialVersionUID = 642776588124612798L;
38
39 private final NormalizedMessage message;
40
41 public JbiMessageAdapter(Object message) throws MessagingException
42 {
43 if (message instanceof NormalizedMessage)
44 {
45 this.message = (NormalizedMessage)message;
46 for (Iterator iterator = this.message.getPropertyNames().iterator(); iterator.hasNext();)
47 {
48 String key = (String)iterator.next();
49 Object value = this.message.getProperty(key);
50 if (value != null)
51 {
52 setProperty(key, value);
53 }
54 }
55 }
56 else
57 {
58 throw new MessageTypeNotSupportedException(message, getClass());
59 }
60 }
61
62 protected JbiMessageAdapter(JbiMessageAdapter template)
63 {
64 super(template);
65 message = template.message;
66 }
67
68 public void setProperty(Object key, Object value)
69 {
70 message.setProperty(key.toString(), value);
71 }
72
73
74
75
76
77
78
79
80
81 public String getPayloadAsString(String encoding) throws Exception
82 {
83 throw new UnsupportedOperationException("getPayloadAsString");
84 }
85
86
87
88
89
90
91
92 public byte[] getPayloadAsBytes() throws Exception
93 {
94 throw new UnsupportedOperationException("getPayloadAsBytes");
95 }
96
97 public Object getPayload()
98 {
99 return message;
100 }
101
102 public Object getProperty(Object key)
103 {
104 return message.getProperty(key.toString());
105 }
106
107 public void addAttachment(String name, DataHandler dataHandler) throws Exception
108 {
109 message.addAttachment(name, dataHandler);
110 }
111
112 public void removeAttachment(String name) throws Exception
113 {
114 message.removeAttachment(name);
115 }
116
117 public DataHandler getAttachment(String name)
118 {
119 return message.getAttachment(name);
120 }
121
122 public Set getAttachmentNames()
123 {
124 return message.getAttachmentNames();
125 }
126
127 public ThreadSafeAccess newThreadCopy()
128 {
129 return new JbiMessageAdapter(this);
130 }
131
132 }