KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > tools > extensions > xmlformat > XMLFormatSerializer


1 package org.objectweb.celtix.tools.extensions.xmlformat;
2
3 import java.io.PrintWriter JavaDoc;
4 import java.io.Serializable JavaDoc;
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
14 import org.w3c.dom.Element JavaDoc;
15
16 import org.objectweb.celtix.helpers.XMLUtils;
17 import org.objectweb.celtix.tools.common.ToolConstants;
18
19 public class XMLFormatSerializer implements ExtensionSerializer, ExtensionDeserializer, Serializable JavaDoc {
20
21     XMLUtils xmlUtils = new XMLUtils();
22     
23     public void marshall(Class JavaDoc parentType, QName JavaDoc elementType, ExtensibilityElement extension, PrintWriter JavaDoc pw,
24                          Definition def, ExtensionRegistry extReg) throws WSDLException {
25
26         XMLFormat xmlFormat = (XMLFormat)extension;
27         StringBuffer JavaDoc sb = new StringBuffer JavaDoc(300);
28         sb.append("<" + xmlUtils.writeQName(def, elementType) + " ");
29         if (xmlFormat.getRootNode() != null) {
30             sb.append(ToolConstants.XMLBINDING_ROOTNODE + "=\""
31                       + xmlUtils.writeQName(def, xmlFormat.getRootNode()) + "\"");
32         }
33         sb.append(" />");
34         pw.print(sb.toString());
35         pw.println();
36     }
37
38     public ExtensibilityElement unmarshall(Class JavaDoc parentType, QName JavaDoc elementType, Element el, Definition def,
39                                            ExtensionRegistry extReg) throws WSDLException {
40
41         XMLFormat xmlFormat = (XMLFormat)extReg.createExtension(parentType, elementType);
42         xmlFormat.setElement(el);
43         xmlFormat.setElementType(elementType);
44         xmlFormat.setDocumentBaseURI(def.getDocumentBaseURI());
45         XMLFormatParser xmlBindingParser = new XMLFormatParser();
46         xmlBindingParser.parseElement(def, xmlFormat, el);
47         return xmlFormat;
48     }
49
50 }
51
Popular Tags