Author: bimargulies
Date: Wed Apr  8 17:11:52 2009
New Revision: 763321

URL: http://svn.apache.org/viewvc?rev=763321&view=rev
Log:
XmlSchemaGroup refactoring.

Modified:
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
    
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroup.java
    
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/GroupTest.java

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java?rev=763321&r1=763320&r2=763321&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/SchemaBuilder.java
 Wed Apr  8 17:11:52 2009
@@ -1619,9 +1619,7 @@
         } else if (el.getLocalName().equals("import")) {
             handleImport(currentSchema, el, schemaEl);
         } else if (el.getLocalName().equals("group")) {
-            XmlSchemaGroup group = handleGroup(currentSchema, el, schemaEl);
-            currentSchema.groups.collection.put(group.getQName(), group);
-            currentSchema.items.add(group);
+            handleGroup(currentSchema, el, schemaEl);
         } else if (el.getLocalName().equals("attributeGroup")) {
             handleAttributeGroup(currentSchema, el, schemaEl);
         } else if (el.getLocalName().equals("attribute")) {

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java?rev=763321&r1=763320&r2=763321&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchema.java
 Wed Apr  8 17:11:52 2009
@@ -57,7 +57,6 @@
     static final String SCHEMA_NS = XMLConstants.W3C_XML_SCHEMA_NS_URI;
     private static final String UTF_8_ENCODING = "UTF-8";
 
-    XmlSchemaObjectTable groups;
     XmlSchemaObjectTable notations;
     XmlSchemaObjectTable schemaTypes;
     XmlSchemaObjectCollection items;
@@ -76,6 +75,8 @@
     private Map<QName, XmlSchemaAttributeGroup> attributeGroups;
     private Map<QName, XmlSchemaAttribute> attributes;
     private Map<QName, XmlSchemaElement> elements;
+    private Map<QName, XmlSchemaGroup> groups;
+
     private NamespacePrefixList namespaceContext;
     // keep the encoding of the input
     private String inputEncoding;
@@ -105,7 +106,7 @@
         elements = new HashMap<QName, XmlSchemaElement>();
         attributeGroups = new HashMap<QName, XmlSchemaAttributeGroup>();
         attributes = new HashMap<QName, XmlSchemaAttribute>();
-        groups = new XmlSchemaObjectTable();
+        groups = new HashMap<QName, XmlSchemaGroup>();
         notations = new XmlSchemaObjectTable();
         schemaTypes = new XmlSchemaObjectTable();
 
@@ -283,7 +284,7 @@
             // recursive schema - just return null
             return null;
         }
-        XmlSchemaGroup group = (XmlSchemaGroup)groups.getItem(name);
+        XmlSchemaGroup group = groups.get(name);
         if (deep) {
             if (group == null) {
                 // search the imports
@@ -501,7 +502,7 @@
         this.finalDefault = finalDefault;
     }
 
-    public XmlSchemaObjectTable getGroups() {
+    public Map<QName, XmlSchemaGroup> getGroups() {
         return groups;
     }
 
@@ -809,5 +810,9 @@
         this.elements = elements;
     }
 
+    void setGroups(Map<QName, XmlSchemaGroup> groups) {
+        this.groups = groups;
+    }
+
     
 }

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroup.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroup.java?rev=763321&r1=763320&r2=763321&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroup.java
 (original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/main/java/org/apache/ws/commons/schema/XmlSchemaGroup.java
 Wed Apr  8 17:11:52 2009
@@ -39,6 +39,7 @@
     
     public XmlSchemaGroup(XmlSchema parent) {
         namedDelegate = new XmlSchemaNamedImpl(parent, true);
+        parent.items.add(this);
     }
     
 
@@ -71,7 +72,13 @@
     }
 
     public void setName(String name) {
+        if (namedDelegate.getQName() != null) {
+            
namedDelegate.getParent().getGroups().remove(namedDelegate.getQName());
+        }
         namedDelegate.setName(name);
+        if (name != null) {
+            
namedDelegate.getParent().getGroups().put(namedDelegate.getQName(), this);
+        }
     }
 
 }

Modified: 
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/GroupTest.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/GroupTest.java?rev=763321&r1=763320&r2=763321&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/GroupTest.java 
(original)
+++ 
webservices/commons/trunk/modules/XmlSchema/src/test/java/tests/GroupTest.java 
Wed Apr  8 17:11:52 2009
@@ -23,6 +23,7 @@
 import java.io.InputStream;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Set;
 
 import javax.xml.namespace.QName;
@@ -36,7 +37,6 @@
 import org.apache.ws.commons.schema.XmlSchemaGroup;
 import org.apache.ws.commons.schema.XmlSchemaGroupRef;
 import org.apache.ws.commons.schema.XmlSchemaObjectCollection;
-import org.apache.ws.commons.schema.XmlSchemaObjectTable;
 
 import org.junit.Assert;
 import org.junit.Test;
@@ -79,13 +79,13 @@
         XmlSchemaGroupRef ref = (XmlSchemaGroupRef)cType.getParticle();
         assertEquals(new QName("http://soapinterop.org/types";, "priceGroup"), 
ref.getRefName());
 
-        XmlSchemaObjectTable t = schema.getGroups();
-        assertEquals(1, t.getCount());
+        Map<QName, XmlSchemaGroup> t = schema.getGroups();
+        assertEquals(1, t.size());
 
         Set<String> s = new HashSet<String>();
         s.add("priceGroup");
-        for (Iterator i = t.getNames(); i.hasNext();) {
-            String name = ((QName)i.next()).getLocalPart();
+        for (QName qname : t.keySet()) {
+            String name = qname.getLocalPart();
             assertEquals("priceGroup", name);
             s.remove(name);
         }
@@ -94,7 +94,8 @@
         s.clear();
         s.add("org.apache.ws.commons.schema.XmlSchemaGroup");
         XmlSchemaGroup xsg = null;
-        for (Iterator i = t.getValues(); i.hasNext();) {
+        Iterator<XmlSchemaGroup> i = t.values().iterator();
+        while (i.hasNext()) {
             xsg = (XmlSchemaGroup)i.next();
             s.remove(xsg.getClass().getName());
         }


Reply via email to