1 /* 2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package com.sun.tools.internal.ws.api.wsdl; 27 28 import com.sun.tools.internal.ws.wsdl.document.WSDLConstants; 29 import org.w3c.dom.Element; 30 31 /** 32 * JAXWS WSDL parser {@link com.sun.tools.internal.ws.wsdl.parser.WSDLParser} will call an {@link TWSDLExtensionHandler} registered 33 * with it for the WSDL extensibility elements thats not already defined in the WSDL 1.1 spec, such as SOAP or MIME. 34 * 35 * @author Vivek Pandey 36 * @deprecated This class is deprecated, will be removed in JAX-WS 2.2 RI. 37 */ 38 public abstract class TWSDLExtensionHandler { 39 /** 40 * Gives the namespace of an extensibility element. 41 * <p/> 42 * For example a soap 1.1 XXExtensionHandler would return <code>""http://schemas.xmlsoap.org/wsdl/soap/"</code> 43 */ 44 public String getNamespaceURI() { 45 return null; 46 } 47 48 /** 49 * This interface is called during WSDL parsing on detecting any wsdl extension. 50 * 51 * @param context Parser context that will be passed on by the wsdl parser 52 * @param parent The Parent element within which the extensibility element is defined 53 * @param e The extensibility elemenet 54 * @return false if there was some error during the extension handling otherwise returns true. If returned false 55 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 56 */ 57 public boolean doHandleExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 58 if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_DEFINITIONS)) { 59 return handleDefinitionsExtension(context, parent, e); 60 } else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_TYPES)) { 61 return handleTypesExtension(context, parent, e); 62 } else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT_TYPE)) { 63 return handlePortTypeExtension(context, parent, e); 64 } else if ( 65 parent.getWSDLElementName().equals(WSDLConstants.QNAME_BINDING)) { 66 return handleBindingExtension(context, parent, e); 67 } else if ( 68 parent.getWSDLElementName().equals(WSDLConstants.QNAME_OPERATION)) { 69 return handleOperationExtension(context, parent, e); 70 } else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_INPUT)) { 71 return handleInputExtension(context, parent, e); 72 } else if ( 73 parent.getWSDLElementName().equals(WSDLConstants.QNAME_OUTPUT)) { 74 return handleOutputExtension(context, parent, e); 75 } else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_FAULT)) { 76 return handleFaultExtension(context, parent, e); 77 } else if ( 78 parent.getWSDLElementName().equals(WSDLConstants.QNAME_SERVICE)) { 79 return handleServiceExtension(context, parent, e); 80 } else if (parent.getWSDLElementName().equals(WSDLConstants.QNAME_PORT)) { 81 return handlePortExtension(context, parent, e); 82 } else { 83 return false; 84 } 85 } 86 87 /** 88 * Callback for <code>wsdl:portType</code> 89 * 90 * @param context Parser context that will be passed on by the wsdl parser 91 * @param parent The Parent element within which the extensibility element is defined 92 * @param e The extensibility elemenet 93 * @return false if there was some error during the extension handling otherwise returns true. If returned false 94 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 95 */ 96 public boolean handlePortTypeExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 97 return false; 98 } 99 100 /** 101 * Callback for <code>wsdl:definitions</code> 102 * 103 * @param context Parser context that will be passed on by the wsdl parser 104 * @param parent The Parent element within which the extensibility element is defined 105 * @param e The extensibility elemenet 106 * @return false if there was some error during the extension handling otherwise returns true. If returned false 107 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 108 */ 109 public boolean handleDefinitionsExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 110 return false; 111 } 112 113 /** 114 * Callback for <code>wsdl:type</code> 115 * 116 * @param context Parser context that will be passed on by the wsdl parser 117 * @param parent The Parent element within which the extensibility element is defined 118 * @param e The extensibility elemenet 119 * @return false if there was some error during the extension handling otherwise returns true. If returned false 120 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 121 */ 122 public boolean handleTypesExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 123 return false; 124 } 125 126 /** 127 * Callback for <code>wsdl:binding</code> 128 * 129 * @param context Parser context that will be passed on by the wsdl parser 130 * @param parent The Parent element within which the extensibility element is defined 131 * @param e The extensibility elemenet 132 * @return false if there was some error during the extension handling otherwise returns true. If returned false 133 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 134 */ 135 public boolean handleBindingExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 136 return false; 137 } 138 139 /** 140 * Callback for <code>wsdl:portType/wsdl:operation</code>. 141 * 142 * @param context Parser context that will be passed on by the wsdl parser 143 * @param parent The Parent element within which the extensibility element is defined 144 * @param e The extensibility elemenet 145 * @return false if there was some error during the extension handling otherwise returns true. If returned false 146 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 147 */ 148 public boolean handleOperationExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 149 return false; 150 } 151 152 /** 153 * Callback for <code>wsdl:input</code> 154 * 155 * @param context Parser context that will be passed on by the wsdl parser 156 * @param parent The Parent element within which the extensibility element is defined 157 * @param e The extensibility elemenet 158 * @return false if there was some error during the extension handling otherwise returns true. If returned false 159 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 160 */ 161 public boolean handleInputExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 162 return false; 163 } 164 165 /** 166 * Callback for <code>wsdl:output</code> 167 * 168 * @param context Parser context that will be passed on by the wsdl parser 169 * @param parent The Parent element within which the extensibility element is defined 170 * @param e The extensibility elemenet 171 * @return false if there was some error during the extension handling otherwise returns true. If returned false 172 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 173 */ 174 public boolean handleOutputExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 175 return false; 176 } 177 178 /** 179 * Callback for <code>wsdl:fault</code> 180 * 181 * @param context Parser context that will be passed on by the wsdl parser 182 * @param parent The Parent element within which the extensibility element is defined 183 * @param e The extensibility elemenet 184 * @return false if there was some error during the extension handling otherwise returns true. If returned false 185 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 186 */ 187 public boolean handleFaultExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 188 return false; 189 } 190 191 /** 192 * Callback for <code>wsdl:service</code> 193 * 194 * @param context Parser context that will be passed on by the wsdl parser 195 * @param parent The Parent element within which the extensibility element is defined 196 * @param e The extensibility elemenet 197 * @return false if there was some error during the extension handling otherwise returns true. If returned false 198 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 199 */ 200 public boolean handleServiceExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 201 return false; 202 } 203 204 /** 205 * Callback for <code>wsdl:port</code> 206 * 207 * @param context Parser context that will be passed on by the wsdl parser 208 * @param parent The Parent element within which the extensibility element is defined 209 * @param e The extensibility elemenet 210 * @return false if there was some error during the extension handling otherwise returns true. If returned false 211 * then the WSDL parser can abort if the wsdl extensibility element had <code>required</code> attribute set to true 212 */ 213 public boolean handlePortExtension(TWSDLParserContext context, TWSDLExtensible parent, Element e) { 214 return false; 215 } 216 }