You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by aj...@apache.org on 2005/05/06 14:10:49 UTC

svn commit: r168595 - in /webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl: databinding/ template/java/ tojava/emitter/ tojava/xslt/

Author: ajith
Date: Fri May  6 05:10:49 2005
New Revision: 168595

URL: http://svn.apache.org/viewcvs?rev=168595&view=rev
Log:
Modified the type mappers and the templates slightly

Modified:
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/TypeMappingAdapter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceImplementationTemplate.xsl
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceTemplate.xsl
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/emitter/ClientInterfaceWriter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/ClassWriter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/InterfaceWriter.java
    webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/MultiLanguageClientEmitter.java

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/JavaTypeMapper.java Fri May  6 05:10:49 2005
@@ -1,5 +1,7 @@
 package org.apache.axis.wsdl.databinding;
 
+import javax.xml.namespace.QName;
+
 
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
@@ -41,7 +43,9 @@
 public class JavaTypeMapper extends TypeMappingAdapter{
 
     public JavaTypeMapper() {
-       this.map.put("string",String.class);
+       this.map.put(new QName(XSD_SCHEMA_URL,"string"),String.class);
+       this.map.put(new QName(XSD_SCHEMA_URL,"boolean"),Boolean.class);
+
        //add the rest todo the key should be a QName
     }
 

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/TypeMappingAdapter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/TypeMappingAdapter.java?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/TypeMappingAdapter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/databinding/TypeMappingAdapter.java Fri May  6 05:10:49 2005
@@ -24,7 +24,7 @@
 * Default abstract implementation of the type mapper
 */
 public abstract class  TypeMappingAdapter implements TypeMapper{
-
+    protected static final String XSD_SCHEMA_URL = "http://www.w3.org/2001/XMLSchema";
     //hashmap that contains the type mappings
     protected  HashMap map = new HashMap();
     //counter variable to generate unique parameter ID's
@@ -37,10 +37,16 @@
      * @see TypeMapper#getTypeMapping(javax.xml.namespace.QName)
      */
     public Class getTypeMapping(QName qname) {
-        if ((qname!=null) && map.containsKey(qname.getLocalPart())){
-            return map.get(qname.getLocalPart()).getClass();
+        if ((qname!=null)){
+            Object o = map.get(qname);
+            if (o!=null){
+               return (Class)o;
+            }else{
+                return Object.class;
+            }
         }
-        return Object.class;
+
+        return null;
     }
 
     /**

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceImplementationTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceImplementationTemplate.xsl?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceImplementationTemplate.xsl (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceImplementationTemplate.xsl Fri May  6 05:10:49 2005
@@ -1,16 +1,40 @@
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
     <xsl:output method="text"/>
     <xsl:template match="/class">
-    package <xsl:value-of select="@package"/>;
+    <xsl:variable name="interfaceName"><xsl:value-of select="@interfaceName"/></xsl:variable>
+    <xsl:variable name="package"><xsl:value-of select="@package"/></xsl:variable>
+    package <xsl:value-of select="$package"/>;
 
     /*
      *  Auto generated java implementation by the Axis code generator
     */
 
-    public class <xsl:value-of select="@name"></xsl:value-of> implements <xsl:value-of select="@interfaceName"></xsl:value-of>{
+    public class <xsl:value-of select="@name"></xsl:value-of> extends org.apache.axis.clientapi.Stub implements <xsl:value-of select="$interfaceName"/>{
+
+       static{
+         org.apache.axis.description.AxisOperation __operation;
+      <xsl:for-each select="method">
+          __operation = new org.apache.axis.description.AxisOperation();
+
+          // more things are supposed to come here
+
+          _operations[<xsl:value-of select="position()"/>]=__operation;
+
+     </xsl:for-each>
+       }
      <xsl:for-each select="method">
-        public <xsl:value-of select="output/param/@type"></xsl:value-of><xsl:text> </xsl:text><xsl:value-of select="@name"></xsl:value-of>(<xsl:value-of select="input/param/@type"></xsl:value-of><xsl:text> </xsl:text><xsl:value-of select="output/param/@name"></xsl:value-of>) throws java.rmi.RemoteException{
-            return null; <!-- this needs to be changed -->
+         <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+         <xsl:variable name="inputtype"><xsl:value-of select="input/param/@type"></xsl:value-of></xsl:variable>  <!-- this needs to change-->
+         <xsl:variable name="inputparam"><xsl:value-of select="input/param/@name"></xsl:value-of></xsl:variable>  <!-- this needs to change-->
+
+        /**                                                                               
+         * Auto generated method signature
+         * @see <xsl:value-of select="$package"/>.<xsl:value-of select="$interfaceName"/>#<xsl:value-of select="@name"/>
+         *<xsl:if test="$inputtype!=''">@param <xsl:value-of select="$inputparam"></xsl:value-of></xsl:if>
+         */
+        public  <xsl:value-of select="$outputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>(<xsl:if test="$inputtype!=''"><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="$inputparam"></xsl:value-of></xsl:if>) throws java.rmi.RemoteException;
+            <xsl:if test="$outputtype!=''">return null;</xsl:if>
+            <!-- this needs to be changed -->
         }
      </xsl:for-each>
     }

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceTemplate.xsl?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceTemplate.xsl (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/template/java/InterfaceTemplate.xsl Fri May  6 05:10:49 2005
@@ -5,11 +5,20 @@
 
     /*
      *  Auto generated java interface by the Axis code generator
-    */
+     */
 
     public interface <xsl:value-of select="@name"></xsl:value-of> {
      <xsl:for-each select="method">
-        public <xsl:value-of select="output/param/@type"></xsl:value-of><xsl:text> </xsl:text><xsl:value-of select="@name"></xsl:value-of>(<xsl:value-of select="input/param/@type"></xsl:value-of><xsl:text> </xsl:text><xsl:value-of select="output/param/@name"></xsl:value-of>) throws java.rmi.RemoteException;
+         <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+
+         <xsl:variable name="inputtype"><xsl:value-of select="input/param/@type"></xsl:value-of></xsl:variable>  <!-- this needs to change-->
+         <xsl:variable name="inputparam"><xsl:value-of select="input/param/@name"></xsl:value-of></xsl:variable>  <!-- this needs to change-->
+
+        /**
+         * Auto generated method signature 
+         *<xsl:if test="$inputtype!=''">@param <xsl:value-of select="$inputparam"></xsl:value-of></xsl:if>
+         */
+        public  <xsl:value-of select="$outputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>(<xsl:if test="$inputtype!=''"><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="$inputparam"></xsl:value-of></xsl:if>) throws java.rmi.RemoteException;
      </xsl:for-each>
     }
     </xsl:template>

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/emitter/ClientInterfaceWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/emitter/ClientInterfaceWriter.java?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/emitter/ClientInterfaceWriter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/emitter/ClientInterfaceWriter.java Fri May  6 05:10:49 2005
@@ -66,11 +66,13 @@
 			//FIXME Handle the multipart as multiple arguments.
 			WSDLOperation operation = (WSDLOperation) iterator.next();
 			if (WSDLConstants.MEP_URI_IN_OUT.equals(operation.getMessageExchangePattern())) {
-				printStream.println( INDENDATION_TAB+"public "
-						+ this.typeMapper.getTypeMapping(operation.getOutputMessage().getElement()).getName()
+                Class outTypeMapping = this.typeMapper.getTypeMapping(operation.getOutputMessage().getElement());
+                Class inTypeMapping = this.typeMapper.getTypeMapping(operation.getInputMessage().getElement());
+                printStream.println( INDENDATION_TAB+"public "
+						+ outTypeMapping==null?"void" :outTypeMapping.getName()
 						+" "+ operation.getName().getLocalPart()+"("
-						+this.typeMapper.getTypeMapping(operation.getInputMessage().getElement()).getName()
-						+" "+this.typeMapper.getParameterName(operation.getInputMessage().getElement()) 
+                       	+inTypeMapping==null?"":(inTypeMapping.getName()
+						+" "+this.typeMapper.getParameterName(operation.getInputMessage().getElement()))
 						+") throws "+ REMOTE_EXCEPTION+";");
 				printStream.println();
 				

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/ClassWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/ClassWriter.java?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/ClassWriter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/ClassWriter.java Fri May  6 05:10:49 2005
@@ -33,18 +33,36 @@
     protected FileOutputStream stream = null;
     protected InputStream xsltStream = null;
     protected int language = XSLTConstants.LanguageTypes.JAVA; //default is again java
-      
+
+    /**
+     * Sets the language
+     * @param language
+     */
     public void setLanguage(int language) {
         this.language = language;
     }
 
+    /**
+     * Load the template
+     */
     public abstract void loadTemplate();
 
+    /**
+     * Creates the output file
+     * @param packageName
+     * @param fileName
+     * @throws Exception
+     */
     public void createOutFile(String packageName,String fileName) throws Exception{
         File outputFile = FileWriter.createClassFile(outputFileLocation,packageName,fileName,language);
         this.stream = new FileOutputStream(outputFile);
     }
 
+    /**
+     * Writes the output file
+     * @param documentStream
+     * @throws Exception
+     */
     public void writeOutFile(InputStream documentStream) throws Exception{
         XSLTTemplateProcessor.parse(this.stream,documentStream,this.xsltStream);
         this.stream.flush();

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/InterfaceWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/InterfaceWriter.java?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/InterfaceWriter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/InterfaceWriter.java Fri May  6 05:10:49 2005
@@ -31,6 +31,9 @@
         this.language = language;
     }
 
+    /**
+     * @see ClassWriter#loadTemplate()
+     */
      public void loadTemplate(){
         Class clazz = this.getClass();
         switch (language){

Modified: webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/MultiLanguageClientEmitter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/MultiLanguageClientEmitter.java?rev=168595&r1=168594&r2=168595&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/MultiLanguageClientEmitter.java (original)
+++ webservices/axis/trunk/java/modules/wsdl/src/org/apache/axis/wsdl/tojava/xslt/MultiLanguageClientEmitter.java Fri May  6 05:10:49 2005
@@ -169,7 +169,8 @@
         paramNameAttr.setValue(this.mapper.getParameterName(operation.getInputMessage().getElement()));
         param.setAttributeNode(paramNameAttr);
         Attr paramTypeAttr = doc.createAttribute("type");
-        paramTypeAttr.setValue(this.mapper.getTypeMapping(operation.getInputMessage().getElement()).getName());
+        Class typeMapping = this.mapper.getTypeMapping(operation.getInputMessage().getElement());
+        paramTypeAttr.setValue(typeMapping==null?"":typeMapping.getName());
         param.setAttributeNode(paramTypeAttr);
 
         inputElt.appendChild(param);
@@ -190,7 +191,8 @@
         paramNameAttr.setValue(this.mapper.getParameterName(operation.getOutputMessage().getElement()));
         param.setAttributeNode(paramNameAttr);
         Attr paramTypeAttr = doc.createAttribute("type");
-        paramTypeAttr.setValue(this.mapper.getTypeMapping(operation.getOutputMessage().getElement()).getName());
+        Class typeMapping = this.mapper.getTypeMapping(operation.getOutputMessage().getElement());
+        paramTypeAttr.setValue(typeMapping==null?"":typeMapping.getName());
         param.setAttributeNode(paramTypeAttr);
 
         outputElt.appendChild(param);