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());
}