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/26 09:41:29 UTC

svn commit: r328581 - in /webservices/axis2/trunk/java/modules/codegen: other/ src/org/apache/axis2/databinding/schema/ src/org/apache/axis2/databinding/schema/template/ test/org/apache/axis2/databinding/schema/

Author: ajith
Date: Wed Oct 26 00:41:07 2005
New Revision: 328581

URL: http://svn.apache.org/viewcvs?rev=328581&view=rev
Log:
The earlier fix had a problem with anonymous complex types. Fixed that

Removed:
    webservices/axis2/trunk/java/modules/codegen/test/org/apache/axis2/databinding/schema/AbstractSchemaCompilerTester.java
Modified:
    webservices/axis2/trunk/java/modules/codegen/other/beanGenerationSchema.xsd
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/BeanWriterMetaInfoHolder.java
    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
    webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/template/BeanTemplate.xsl

Modified: webservices/axis2/trunk/java/modules/codegen/other/beanGenerationSchema.xsd
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/other/beanGenerationSchema.xsd?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/other/beanGenerationSchema.xsd (original)
+++ webservices/axis2/trunk/java/modules/codegen/other/beanGenerationSchema.xsd Wed Oct 26 00:41:07 2005
@@ -10,11 +10,13 @@
 				<xs:element name="property" type="propertyType" maxOccurs="unbounded"/>
 			</xs:sequence>
 			<xs:attribute name="name" type="xs:string" use="required"/>
+			<xs:attribute name="originalName" type="xs:string" use="required"/>
 			<xs:attribute name="package" type="xs:string" use="required"/>
 			<xs:attribute name="nsuri" type="xs:string" use="required"/>
 			<xs:attribute name="nsprefix" type="xs:string" use="required"/>
 			<xs:attribute name="type" type="xs:string" use="optional" fixed="yes"/>
 			<xs:attribute name="extension" type="xs:string" use="optional"/>
+			<xs:attribute name="anon" type="xs:string" use="optional" fixed="yes"/>
 		</xs:complexType>
 	</xs:element>
 	<xs:complexType name="propertyType">

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/BeanWriterMetaInfoHolder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/BeanWriterMetaInfoHolder.java?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/BeanWriterMetaInfoHolder.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/BeanWriterMetaInfoHolder.java Wed Oct 26 00:41:07 2005
@@ -29,6 +29,7 @@
 
 
     private boolean ordered = false;
+    private boolean anonymous = false;
     private boolean extension = false;
     private String extensionClassName = "";
     private Map elementToSchemaQNameMap = new HashMap();
@@ -37,6 +38,14 @@
     private Map qNameMaxOccursCountMap = new HashMap();
     private Map qNameMinOccursCountMap = new HashMap();
     private Map qNameOrderMap = new HashMap();
+
+    public boolean isAnonymous() {
+        return anonymous;
+    }
+
+    public void setAnonymous(boolean anonymous) {
+        this.anonymous = anonymous;
+    }
 
     public String getExtensionClassName() {
         return extensionClassName;

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=328581&r1=328580&r2=328581&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 Wed Oct 26 00:41:07 2005
@@ -107,6 +107,10 @@
             XSLTUtils.addAttribute(model,"type","yes",rootElt);
         }
 
+        if (metainf.isAnonymous()){
+             XSLTUtils.addAttribute(model,"anon","yes",rootElt);
+        }
+
         if (metainf.isExtension()){
             XSLTUtils.addAttribute(model,"extension",metainf.getExtensionClassName(),rootElt);
         }
@@ -123,7 +127,6 @@
             Element property = XSLTUtils.addChildElement(model,"property",rootElt);
             name = qNames[i];
             String xmlName = name.getLocalPart();
-            System.out.println(xmlName);
             XSLTUtils.addAttribute(model,"name",xmlName,property);
 
             String javaName = "";

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=328581&r1=328580&r2=328581&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 Wed Oct 26 00:41:07 2005
@@ -149,6 +149,7 @@
                 //intent of the user when he declares the complexType anonymously is to use it privately
                 //First copy the schema types content into the metainf holder
                 metainf = (BeanWriterMetaInfoHolder)this.processedAnonymousComplexTypesMap.get(xsElt);
+                metainf.setAnonymous(true);
             }
             String writtenClassName = writer.write(xsElt,processedTypemap,metainf);
             processedElementMap.put(xsElt.getQName(),writtenClassName);

Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/template/BeanTemplate.xsl
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/template/BeanTemplate.xsl?rev=328581&r1=328580&r2=328581&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/template/BeanTemplate.xsl (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/schema/template/BeanTemplate.xsl Wed Oct 26 00:41:07 2005
@@ -76,7 +76,7 @@
         */
         public javax.xml.stream.XMLStreamReader getPullParser(javax.xml.namespace.QName qName){
         <xsl:choose>
-            <xsl:when test="@type">
+            <xsl:when test="@type|@anon">
                   Object[] elementList = new Object[]{
         <xsl:for-each select="property[not(@attribute)]">
             <xsl:variable name="propertyName"><xsl:value-of select="@name"/></xsl:variable>
@@ -114,6 +114,7 @@
          return org.apache.axis2.databinding.utils.ADBPullParser.createPullParser(qName, elementList, attribList);
             </xsl:when>
             <xsl:otherwise>
+
             //We can safely assume an element has only one type associated with it
              <!-- This better be only one!!-->
             <xsl:for-each select="property[@ours]">
@@ -121,6 +122,7 @@
                 <xsl:variable name="varName">local<xsl:value-of select="@javaname"/></xsl:variable>
            return <xsl:value-of select="$varName"/>.getPullParser(MY_QNAME);
             </xsl:for-each>
+
             <!-- What do we do for the other case ???? -->
              <xsl:for-each select="property[not(@ours)]">
                 <xsl:variable name="propertyName"><xsl:value-of select="@name"/></xsl:variable>