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 am...@apache.org on 2007/06/26 14:14:05 UTC

svn commit: r550787 - /webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java

Author: amilas
Date: Tue Jun 26 05:14:04 2007
New Revision: 550787

URL: http://svn.apache.org/viewvc?view=rev&rev=550787
Log:
added the group reference support directly to the complex type

Modified:
    webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java

Modified: webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java?view=diff&rev=550787&r1=550786&r2=550787
==============================================================================
--- webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java (original)
+++ webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/SchemaCompiler.java Tue Jun 26 05:14:04 2007
@@ -1838,6 +1838,38 @@
             }
 
 
+        } else if (particle instanceof XmlSchemaGroupRef){
+
+            XmlSchemaGroupRef xmlSchemaGroupRef = (XmlSchemaGroupRef) particle;
+            QName groupQName = xmlSchemaGroupRef.getRefName();
+            if (groupQName != null) {
+                if (!processedTypemap.containsKey(groupQName)) {
+                    // processe the schema here
+                    XmlSchema resolvedParentSchema = resolveParentSchema(groupQName, parentSchema);
+                    XmlSchemaGroup xmlSchemaGroup = getGroup(groupQName, resolvedParentSchema);
+                    if (xmlSchemaGroup != null) {
+                        processGroup(xmlSchemaGroup, groupQName, parentSchema);
+                    } else {
+                        throw new SchemaCompilationException("Refered Group " + groupQName.getLocalPart() + " can not be found ");
+                    }
+                }
+            } else {
+                throw new SchemaCompilationException("Referenced name is null");
+            }
+            boolean isArray = xmlSchemaGroupRef.getMaxOccurs() > 1;
+
+            // add this as an array to the original class
+            metainfHolder.registerMapping(groupQName, groupQName, findClassName(groupQName, isArray));
+            if (isArray) {
+                metainfHolder.addtStatus(groupQName, SchemaConstants.ARRAY_TYPE);
+            }
+            metainfHolder.addtStatus(groupQName, SchemaConstants.PARTICLE_TYPE_ELEMENT);
+            metainfHolder.addMaxOccurs(groupQName, xmlSchemaGroupRef.getMaxOccurs());
+            metainfHolder.addMinOccurs(groupQName, xmlSchemaGroupRef.getMinOccurs());
+            metainfHolder.setHasParticleType(true);
+            metainfHolder.setOrdered(true);
+            metainfHolder.registerQNameIndex(groupQName,metainfHolder.getOrderStartPoint() + 1);
+
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org