1 package org.objectweb.celtix.tools.extensions.jaxws; 2 3 import javax.wsdl.Definition; 4 import javax.wsdl.WSDLException; 5 import javax.wsdl.extensions.ExtensionRegistry; 6 import org.w3c.dom.Element ; 7 import org.w3c.dom.Node ; 8 import org.w3c.dom.NodeList ; 9 10 import org.objectweb.celtix.tools.common.ToolConstants; 11 12 public class JAXWSBindingParser { 13 14 public JAXWSBinding parse(BindingsNode bindingsNode, Definition def) throws WSDLException { 15 return parse(bindingsNode.getParentType(), bindingsNode.getElement(), def); 16 } 17 18 public JAXWSBinding parse(Class parentType, Element element, Definition def) throws WSDLException { 19 ExtensionRegistry extReg = def.getExtensionRegistry(); 20 JAXWSBinding jaxwsBinding = (JAXWSBinding)extReg.createExtension(parentType, 21 ToolConstants.JAXWS_BINDINGS); 22 23 jaxwsBinding.setElementType(ToolConstants.JAXWS_BINDINGS); 24 jaxwsBinding.setElement(element); 25 jaxwsBinding.setDocumentBaseURI(def.getDocumentBaseURI()); 26 27 parseElement(jaxwsBinding, element); 28 return jaxwsBinding; 29 } 30 31 public void parseElement(JAXWSBinding jaxwsBinding, Element element) { 32 NodeList children = element.getChildNodes(); 33 if (children != null) { 34 for (int i = 0; i < children.getLength(); i++) { 35 Node child = children.item(i); 36 if (isAsyncElement(child)) { 37 jaxwsBinding.setAsyncMapping(true); 38 jaxwsBinding.setEnableAsyncMapping(isAsync(child)); 39 } 40 if (isMIMEElement(child)) { 41 jaxwsBinding.setSetMimeEnable(true); 42 jaxwsBinding.setEnableMime(isMIMEEnabled(child)); 43 } 44 } 45 } 46 } 47 48 private Boolean isAsyncElement(Node node) { 49 return "enableAsyncMapping".equals(node.getNodeName()); 50 } 51 52 private Boolean isAsync(Node node) { 53 return Boolean.valueOf(node.getTextContent()); 54 } 55 56 private Boolean isMIMEElement(Node node) { 57 return "enableMIMEContent".equals(node.getNodeName()); 58 } 59 60 private Boolean isMIMEEnabled(Node node) { 61 return Boolean.valueOf(node.getTextContent()); 62 } 63 } 64 | Popular Tags |