Author: jochen
Date: Wed Aug 30 02:01:26 2006
New Revision: 438425

URL: http://svn.apache.org/viewvc?rev=438425&view=rev
Log:
The GroupHandlerSG was generating invalid class names in some cases.

Modified:
    
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/GroupHandlerSG.java
    
webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/nestedGroups.xsd
    webservices/jaxme/branches/MAVEN/status.xml

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/GroupHandlerSG.java
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/GroupHandlerSG.java?rev=438425&r1=438424&r2=438425&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/GroupHandlerSG.java
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/main/java/org/apache/ws/jaxme/generator/sg/impl/ccsg/GroupHandlerSG.java
 Wed Aug 30 02:01:26 2006
@@ -129,6 +129,27 @@
                }
        }
 
+       private boolean isValidInnerClassName(JavaSource pSource, String pName) 
{
+               boolean isInnerClass = pSource.isInnerClass();
+               final String name;
+               if (isInnerClass) {
+                       JavaInnerClass jic = (JavaInnerClass) pSource;
+                       if (!isValidInnerClassName(jic.getOuterClass(), pName)) 
{
+                               return false;
+                       }
+                       name = jic.getQName().getInnerClassName();
+               } else {
+                       name = pSource.getQName().getClassName();
+               }
+               if (name.equals(pName)) {
+                       return false;
+               }
+               if (pSource.getInnerClass(pName) != null) {
+                       return false;
+               }
+               return true;
+       }
+
        private GroupHandlerSG newGroupHandlerSG(ParticleSG pParticle) throws 
SAXException {
                JavaSource js = getJavaSource();
                String name = GroupUtil.getGroupName(pParticle.getGroupSG());
@@ -138,7 +159,7 @@
                                name += i;
                        }
                        n += "Handler";
-                       if (js.getInnerClass(n) == null) {
+                       if (isValidInnerClassName(js, n)) {
                                GroupHandlerSG result = 
newGroupHandlerSG(pParticle, n);
                                result.newGetHandlerMethod(js);
                                return result;

Modified: 
webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/nestedGroups.xsd
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/nestedGroups.xsd?rev=438425&r1=438424&r2=438425&view=diff
==============================================================================
--- 
webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/nestedGroups.xsd
 (original)
+++ 
webservices/jaxme/branches/MAVEN/projects/jm/src/test/resources/nestedGroups.xsd
 Wed Aug 30 02:01:26 2006
@@ -166,4 +166,48 @@
                        <xs:attribute name="name" type="xs:string" 
use="required"/>
                </xs:complexType>
        </xs:element>
+
+
+  <xs:complexType name="PathComponent">
+    <xs:attribute name="name" type="xs:string" use="required" />
+    <xs:attribute name="status" type="xs:int" use="optional"/>
+  </xs:complexType>
+
+  <xs:complexType name="Container">
+    <xs:sequence>
+      <xs:element name="container" type="ng:PathComponent" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="DocumentType">
+    <xs:complexContent>
+      <xs:extension base="ng:Container">
+        <xs:sequence>
+          <xs:element name="documentType" type="ng:PathComponent" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="Document">
+    <xs:complexContent>
+      <xs:extension base="ng:DocumentType">
+        <xs:sequence>
+          <xs:element name="document" type="ng:PathComponent" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="Version">
+    <xs:complexContent>
+      <xs:extension base="ng:Document">
+        <xs:sequence>
+          <xs:element name="version" type="ng:PathComponent" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:element name="Ver" type="ng:Version"/>
 </xs:schema>

Modified: webservices/jaxme/branches/MAVEN/status.xml
URL: 
http://svn.apache.org/viewvc/webservices/jaxme/branches/MAVEN/status.xml?rev=438425&r1=438424&r2=438425&view=diff
==============================================================================
--- webservices/jaxme/branches/MAVEN/status.xml (original)
+++ webservices/jaxme/branches/MAVEN/status.xml Wed Aug 30 02:01:26 2006
@@ -61,6 +61,9 @@
       <action dev="JW" type="add" context="jm">
         External schema bindings are now supported recursively.
       </action>
+      <action dev="JW" type="fix" context="jm">
+        The GroupHandlerSG was generating invalid class names in some cases.
+      </action>
     </release>
        <release version="0.5.1" date="Not yet published">
       <action dev="JW" type="enhancement" context="js">



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to