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/10/15 05:54:33 UTC

svn commit: r321283 - in /webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema: JavaBeanWriter.java SchemaCompiler.java

Author: ajith
Date: Fri Oct 14 20:54:22 2005
New Revision: 321283

URL: http://svn.apache.org/viewcvs?rev=321283&view=rev
Log:
Modified the bean writer to fix the name repeating

Modified:
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java?rev=321283&r1=321282&r2=321283&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/JavaBeanWriter.java Fri Oct 14 20:54:22 2005
@@ -14,6 +14,8 @@
 import javax.xml.transform.stream.StreamSource;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
 import java.io.*;
 
 /*
@@ -38,6 +40,10 @@
     private boolean templateLoaded = false;
     private Templates templateCache;
 
+    private List namesList;
+    private static int count = 0;
+
+
 
     private File rootDir;
 
@@ -50,6 +56,7 @@
             this.rootDir = rootDir;
         }
 
+        namesList = new ArrayList();
     }
 
     /**
@@ -77,7 +84,9 @@
 
     private String process(QName qName, BeanWriterMetaInfoHolder metainf, Map typeMap, boolean isElement) throws Exception {
         String packageName = URLProcessor.getNameSpaceFromURL(qName.getNamespaceURI());
-        String className = qName.getLocalPart();
+        String className = getNonConflictingName(this.namesList,qName.getLocalPart());
+
+        ArrayList propertyNames = new ArrayList();
 
         if (!templateLoaded){
             loadTemplate();
@@ -113,6 +122,7 @@
             }else{
                 javaName = JavaUtils.xmlNameToJava(xmlName,false);
             }
+            javaName = getNonConflictingName(propertyNames,javaName);
             XSLTUtils.addAttribute(model,"name",xmlName,property);
             XSLTUtils.addAttribute(model,"javaname",javaName,property);
             String javaClassNameForElement = metainf.getJavaClassNameForElement(name);
@@ -124,7 +134,7 @@
             if (typeMap.containsKey(metainf.getSchemaQNameForElement(name))){
                 XSLTUtils.addAttribute(model,"ours","yes",property); //todo introduce a better name for this
             }
-             XSLTUtils.addAttribute(model,"shorttypename",shortTypeName,property);
+            XSLTUtils.addAttribute(model,"shorttypename",shortTypeName,property);
         }
 
         //create the file
@@ -137,6 +147,22 @@
 
     /**
      *
+     * @param listOfNames
+     * @param nameBase
+     * @return
+     */
+    private String getNonConflictingName(List listOfNames,String nameBase){
+        String nameToReturn = nameBase;
+        while (listOfNames.contains(nameToReturn)){
+            nameToReturn = nameToReturn + count++;
+        }
+
+        listOfNames.add(nameToReturn);
+        return nameToReturn;
+    }
+
+    /**
+     *
      * @param element
      * @param typeMap
      * @param metainf
@@ -148,7 +174,7 @@
         try {
             //determine the package for this type.
             QName qName = element.getQName();
-             return process(qName, metainf, typeMap, true);
+            return process(qName, metainf, typeMap, true);
         } catch (Exception e) {
             throw new SchemaCompilationException(e);
         }

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java?rev=321283&r1=321282&r2=321283&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/SchemaCompiler.java Fri Oct 14 20:54:22 2005
@@ -120,9 +120,6 @@
         XmlSchemaType schemaType = schemaElement.getSchemaType();
 
         if (schemaType!=null){
-            //at this time it is not wise to directly write the class for the element
-            //so we push the complete element to an arraylist and let the process
-            //pass through
             BeanWriterMetaInfoHolder metainf = new BeanWriterMetaInfoHolder();
             QName qName = schemaType.getQName();
             //find the class name
@@ -150,8 +147,6 @@
         if (processedElementList.contains(xsElt.getQName())){
             return;
         }
-        System.out.println("xsElt = " + xsElt);
-        System.out.println("xsElt.getQName() = " + xsElt.getQName());
 
         XmlSchemaType schemaType = xsElt.getSchemaType();