KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > extensions > jms > JMSAddressSerializer


1 package org.objectweb.celtix.tools.extensions.jms;
2
3 import java.io.*;
4 import java.lang.reflect.*;
5
6 import javax.wsdl.Definition;
7 import javax.wsdl.WSDLException;
8 import javax.wsdl.extensions.ExtensibilityElement;
9 import javax.wsdl.extensions.ExtensionDeserializer;
10 import javax.wsdl.extensions.ExtensionRegistry;
11 import javax.wsdl.extensions.ExtensionSerializer;
12 import javax.xml.namespace.QName JavaDoc;
13 import org.w3c.dom.*;
14
15 import org.objectweb.celtix.helpers.XMLUtils;
16 import org.objectweb.celtix.tools.common.ToolConstants;
17
18 public class JMSAddressSerializer implements ExtensionSerializer,
19                                              ExtensionDeserializer,
20                                              Serializable {
21     public static final long serialVersionUID = 1;
22     XMLUtils xmlUtils = new XMLUtils();
23     
24     public void marshall(Class JavaDoc parentType,
25                          QName JavaDoc elementType,
26                          ExtensibilityElement extension,
27                          PrintWriter pw,
28                          Definition def,
29                          ExtensionRegistry extReg) throws WSDLException {
30
31         JMSAddress jmsAddress = (JMSAddress)extension;
32         StringBuffer JavaDoc sb = new StringBuffer JavaDoc(300);
33         sb.append(" <" + xmlUtils.writeQName(def, elementType) + " ");
34         sb.append(jmsAddress.getAttrXMLString());
35         sb.append("/>");
36         pw.print(sb.toString());
37         pw.println();
38     }
39
40     public ExtensibilityElement unmarshall(Class JavaDoc parentType,
41                                            QName JavaDoc elementType,
42                                            Element el,
43                                            Definition def,
44                                            ExtensionRegistry extReg) throws WSDLException {
45
46         JMSAddress jmsAddress = (JMSAddress)extReg.createExtension(parentType, elementType);
47         jmsAddress.setElementType(elementType);
48         jmsAddress.setElement(el);
49         jmsAddress.setDocumentBaseURI(def.getDocumentBaseURI());
50         
51         JMSAddressParser parser = new JMSAddressParser();
52         parser.parseElement(jmsAddress, el);
53         
54         if (jmsAddress.getAddress() == null || jmsAddress.getAddress().trim().length() == 0) {
55             if (def.getNamespaces() != null) {
56                 jmsAddress.setAddress((String JavaDoc)def.getNamespaces().get("jms"));
57             } else {
58                 jmsAddress.setAddress(ToolConstants.NS_JMS_ADDRESS);
59             }
60         }
61         return jmsAddress;
62     }
63 }
64
Popular Tags