Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 94804 invoked from network); 30 Aug 2005 10:59:53 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 30 Aug 2005 10:59:53 -0000 Received: (qmail 42346 invoked by uid 500); 30 Aug 2005 10:59:52 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 42283 invoked by uid 500); 30 Aug 2005 10:59:51 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 42270 invoked by uid 99); 30 Aug 2005 10:59:51 -0000 X-ASF-Spam-Status: No, hits=-9.8 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [209.237.227.194] (HELO minotaur.apache.org) (209.237.227.194) by apache.org (qpsmtpd/0.29) with SMTP; Tue, 30 Aug 2005 03:59:50 -0700 Received: (qmail 94755 invoked by uid 65534); 30 Aug 2005 10:59:49 -0000 Message-ID: <20050830105949.94753.qmail@minotaur.apache.org> Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r264756 - in /webservices/axis/trunk/java/modules/wsdl/src/org/apache: axis2/wsdl/builder/wsdl4j/ axis2/wsdl/codegen/ axis2/wsdl/codegen/emitter/ wsdl/ wsdl/extensions/ wsdl/extensions/impl/ wsdl/impl/ Date: Tue, 30 Aug 2005 10:59:46 -0000 To: axis-cvs@ws.apache.org From: ajith@apache.org X-Mailer: svnmailer-1.0.5 X-Virus-Checked: Checked by ClamAV on apache.org X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N Author: ajith Date: Tue Aug 30 03:59:16 2005 New Revision: 264756 URL: http://svn.apache.org/viewcvs?rev=264756&view=rev Log: Half through providing header support. The following changes are made 1. SOAPHeader /impl classes are added 2. WSDLPump /WSDLfactory/Constant classes are modeified to make the right obejct when headers are encountered 3. New parameter to determine the enforcing of interface or binding. default is set to automatic 4. Modified the MultiLanguageClientEmitter to suit the change of the parameter Added: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/SOAPHeader.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/SOAPHeadeImpl.java Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/builder/wsdl4j/WSDLPump.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/emitter/MultiLanguageClientEmitter.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBinding.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBindingOperation.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/ExtensionConstants.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/ExtensionFactoryImpl.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingImpl.java webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingOperationImpl.java Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/builder/wsdl4j/WSDLPump.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/builder/wsdl4j/WSDLPump.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/builder/wsdl4j/WSDLPump.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/builder/wsdl4j/WSDLPump.java Tue Aug 30 03:59:16 2005 @@ -32,10 +32,7 @@ import javax.wsdl.extensions.UnknownExtensibilityElement; import javax.wsdl.extensions.schema.Schema; import javax.wsdl.extensions.schema.SchemaImport; -import javax.wsdl.extensions.soap.SOAPAddress; -import javax.wsdl.extensions.soap.SOAPBinding; -import javax.wsdl.extensions.soap.SOAPBody; -import javax.wsdl.extensions.soap.SOAPOperation; +import javax.wsdl.extensions.soap.*; import javax.xml.namespace.QName; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; @@ -123,13 +120,6 @@ this.womDefinition.setTypes(wsdlTypes); } -// Map importsMap = wsdl4JDefinition.getImports(); -// if (null!=importsMap && importsMap.size()>0){ -// Object[] imports = importsMap.values().toArray(); -// for (int i = 0; i < imports.length; i++) { -// Import wsdl4jImport = (Import) importsMap.values(). -// } -// } // There can be types that are imported. Check the imports and // These schemas are needed for code generation @@ -179,8 +169,8 @@ //////////////////(3)Copy the Bindings/////////////////////// //pump the Bindings: Get the Bindings map from WSDL4J and create a new - // map of - //WSDLBinding elements + // map of WSDLBinding elements. At this point we need to do some extra work since there + //can be header parameters Iterator bindingIterator = wsdl4JDefinition.getBindings().values() .iterator(); @@ -255,7 +245,7 @@ */ private void populateBindings(WSDLBinding wsdlBinding, Binding wsdl4JBinding) { - //Copy attrebutes + //Copy attributes wsdlBinding.setName(wsdl4JBinding.getQName()); QName interfaceName = wsdl4JBinding.getPortType().getQName(); WSDLInterface wsdlInterface = @@ -581,8 +571,10 @@ wsdlBindingOperation.setName( new QName(nameSpaceOfTheBindingOperation, wsdl4jBindingOperation.getName())); + BindingInput wsdl4jInputBinding = wsdl4jBindingOperation.getBindingInput(); + if (null != wsdl4jInputBinding) { WSDLBindingMessageReference wsdlInputBinding = this.wsdlComponentFactory.createWSDLBindingMessageReference(); @@ -705,25 +697,25 @@ if (wsdl4jElement instanceof UnknownExtensibilityElement) { UnknownExtensibilityElement unknown = (UnknownExtensibilityElement) (wsdl4jElement); - DefaultExtensibilityElement extensibilityElement = (DefaultExtensibilityElement) extensionFactory + DefaultExtensibilityElement defaultExtensibilityElement = (DefaultExtensibilityElement) extensionFactory .getExtensionElement(wsdl4jElement.getElementType()); - extensibilityElement.setElement(unknown.getElement()); + defaultExtensibilityElement.setElement(unknown.getElement()); Boolean required = unknown.getRequired(); if (null != required) { - extensibilityElement.setRequired(required.booleanValue()); + defaultExtensibilityElement.setRequired(required.booleanValue()); } - component.addExtensibilityElement(extensibilityElement); + component.addExtensibilityElement(defaultExtensibilityElement); } else if (wsdl4jElement instanceof SOAPAddress) { SOAPAddress soapAddress = (SOAPAddress) wsdl4jElement; - org.apache.wsdl.extensions.SOAPAddress extensibilityElement = (org.apache.wsdl.extensions.SOAPAddress) extensionFactory + org.apache.wsdl.extensions.SOAPAddress soapAddressExtensibilityElement = (org.apache.wsdl.extensions.SOAPAddress) extensionFactory .getExtensionElement(soapAddress.getElementType()); - extensibilityElement.setLocationURI(soapAddress + soapAddressExtensibilityElement.setLocationURI(soapAddress .getLocationURI()); Boolean required = soapAddress.getRequired(); if (null != required) { - extensibilityElement.setRequired(required.booleanValue()); + soapAddressExtensibilityElement.setRequired(required.booleanValue()); } - component.addExtensibilityElement(extensibilityElement); + component.addExtensibilityElement(soapAddressExtensibilityElement); } else if (wsdl4jElement instanceof Schema) { Schema schema = (Schema) wsdl4jElement; //schema.getDocumentBaseURI() @@ -732,58 +724,77 @@ //recursivly load the schema elements. The best thing is to push these into //a stack and then pop from the other side pushSchemaElement(schema, schemaStack); - org.apache.wsdl.extensions.Schema extensibilityElement = (org.apache.wsdl.extensions.Schema) extensionFactory.getExtensionElement( + org.apache.wsdl.extensions.Schema schemaExtensibilityElement = (org.apache.wsdl.extensions.Schema) extensionFactory.getExtensionElement( schema.getElementType()); - extensibilityElement.setElement(schema.getElement()); - extensibilityElement.setImportedSchemaStack(schemaStack); + schemaExtensibilityElement.setElement(schema.getElement()); + schemaExtensibilityElement.setImportedSchemaStack(schemaStack); Boolean required = schema.getRequired(); if (null != required) { - extensibilityElement.setRequired(required.booleanValue()); + schemaExtensibilityElement.setRequired(required.booleanValue()); } //set the name of this Schema element - extensibilityElement.setName(new QName("",schema.getDocumentBaseURI())); - component.addExtensibilityElement(extensibilityElement); + //todo this needs to be fixed + schemaExtensibilityElement.setName(new QName("",schema.getDocumentBaseURI())); + component.addExtensibilityElement(schemaExtensibilityElement); } else if (SOAPConstants.Q_ELEM_SOAP_OPERATION.equals( wsdl4jElement.getElementType())) { SOAPOperation soapOperation = (SOAPOperation) wsdl4jElement; - org.apache.wsdl.extensions.SOAPOperation extensibilityElement = (org.apache.wsdl.extensions.SOAPOperation) extensionFactory.getExtensionElement( + org.apache.wsdl.extensions.SOAPOperation soapOperationextensibilityElement = (org.apache.wsdl.extensions.SOAPOperation) extensionFactory.getExtensionElement( soapOperation.getElementType()); - extensibilityElement.setSoapAction( + soapOperationextensibilityElement.setSoapAction( soapOperation.getSoapActionURI()); - extensibilityElement.setStyle(soapOperation.getStyle()); + soapOperationextensibilityElement.setStyle(soapOperation.getStyle()); Boolean required = soapOperation.getRequired(); if (null != required) { - extensibilityElement.setRequired(required.booleanValue()); + soapOperationextensibilityElement.setRequired(required.booleanValue()); } - component.addExtensibilityElement(extensibilityElement); + component.addExtensibilityElement(soapOperationextensibilityElement); } else if (SOAPConstants.Q_ELEM_SOAP_BODY.equals( wsdl4jElement.getElementType())) { SOAPBody soapBody = (SOAPBody) wsdl4jElement; - org.apache.wsdl.extensions.SOAPBody extensibilityElement = (org.apache.wsdl.extensions.SOAPBody) extensionFactory.getExtensionElement( + org.apache.wsdl.extensions.SOAPBody soapBodyExtensibilityElement = (org.apache.wsdl.extensions.SOAPBody) extensionFactory.getExtensionElement( soapBody.getElementType()); - extensibilityElement.setNamespaceURI( + soapBodyExtensibilityElement.setNamespaceURI( soapBody.getNamespaceURI()); - extensibilityElement.setUse(soapBody.getUse()); + soapBodyExtensibilityElement.setUse(soapBody.getUse()); Boolean required = soapBody.getRequired(); if (null != required) { - extensibilityElement.setRequired(required.booleanValue()); + soapBodyExtensibilityElement.setRequired(required.booleanValue()); + } + + component.addExtensibilityElement(soapBodyExtensibilityElement); + //add the header + } else if (SOAPConstants.Q_ELEM_SOAP_HEADER.equals( + wsdl4jElement.getElementType())) { + SOAPHeader soapHeader = (SOAPHeader) wsdl4jElement; + org.apache.wsdl.extensions.SOAPHeader soapHeaderExtensibilityElement = (org.apache.wsdl.extensions.SOAPHeader) extensionFactory.getExtensionElement( + soapHeader.getElementType()); + soapHeaderExtensibilityElement.setNamespaceURI( + soapHeader.getNamespaceURI()); + soapHeaderExtensibilityElement.setUse(soapHeader.getUse()); + Boolean required = soapHeader.getRequired(); + if (null != required) { + soapHeaderExtensibilityElement.setRequired(required.booleanValue()); } - component.addExtensibilityElement(extensibilityElement); + soapHeaderExtensibilityElement.setMessage(soapHeader.getMessage()); + soapHeaderExtensibilityElement.setPart(soapHeader.getPart()); + soapHeader.getMessage(); + component.addExtensibilityElement(soapHeaderExtensibilityElement); } else if (SOAPConstants.Q_ELEM_SOAP_BINDING.equals( wsdl4jElement.getElementType())) { SOAPBinding soapBinding = (SOAPBinding) wsdl4jElement; - org.apache.wsdl.extensions.SOAPBinding extensibilityElement = (org.apache.wsdl.extensions.SOAPBinding) extensionFactory.getExtensionElement( + org.apache.wsdl.extensions.SOAPBinding soapBindingExtensibilityElement = (org.apache.wsdl.extensions.SOAPBinding) extensionFactory.getExtensionElement( soapBinding.getElementType()); - extensibilityElement.setTransportURI( + soapBindingExtensibilityElement.setTransportURI( soapBinding.getTransportURI()); - extensibilityElement.setStyle(soapBinding.getStyle()); + soapBindingExtensibilityElement.setStyle(soapBinding.getStyle()); Boolean required = soapBinding.getRequired(); if (null != required) { - extensibilityElement.setRequired(required.booleanValue()); + soapBindingExtensibilityElement.setRequired(required.booleanValue()); } - component.addExtensibilityElement(extensibilityElement); + component.addExtensibilityElement(soapBindingExtensibilityElement); } else { -// throw new AxisError( + // throw new AxisError( // "An Extensible item "+wsdl4jElement.getElementType()+" went unparsed during WSDL Parsing"); } } Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/CodeGenConfiguration.java Tue Aug 30 03:59:16 2005 @@ -43,8 +43,24 @@ private boolean writeMessageReceiver = true; private String packageName = XSLTConstants.DEFAULT_PACKAGE_NAME; + /* Code generation style means whether to use the binding or the interface for code generation. + * the default is automatic where the code generator looks for the binding and if the binding is + * absent, switches to the interface. The user however, can switch to the interface or the binding + * modes explicitly by specifying this parameter + */ + private int codeGenerationStyle = XSLTConstants.CodegenStyle.AUTOMATIC; + private TypeMapper typeMapper; + + + public int getCodeGenerationStyle() { + return codeGenerationStyle; + } + + public void setCodeGenerationStyle(int codeGenerationStyle) { + this.codeGenerationStyle = codeGenerationStyle; + } public TypeMapper getTypeMapper() { return typeMapper; Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/XSLTConstants.java Tue Aug 30 03:59:16 2005 @@ -40,6 +40,11 @@ } + public interface CodegenStyle{ + public static final int AUTOMATIC = 0; + public static final int INTERFACE = 1; + public static final int BINDING = 2; + } /** * Interface templates */ Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/emitter/MultiLanguageClientEmitter.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/emitter/MultiLanguageClientEmitter.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/emitter/MultiLanguageClientEmitter.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/codegen/emitter/MultiLanguageClientEmitter.java Tue Aug 30 03:59:16 2005 @@ -2,12 +2,13 @@ import org.apache.axis2.wsdl.codegen.CodeGenConfiguration; import org.apache.axis2.wsdl.codegen.CodeGenerationException; -import org.apache.axis2.wsdl.codegen.Constants; +import org.apache.axis2.wsdl.codegen.XSLTConstants; import org.apache.axis2.wsdl.codegen.writer.*; import org.apache.axis2.wsdl.databinding.TypeMapper; import org.apache.wsdl.*; import org.apache.wsdl.extensions.ExtensionConstants; import org.apache.wsdl.extensions.SOAPOperation; +import org.apache.wsdl.extensions.SOAPHeader; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.w3c.dom.Attr; @@ -22,15 +23,12 @@ import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; +import javax.xml.namespace.QName; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; - +import java.util.*; /* * Copyright 2004,2005 The Apache Software Foundation. @@ -78,6 +76,7 @@ protected CodeGenConfiguration configuration; protected TypeMapper mapper; + /** * Sets the mapper * @@ -101,44 +100,17 @@ */ public void emitSkeleton() throws CodeGenerationException { try { - //get the binding + //get the interface WSDLDescription wom = this.configuration.getWom(); - Map interfaces = wom.getWsdlInterfaces(); - - //loop through the wsdlInterfaces to generate the interface code - //theoretically the interface should be the base for the interfaces - Collection interfaceCollection =interfaces.values(); - for (Iterator iterator = interfaceCollection.iterator(); iterator.hasNext();) { - WSDLInterface axisInteface = (WSDLInterface) iterator.next(); - //write skeleton - writeSkeleton(axisInteface); - //write interface implementations - writeServiceXml(axisInteface); - } - - Map bindings = wom.getBindings(); - if (bindings==null || bindings.isEmpty()){ - //We may need a flag in the config to force code generation with the binding - //if so the following check needs to be uncommented. For now log the situation - //throw new CodeGenerationException("Binding needs to be present!"); - log.info("No binding is present.The following items will not be generated"); - log.info("1. Message Receiver"); - + int codegenStyle = this.configuration.getCodeGenerationStyle(); + if (codegenStyle== XSLTConstants.CodegenStyle.INTERFACE){ + emitSkeletonInterface(wom); + }else if (codegenStyle== XSLTConstants.CodegenStyle.BINDING){ + emitSkeletonBinding(wom); + }else if (codegenStyle==XSLTConstants.CodegenStyle.AUTOMATIC){ + emitSkeletonAutomatic(wom); }else{ - WSDLBinding axisBinding; - Collection bindingCollection = bindings.values(); - for (Iterator iterator = bindingCollection.iterator(); iterator.hasNext();) { - axisBinding = (WSDLBinding)iterator.next(); - - //write the local test classes - //writeLocalTestClasses(axisBinding); - //write a dummy implementation call for the tests to run. - //writeTestSkeletonImpl(axisBinding); - //write a testservice.xml that will load the dummy skeleton impl for testing - //writeTestServiceXML(axisBinding); - //write a MessageReceiver for this particular service. - writeMessageReceiver(axisBinding); - } + throw new Exception("Unknown code generation style!!! " + codegenStyle); } // Call the emit stub method to generate the client side too @@ -155,58 +127,177 @@ */ public void emitStub() throws CodeGenerationException { try { - //get the binding + //get the interface WSDLDescription wom = this.configuration.getWom(); - Map interfaces = wom.getWsdlInterfaces(); - - //loop through the wsdlInterfaces to generate the interface code - //theoretically the interface should be the base for the interfaces - Collection interfaceCollection =interfaces.values(); - for (Iterator iterator = interfaceCollection.iterator(); iterator.hasNext();) { - //Write the interfaces - WSDLInterface axisInterface = (WSDLInterface) iterator.next(); - writeInterface(axisInterface); - //write the call back handlers - writeCallBackHandlers(axisInterface); - } - - Map bindings = wom.getBindings(); - if (bindings==null || bindings.isEmpty()){ - //We may need a flag in the config to force code generation with the binding - //if so the following check needs to be uncommented. For now log the situation - //throw new CodeGenerationException("Binding needs to be present!"); - log.info("No binding is present.The following items will not be generated"); - log.info("1. Stub"); - log.info("2. CallbackHandler"); - log.info("3. Test Classes"); - log.info("3. Databinding Supporters"); + int codegenStyle = this.configuration.getCodeGenerationStyle(); + if (codegenStyle== XSLTConstants.CodegenStyle.INTERFACE){ + emitStubInterface(wom); + }else if (codegenStyle== XSLTConstants.CodegenStyle.BINDING){ + emitStubBinding(wom); + }else if (codegenStyle==XSLTConstants.CodegenStyle.AUTOMATIC){ + emitStubAutomatic(wom); }else{ - WSDLBinding axisBinding ; - WSDLService axisService = null; - Collection bindingCollection = bindings.values(); - for (Iterator iterator = bindingCollection.iterator(); iterator.hasNext();) { - axisBinding = (WSDLBinding)iterator.next(); - //Check the service - axisService = checkService(wom, axisService); - - //write interface implementations - writeInterfaceImplementation(axisBinding, axisService); - - //write the test classes - writeTestClasses(axisBinding); - //write the databinding supporters - writeDatabindingSupporters(axisBinding); - //write a dummy implementation call for the tests to run. - //writeTestSkeletonImpl(axisBinding); - //write a testservice.xml that will load the dummy skeleton impl for testing - //writeTestServiceXML(axisBinding); - } + throw new Exception("Unknown code generation style!!! " + codegenStyle); } + } catch (Exception e) { throw new CodeGenerationException(e); } } + /** + * Emit the skeleton with inteface only + * @param wom + */ + private void emitSkeletonInterface(WSDLDescription wom) throws Exception{ + + Map interfaces = wom.getWsdlInterfaces(); + + //loop through the wsdlInterfaces to generate the interface code + //theoretically the interface should be the base for the interfaces + Collection interfaceCollection =interfaces.values(); + for (Iterator iterator = interfaceCollection.iterator(); iterator.hasNext();) { + WSDLInterface axisInteface = (WSDLInterface) iterator.next(); + //write skeleton + writeSkeleton(axisInteface); + //write interface implementations + writeServiceXml(axisInteface); + } + + + log.info("Interface mode is selected.The following items will not be generated"); + log.info("1. Message Receiver"); + } + + /** + * Emit the skelton with binding + * @param wom + */ + private void emitSkeletonBinding(WSDLDescription wom) throws Exception{ + Map bindings = wom.getBindings(); + if (bindings==null || bindings.isEmpty()){ + //asking for a code generation with a binding when a binding is + //not present should be the cause of an Exception ! + throw new Exception("Cannot find a binding!!"); + + }else{ + WSDLBinding axisBinding; + Collection bindingCollection = bindings.values(); + for (Iterator iterator = bindingCollection.iterator(); iterator.hasNext();) { + axisBinding = (WSDLBinding)iterator.next(); + + //write skeleton + writeSkeleton(axisBinding.getBoundInterface()); + //write service xml + writeServiceXml(axisBinding.getBoundInterface()); + //write a MessageReceiver for this particular service. + writeMessageReceiver(axisBinding); + } + } + } + + /** + * Skeleton emission - Automatic mode + * @param wom + */ + private void emitSkeletonAutomatic(WSDLDescription wom) throws Exception{ + Map bindings = wom.getBindings(); + if (bindings==null || bindings.isEmpty()){ + //No binding is not present.use the interface mode + emitSkeletonInterface(wom); + }else{ + //use the binding mode + emitSkeletonBinding(wom); + } + + } + /** + * Emits the stub code with the interfaces only + * @param wom + * @throws Exception + */ + private void emitStubInterface(WSDLDescription wom) throws Exception{ + Map interfaces = wom.getWsdlInterfaces(); + //loop through the wsdlInterfaces to generate the interface code + Collection interfaceCollection =interfaces.values(); + for (Iterator iterator = interfaceCollection.iterator(); iterator.hasNext();) { + //Write the interfaces + WSDLInterface axisInterface = (WSDLInterface) iterator.next(); + writeInterface(axisInterface); + //write the call back handlers + writeCallBackHandlers(axisInterface); + } + + //log the message stating that the binding dependent parts are not generated + log.info("Interface code generation was selected! The following items are not generated"); + log.info("1. Stub"); + log.info("2. CallbackHandler"); + log.info("3. Test Classes"); + log.info("4. Databinding Supporters"); + } + + /** + * Emit the stubcode with bindings + * @param wom + * @throws Exception + */ + private void emitStubBinding(WSDLDescription wom) throws Exception{ + Map bindings = wom.getBindings(); + if (bindings==null || bindings.isEmpty()){ + //asking for a code generation with a binding when a binding is + //not present should be the cause of an Exception ! + throw new Exception("Cannot find a binding!!"); + }else{ + WSDLBinding axisBinding ; + WSDLService axisService = null; + Collection bindingCollection = bindings.values(); + for (Iterator iterator = bindingCollection.iterator(); iterator.hasNext();) { + + axisBinding = (WSDLBinding)iterator.next(); + //Check the service + axisService = checkService(wom, axisService); + //write the inteface + //feed the binding information also + writeInterface(axisBinding.getBoundInterface()); + //write the call back handlers + writeCallBackHandlers(axisBinding.getBoundInterface()); + //write interface implementations + writeInterfaceImplementation(axisBinding, axisService); + //write the test classes + writeTestClasses(axisBinding); + //write the databinding supporters + writeDatabindingSupporters(axisBinding); + //write a dummy implementation call for the tests to run. + //writeTestSkeletonImpl(axisBinding); + //write a testservice.xml that will load the dummy skeleton impl for testing + //writeTestServiceXML(axisBinding); + } + } + } + + /** + * emit the stubcode with the automatic mode. Look for the binding and if present + * emit the skeleton with the binding. Else go for the interface + * @param wom + */ + private void emitStubAutomatic(WSDLDescription wom) throws Exception{ + Map bindings = wom.getBindings(); + if (bindings==null || bindings.isEmpty()){ + //No binding is not present.use the interface mode + emitStubInterface(wom); + }else{ + //use the binding mode + emitStubBinding(wom); + } + } + + /** + * Check the service for compatibility. Am incompatible service consists of + * multiple services ATM + * @param wom + * @param axisService + * @return the WSDLService object + */ private WSDLService checkService(WSDLDescription wom, WSDLService axisService) { Map services = wom.getServices(); if (!services.isEmpty()) { @@ -221,19 +312,10 @@ } - protected void writeTestSkeletonImpl(WSDLBinding binding) throws Exception { - if (configuration.isWriteTestCase()) { - Document classModel = createDocumentForTestSkeletonImpl(binding); - TestSkeletonImplWriter callbackWriter = - new TestSkeletonImplWriter( - this.configuration.getOutputLocation(), - this.configuration.getOutputLanguage()); - writeClass(classModel, callbackWriter); - } - } + /** - * + * Write the callback handlers */ protected void writeCallBackHandlers(WSDLInterface wsdlInterface) throws Exception { @@ -249,25 +331,7 @@ } - /** - * Write the local test classes. these test classes are different from the - * usual test classes because it is meant to work with the generated test - * skeleton class. - * - * @param binding - * @throws Exception - */ - protected void writeLocalTestClasses(WSDLBinding binding) throws Exception { - if (configuration.isWriteTestCase()) { - Document classModel = createDOMDocumentForLocalTestCase(binding); - LocalTestClassWriter callbackWriter = - new LocalTestClassWriter( - this.configuration.getOutputLocation(), - this.configuration.getOutputLanguage()); - writeClass(classModel, callbackWriter); - } - } /** * @@ -286,7 +350,6 @@ /** * Writes the interfaces - * * @param axisInterface * @throws Exception */ @@ -298,6 +361,7 @@ writeClass(interfaceModel, interfaceWriter); } + /** * Writes the skeleton * @@ -340,17 +404,6 @@ } - protected void writeTestServiceXML(WSDLInterface axisInterface) throws Exception { - if (this.configuration.isWriteTestCase()) { - //Note - One can generate the service xml using the interface XML - Document skeletonModel = createDOMDocumentForServiceXML( - axisInterface, true); - TestServiceXMLWriter testServiceXmlWriter = new TestServiceXMLWriter( - this.configuration.getOutputLocation(), - this.configuration.getOutputLanguage()); - writeClass(skeletonModel, testServiceXmlWriter); - } - } /** * Writes the skeleton @@ -400,26 +453,7 @@ } } - /** - * todo Not used yet - * - * @param wsdlType - * @throws Exception - */ - protected void writeBeans(WSDLTypes wsdlType) throws Exception { - Collection collection = wsdlType.getExtensibilityElements(); - if (collection != null) { - for (Iterator iterator = collection.iterator(); - iterator.hasNext();) { - Document interfaceModel = createDOMDocumentForBean(); - BeanWriter beanWriter = - new BeanWriter(this.configuration.getOutputLocation(), - this.configuration.getOutputLanguage()); - writeClass(interfaceModel, beanWriter); - } - } - } /** * A resusable method for the implementation of interface and implementation writing @@ -495,12 +529,11 @@ } /** - * Generating the callbacks - * + * Generating the model for the callbacks * @param boundInterface */ protected Document createDOMDocumentForCallbackHandler( - WSDLInterface boundInterface) { + WSDLInterface boundInterface) { Document doc = getEmptyDocument(); Element rootElement = doc.createElement("callback"); addAttribute(doc, @@ -525,6 +558,8 @@ return doc; } + + /** * Finds the input element for the xml document * @@ -541,6 +576,72 @@ return inputElt; } + /** + * Finds the input element for the xml document + * + * @param doc + * @param operation + */ + protected Element getInputElement(Document doc, + WSDLBindingOperation operation) { + Element inputElt = doc.createElement("input"); + Element param = getInputParamElement(doc, operation); + if (param!=null){ + inputElt.appendChild(param); + } + return inputElt; + } + + /** + * + * @param doc + * @param operation + * @return element + */ + private Element getInputParamElement(Document doc, + WSDLBindingOperation operation) { + + Element param = doc.createElement("param"); + WSDLBindingMessageReference inputMessage = operation.getInput(); + + if (inputMessage!=null){ + List extensibilityElements = inputMessage.getExtensibilityElements(); + for (int i = 0; i < extensibilityElements.size(); i++) { + WSDLExtensibilityElement extElement = (WSDLExtensibilityElement)extensibilityElements.get(i); + //SOAPBody extensionsBody; + SOAPHeader extensionsHeader; + + if (ExtensionConstants.SOAP_BODY.equals(extElement.getType())){ +// extensionsBody = (SOAPBody)extElement; +// addAttribute(doc, +// "name", +// this.mapper.getParameterName(extensionsBody.), +// param); +// String typeMapping = this.mapper.getTypeMapping( +// inputMessage.getElement()); +// String typeMappingStr = typeMapping == null ? "" : typeMapping; +// addAttribute(doc, "type", typeMappingStr, param); + }else if (ExtensionConstants.SOAP_HEADER.equals(extElement.getType())){ + extensionsHeader = (SOAPHeader)extElement; + addAttribute(doc, + "name", + this.mapper.getParameterName(extensionsHeader.getMessage()), + param); + QName messageQName = extensionsHeader.getMessage(); + + String typeMapping = this.mapper.getTypeMapping( + messageQName); + String typeMappingStr = typeMapping == null ? "" : typeMapping; + addAttribute(doc, "type", typeMappingStr, param); + } + } + + + }else{ + param = null; + } + return param; + } private Element getInputParamElement(Document doc, WSDLOperation operation) { //todo this should go in a loop @@ -578,6 +679,22 @@ return outputElt; } + /** + * Finds the output element for the output element + * + * @param doc + * @param operation + */ + protected Element getOutputElement(Document doc, + WSDLBindingOperation operation) { + Element outputElt = doc.createElement("output"); + Element param = getOutputParamElement(doc, operation); + if (param!=null){ + outputElt.appendChild(param); + } + + return outputElt; + } private Element getOutputParamElement(Document doc, WSDLOperation operation) { Element param = doc.createElement("param"); @@ -602,14 +719,31 @@ return param; } - /** - * Todo Finish this - * - */ - protected Document createDOMDocumentForBean() { - return null; + private Element getOutputParamElement(Document doc, + WSDLBindingOperation operation) { + Element param = doc.createElement("param"); +// MessageReference outputMessage = operation.getOutputMessage(); +// String typeMappingStr; +// String parameterName; +// +// if (outputMessage!=null){ +// parameterName = this.mapper.getParameterName( +// outputMessage.getElement()) ; +// String typeMapping = this.mapper.getTypeMapping( +// operation.getOutputMessage().getElement()); +// typeMappingStr = typeMapping == null ? "" : typeMapping; +// +// }else{ +// parameterName = "" ; +// typeMappingStr = ""; +// } +// addAttribute(doc,"name",parameterName,param); +// addAttribute(doc,"type", typeMappingStr, param); + + return param; } + protected Document createDOMDocumentForServiceXML(WSDLInterface boundInterface, boolean forTesting) { @@ -696,8 +830,7 @@ } /** - * Creates the DOM tree for the interface creation - * + * Creates the DOM tree for the interface creation. Uses the interface * @param wsdlInterface */ protected Document createDOMDocumentForInterface(WSDLInterface wsdlInterface) { @@ -724,6 +857,12 @@ } + + /** + * Create the model for the skeleton + * @param boundInterface + * @return documentModel for the skeleton + */ protected Document createDOMDocumentForSkeleton(WSDLInterface boundInterface) { Document doc = getEmptyDocument(); @@ -759,12 +898,20 @@ rootElement); } + /** + * Loads operations based on the interface + * @param boundInterface + * @param doc + * @param rootElement + */ private void loadOperations(WSDLInterface boundInterface, Document doc, Element rootElement) { loadOperations(boundInterface, doc, rootElement, null); } + + private void loadOperations(WSDLInterface boundInterface, Document doc, Element rootElement, @@ -773,8 +920,8 @@ String portTypeName = boundInterface.getName().getLocalPart(); - Element methodElement = null; - WSDLOperation operation = null; + Element methodElement ; + WSDLOperation operation ; for (Iterator iterator = col.iterator(); iterator.hasNext();) { operation = (WSDLOperation) iterator.next(); @@ -794,6 +941,8 @@ WSDLBindingOperation bindingOperation = binding.getBindingOperation(operation.getName()); addSOAPAction(doc, methodElement, bindingOperation); + + //todo chek for header parameters here and add them as parameters as well } addAttribute(doc, "mep", @@ -860,49 +1009,7 @@ } - protected Document createDOMDocumentForLocalTestCase( - WSDLBinding binding) { - WSDLInterface boundInterface = binding.getBoundInterface(); - Document doc = getEmptyDocument(); - Element rootElement = doc.createElement("class"); - String serviceXMLPath = configuration.getPackageName().replace('.', - '/') + - TEST_PACKAGE_NAME_SUFFIX.replace('.', '/') + - "/testservice.xml"; - addAttribute(doc, - "package", - configuration.getPackageName() + TEST_PACKAGE_NAME_SUFFIX, - rootElement); - addAttribute(doc, "servicexmlpath", serviceXMLPath, rootElement); - addAttribute(doc, - "implpackage", - configuration.getPackageName(), - rootElement); - String localPart = boundInterface.getName().getLocalPart(); - addAttribute(doc, "name", localPart + LOCAL_TEST_SUFFIX, rootElement); - addAttribute(doc, - "namespace", - boundInterface.getName().getNamespaceURI(), - rootElement); - addAttribute(doc, "interfaceName", localPart, rootElement); - addAttribute(doc, - "callbackname", - localPart + CALL_BACK_HANDLER_SUFFIX, - rootElement); - addAttribute(doc, "stubname", localPart + STUB_SUFFIX, rootElement); - addAttribute(doc, - "address", - "http://localhost:" + Constants.TEST_PORT + "/services/" + - boundInterface.getName().getLocalPart() + - TEST_SERVICE_CLASS_NAME_SUFFIX, - rootElement); - fillSyncAttributes(doc, rootElement); - loadOperations(boundInterface, doc, rootElement); - doc.appendChild(rootElement); - return doc; - - } protected Document createDOMDocumentforSerialization( WSDLOperation operation,String portTypeName) { Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBinding.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBinding.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBinding.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBinding.java Tue Aug 30 03:59:16 2005 @@ -25,7 +25,7 @@ /** * Method getBoundInterface * - * @return + * @return WSDLInterface */ public WSDLInterface getBoundInterface(); @@ -39,7 +39,7 @@ /** * Method getName * - * @return + * @return QName */ public QName getName(); @@ -53,14 +53,14 @@ /** * Method getTargetNameSpace * - * @return + * @return String */ public String getTargetNameSpace(); /** * Method getBindingFaults * - * @return + * @return String */ public HashMap getBindingFaults(); @@ -74,7 +74,7 @@ /** * Method getBindingOperations * - * @return + * @return Hashmap */ public HashMap getBindingOperations(); @@ -96,7 +96,7 @@ * Method getBindingOperation * * @param qName - * @return + * @return Hashmap */ public WSDLBindingOperation getBindingOperation(QName qName); @@ -111,7 +111,7 @@ * Method getBindingFault * * @param ref - * @return + * @return Hashmap */ public WSDLBindingFault getBindingFault(QName ref); } Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBindingOperation.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBindingOperation.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBindingOperation.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/WSDLBindingOperation.java Tue Aug 30 03:59:16 2005 @@ -22,10 +22,11 @@ * @author chathura@opensource.lk */ public interface WSDLBindingOperation extends ExtensibleComponent { + /** * Method getInput * - * @return + * @return messgae reference */ public WSDLBindingMessageReference getInput(); @@ -39,7 +40,7 @@ /** * Method getOperation * - * @return + * @return the wsl operation */ public WSDLOperation getOperation(); @@ -53,7 +54,7 @@ /** * Method getOutput * - * @return + * @return wsdl binding message reference */ public WSDLBindingMessageReference getOutput(); @@ -67,7 +68,7 @@ /** * Method getName * - * @return + * @return QName of this element */ public QName getName(); Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/ExtensionConstants.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/ExtensionConstants.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/ExtensionConstants.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/ExtensionConstants.java Tue Aug 30 03:59:16 2005 @@ -37,6 +37,9 @@ public static final QName SOAP_BODY = new QName( "http://schemas.xmlsoap.org/wsdl/soap/", "body"); + + public static final QName SOAP_HEADER = new QName( + "http://schemas.xmlsoap.org/wsdl/soap/", "header"); public static final QName SOAP_BINDING = new QName( "http://schemas.xmlsoap.org/wsdl/soap/", "binding"); Added: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/SOAPHeader.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/SOAPHeader.java?rev=264756&view=auto ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/SOAPHeader.java (added) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/SOAPHeader.java Tue Aug 30 03:59:16 2005 @@ -0,0 +1,29 @@ +/* + * Copyright 2001-2004 The Apache Software Foundation. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wsdl.extensions; + +import javax.xml.namespace.QName; + +public interface SOAPHeader extends SOAPBody { + + QName getMessage(); + + void setMessage(QName message); + + String part(); + + void setPart(String part); +} Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/ExtensionFactoryImpl.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/ExtensionFactoryImpl.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/ExtensionFactoryImpl.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/ExtensionFactoryImpl.java Tue Aug 30 03:59:16 2005 @@ -35,17 +35,18 @@ * @return the Specific implementation for the particular QName given. */ public WSDLExtensibilityElement getExtensionElement(QName qName) { - if (qName.equals(SOAP_ADDRESS)) + if (SOAP_ADDRESS.equals(qName)) return new SOAPAddressImpl(); - if (qName.equals(SCHEMA)) + if (SCHEMA.equals(qName)) return new SchemaImpl(); - if (qName.equals(SOAP_OPERATION)) + if (SOAP_OPERATION.equals(qName)) return new SOAPOperationImpl(); if (SOAP_BODY.equals(qName)) return new SOAPBodyImpl(); if (SOAP_BINDING.equals(qName)) return new SOAPBindingImpl(); - + if (SOAP_HEADER.equals(qName)) + return new SOAPHeadeImpl(); return new DefaultExtensibilityElementImpl(); } Added: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/SOAPHeadeImpl.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/SOAPHeadeImpl.java?rev=264756&view=auto ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/SOAPHeadeImpl.java (added) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/extensions/impl/SOAPHeadeImpl.java Tue Aug 30 03:59:16 2005 @@ -0,0 +1,39 @@ +package org.apache.wsdl.extensions.impl; + +import org.apache.wsdl.extensions.SOAPHeader; + +import javax.xml.namespace.QName; + +/** + * Created by IntelliJ IDEA. + * User: Ajith + * Date: Aug 30, 2005 + * Time: 12:19:02 PM + * To change this template use File | Settings | File Templates. + */ +public class SOAPHeadeImpl extends SOAPBodyImpl implements SOAPHeader { + + private QName messageName = null; + private String part = null; + + public SOAPHeadeImpl() { + this.type = SOAP_HEADER; + } + + public QName getMessage() { + return messageName; + } + + public void setMessage(QName message) { + this.messageName = message; + } + + public String part() { + return part; + } + + public void setPart(String part) { + this.part = part; + } + +} Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingImpl.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingImpl.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingImpl.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingImpl.java Tue Aug 30 03:59:16 2005 @@ -51,7 +51,7 @@ /** * Method getBoundInterface * - * @return + * @return WSDLInterface */ public WSDLInterface getBoundInterface() { return boundInterface; @@ -69,7 +69,7 @@ /** * Method getName * - * @return + * @return QName */ public QName getName() { return name; @@ -87,7 +87,7 @@ /** * Method getTargetNameSpace * - * @return + * @return String */ public String getTargetNameSpace() { return this.name.getNamespaceURI(); @@ -96,7 +96,7 @@ /** * Method getBindingFaults * - * @return + * @return Hashmap */ public HashMap getBindingFaults() { return bindingFaults; @@ -114,7 +114,7 @@ /** * Method getBindingOperations * - * @return + * @return Hashmap */ public HashMap getBindingOperations() { return bindingOperations; @@ -145,7 +145,7 @@ * Method getBindingOperation * * @param qName - * @return + * @return WSDLBindingOperation */ public WSDLBindingOperation getBindingOperation(QName qName) { return (WSDLBindingOperation) this.bindingOperations.get(qName); @@ -166,7 +166,7 @@ * Method getBindingFault * * @param ref - * @return + * @return WSDLBindingFault */ public WSDLBindingFault getBindingFault(QName ref) { return (WSDLBindingFault) this.bindingFaults.get(ref); Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingOperationImpl.java URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingOperationImpl.java?rev=264756&r1=264755&r2=264756&view=diff ============================================================================== --- webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingOperationImpl.java (original) +++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/wsdl/impl/WSDLBindingOperationImpl.java Tue Aug 30 03:59:16 2005 @@ -29,6 +29,8 @@ */ public class WSDLBindingOperationImpl extends ExtensibleComponentImpl implements WSDLBindingOperation { + + /** * Field name */ @@ -63,12 +65,14 @@ /** * Method getInput * - * @return + * @return message reference */ public WSDLBindingMessageReference getInput() { return input; } + + /** * Method setInput * @@ -81,7 +85,7 @@ /** * Method getOperation * - * @return + * @return operation */ public WSDLOperation getOperation() { return operation; @@ -99,7 +103,7 @@ /** * Method getOutput * - * @return + * @return message reference */ public WSDLBindingMessageReference getOutput() { return output; @@ -117,7 +121,7 @@ /** * Method getName * - * @return + * @return QName */ public QName getName() { return name;