1 /*
   2  * Copyright (c) 1997, 2013, 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.wsdl.document.jaxws;
  27 
  28 import com.sun.tools.internal.ws.wsdl.framework.ExtensionImpl;
  29 import org.w3c.dom.Element;
  30 import org.xml.sax.Locator;
  31 
  32 import javax.xml.namespace.QName;
  33 import java.util.*;
  34 
  35 
  36 /**
  37  * @author Vivek Pandey
  38  *
  39  * To change the template for this generated type comment go to
  40  * Window>Preferences>Java>Code Generation>Code and Comments
  41  */
  42 public class JAXWSBinding extends ExtensionImpl {
  43 
  44     /**
  45      *
  46      */
  47     public JAXWSBinding(Locator locator){
  48         super(locator);
  49         jaxbBindings = new HashSet<Element>();
  50         // TODO Auto-generated constructor stub
  51     }
  52 
  53 
  54     /* (non-Javadoc)
  55      * @see Entity#validateThis()
  56      */
  57     public void validateThis(){
  58         // TODO Auto-generated method stub
  59 
  60     }
  61 
  62     /* (non-Javadoc)
  63      * @see Elemental#getElementName()
  64      */
  65     public QName getElementName(){
  66         // TODO Auto-generated method stub
  67         return JAXWSBindingsConstants.JAXWS_BINDINGS;
  68     }
  69 
  70     public QName getWSDLElementName() {
  71         return getElementName();
  72     }
  73 
  74     /* (non-Javadoc)
  75     * @see TWSDLExtensible#addExtension(ExtensionImpl)
  76     */
  77     public void addExtension(ExtensionImpl e) {
  78         // TODO Auto-generated method stub
  79 
  80     }
  81 
  82     /* (non-Javadoc)
  83      * @see TWSDLExtensible#extensions()
  84      */
  85     public Iterable<ExtensionImpl> extensions() {
  86         // TODO Auto-generated method stub
  87         return null;
  88     }
  89 
  90 
  91 //    /**
  92 //     * @return Returns the enableAdditionalHeaderMapping.
  93 //     */
  94 //    public Boolean isEnableAdditionalHeaderMapping() {
  95 //        return enableAdditionalHeaderMapping;
  96 //    }
  97 //    /**
  98 //     * @param enableAdditionalHeaderMapping The enableAdditionalHeaderMapping to set.
  99 //     */
 100 //    public void setEnableAdditionalHeaderMapping(
 101 //            Boolean enableAdditionalHeaderMapping) {
 102 //        this.enableAdditionalHeaderMapping = enableAdditionalHeaderMapping;
 103 //    }
 104     /**
 105      * @return Returns the enableAsyncMapping.
 106      */
 107     public Boolean isEnableAsyncMapping() {
 108         return enableAsyncMapping;
 109     }
 110     /**
 111      * @param enableAsyncMapping The enableAsyncMapping to set.
 112      */
 113     public void setEnableAsyncMapping(Boolean enableAsyncMapping) {
 114         this.enableAsyncMapping = enableAsyncMapping;
 115     }
 116     /**
 117      * @return Returns the enableMimeContentMapping.
 118      */
 119     public Boolean isEnableMimeContentMapping() {
 120         return enableMimeContentMapping;
 121     }
 122     /**
 123      * @param enableMimeContentMapping The enableMimeContentMapping to set.
 124      */
 125     public void setEnableMimeContentMapping(Boolean enableMimeContentMapping) {
 126         this.enableMimeContentMapping = enableMimeContentMapping;
 127     }
 128     /**
 129      * @return Returns the enableWrapperStyle.
 130      */
 131     public Boolean isEnableWrapperStyle() {
 132         return enableWrapperStyle;
 133     }
 134     /**
 135      * @param enableWrapperStyle The enableWrapperStyle to set.
 136      */
 137     public void setEnableWrapperStyle(Boolean enableWrapperStyle) {
 138         this.enableWrapperStyle = enableWrapperStyle;
 139     }
 140     /**
 141      * @return Returns the jaxwsPackage.
 142      */
 143     public CustomName getJaxwsPackage() {
 144         return jaxwsPackage;
 145     }
 146     /**
 147      * @param jaxwsPackage The jaxwsPackage to set.
 148      */
 149     public void setJaxwsPackage(CustomName jaxwsPackage) {
 150         this.jaxwsPackage = jaxwsPackage;
 151     }
 152     /**
 153      * @return Returns the node.
 154      */
 155     public String getNode() {
 156         return node;
 157     }
 158     /**
 159      * @param node The node to set.
 160      */
 161     public void setNode(String node) {
 162         this.node = node;
 163     }
 164     /**
 165      * @return Returns the version.
 166      */
 167     public String getVersion() {
 168         return version;
 169     }
 170     /**
 171      * @param version The version to set.
 172      */
 173     public void setVersion(String version) {
 174         this.version = version;
 175     }
 176 
 177     /**
 178      * @return Returns the wsdlLocation.
 179      */
 180     public String getWsdlLocation() {
 181         return wsdlLocation;
 182     }
 183 
 184     /**
 185      * @param wsdlLocation The wsdlLocation to set.
 186      */
 187     public void setWsdlLocation(String wsdlLocation) {
 188         this.wsdlLocation = wsdlLocation;
 189     }
 190 
 191     /**
 192      * @return Returns the wsdlNamespace.
 193      */
 194     public String getWsdlNamespace() {
 195         return wsdlNamespace;
 196     }
 197 
 198 
 199     /**
 200      * @param wsdlNamespace The wsdlNamespace to set.
 201      */
 202     public void setWsdlNamespace(String wsdlNamespace) {
 203         this.wsdlNamespace = wsdlNamespace;
 204     }
 205 
 206     /**
 207      * @return Returns the jaxbBindings.
 208      */
 209     public Set<Element> getJaxbBindings() {
 210         return jaxbBindings;
 211     }
 212 
 213     /**
 214      * @param jaxbBinding The jaxbBindings to set.
 215      */
 216     public void addJaxbBindings(Element jaxbBinding) {
 217         if(jaxbBindings == null)
 218             return;
 219         this.jaxbBindings.add(jaxbBinding);
 220     }
 221 
 222 
 223     /**
 224      * @return the isProvider.
 225      */
 226     public Boolean isProvider() {
 227         return isProvider;
 228     }
 229     /**
 230      * @param isProvider The isProvider to set.
 231      */
 232     public void setProvider(Boolean isProvider) {
 233         this.isProvider = isProvider;
 234     }
 235 
 236     /**
 237      * @return Returns the methodName.
 238      */
 239     public CustomName getMethodName() {
 240         return methodName;
 241     }
 242     /**
 243      * @param methodName The methodName to set.
 244      */
 245     public void setMethodName(CustomName methodName) {
 246         this.methodName = methodName;
 247     }
 248 
 249     /**
 250      * @return Returns the parameter.
 251      */
 252     public Iterator<Parameter> parameters() {
 253         return parameters.iterator();
 254     }
 255 
 256     /**
 257      * @param parameter The parameter to set.
 258      */
 259     public void addParameter(Parameter parameter) {
 260         if(parameters == null)
 261             parameters = new ArrayList<Parameter>();
 262         parameters.add(parameter);
 263     }
 264 
 265     public String getParameterName(String msgName, String wsdlPartName, QName element, boolean wrapperStyle){
 266         if(msgName == null || wsdlPartName == null || element == null || parameters == null)
 267             return null;
 268         for(Parameter param : parameters){
 269             if(param.getMessageName().equals(msgName) && param.getPart().equals(wsdlPartName)){
 270                 if(wrapperStyle && (param.getElement() != null)){
 271                     if(param.getElement().equals(element))
 272                         return param.getName();
 273                 }else if(!wrapperStyle){
 274                     return param.getName();
 275                 }
 276             }
 277         }
 278         return null;
 279     }
 280 
 281     /**
 282      * @return Returns the className.
 283      */
 284     public CustomName getClassName() {
 285         return className;
 286     }
 287     /**
 288      * @param className The className to set.
 289      */
 290     public void setClassName(CustomName className) {
 291         this.className = className;
 292     }
 293 
 294     private String wsdlNamespace;
 295     private String wsdlLocation;
 296     private String node;
 297     private String version;
 298 
 299     private CustomName jaxwsPackage;
 300     private List<Parameter> parameters;
 301     private Boolean enableWrapperStyle;
 302     private Boolean enableAsyncMapping;
 303 //    private Boolean enableAdditionalHeaderMapping;
 304     private Boolean enableMimeContentMapping;
 305     private Boolean isProvider;
 306 
 307     private Set<Element> jaxbBindings;
 308 
 309     // portType className
 310     private CustomName className;
 311 
 312     //portType WSDLOperation
 313     private CustomName methodName;
 314 }