KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > jaxws > io > SOAPMessageDataReader


1 package org.objectweb.celtix.bus.jaxws.io;
2
3 import java.io.ByteArrayInputStream JavaDoc;
4 import java.io.ByteArrayOutputStream JavaDoc;
5
6 import javax.xml.namespace.QName JavaDoc;
7 import javax.xml.soap.SOAPMessage JavaDoc;
8 import javax.xml.transform.Source JavaDoc;
9 import javax.xml.transform.dom.DOMSource JavaDoc;
10 import javax.xml.transform.sax.SAXSource JavaDoc;
11 import javax.xml.transform.stream.StreamSource JavaDoc;
12
13 import org.xml.sax.InputSource JavaDoc;
14
15 import org.objectweb.celtix.bindings.DataReader;
16 import org.objectweb.celtix.bus.jaxws.DynamicDataBindingCallback;
17 import org.objectweb.celtix.context.ObjectMessageContext;
18
19 public class SOAPMessageDataReader<T> implements DataReader<T> {
20     
21     final DynamicDataBindingCallback callback;
22
23     public SOAPMessageDataReader(DynamicDataBindingCallback cb) {
24         callback = cb;
25     }
26
27     public Object JavaDoc read(int idx, T input) {
28         SOAPMessage JavaDoc src = (SOAPMessage JavaDoc)input;
29         Source JavaDoc obj = null;
30         try {
31             if (DOMSource JavaDoc.class.isAssignableFrom(callback.getSupportedFormats()[0])) {
32                 
33                 obj = new DOMSource JavaDoc(src.getSOAPPart());
34                 
35             } else if (SAXSource JavaDoc.class.isAssignableFrom(callback.getSupportedFormats()[0])) {
36                 
37                 ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc();
38                 src.writeTo(baos);
39                 ByteArrayInputStream JavaDoc bais = new ByteArrayInputStream JavaDoc(baos.toByteArray());
40                 InputSource JavaDoc inputSource = new InputSource JavaDoc(bais);
41                 obj = new SAXSource JavaDoc(inputSource);
42                 
43             } else if (StreamSource JavaDoc.class.isAssignableFrom(callback.getSupportedFormats()[0])) {
44                 ByteArrayOutputStream JavaDoc baos = new ByteArrayOutputStream JavaDoc();
45                 src.writeTo(baos);
46                 ByteArrayInputStream JavaDoc bais = new ByteArrayInputStream JavaDoc(baos.toByteArray());
47                 obj = new StreamSource JavaDoc(bais);
48             }
49         } catch (Exception JavaDoc ex) {
50             ex.printStackTrace();
51         }
52         return obj;
53     }
54
55     public Object JavaDoc read(QName JavaDoc name, int idx, T input) {
56         return null;
57     }
58
59     public void readWrapper(ObjectMessageContext objCtx, boolean isOutBound, T input) {
60         //Complete
61
}
62
63 }
64
Popular Tags