You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2006/11/27 10:42:54 UTC
svn commit: r479558 -
/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java
Author: kelvingoodson
Date: Mon Nov 27 01:42:53 2006
New Revision: 479558
URL: http://svn.apache.org/viewvc?view=rev&rev=479558
Log:
permit import of commonj.sdo models into user xsds (for validation purposes) without causing override of SDO core runtime model
Modified:
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java
Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java?view=diff&rev=479558&r1=479557&r2=479558
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/SDOXSDEcoreBuilder.java Mon Nov 27 01:42:53 2006
@@ -20,12 +20,14 @@
package org.apache.tuscany.sdo.helper;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
import org.apache.tuscany.sdo.SDOExtendedMetaData;
import org.apache.tuscany.sdo.model.ModelFactory;
+import org.apache.tuscany.sdo.model.impl.ModelPackageImpl;
import org.apache.tuscany.sdo.util.SDOUtil;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EClass;
@@ -39,6 +41,7 @@
import org.eclipse.xsd.XSDComponent;
import org.eclipse.xsd.XSDConcreteComponent;
import org.eclipse.xsd.XSDFeature;
+import org.eclipse.xsd.XSDImport;
import org.eclipse.xsd.XSDNamedComponent;
import org.eclipse.xsd.XSDSimpleTypeDefinition;
import org.eclipse.xsd.XSDTypeDefinition;
@@ -55,6 +58,7 @@
*/
public class SDOXSDEcoreBuilder extends XSDEcoreBuilder
{
+
public SDOXSDEcoreBuilder(ExtendedMetaData extendedMetaData)
{
super(extendedMetaData);
@@ -77,6 +81,8 @@
getBuiltInEClassifier(
xsdTypeDefinition.getURI(),
xsdTypeDefinition.getName());
+ } else if (ModelPackageImpl.eNS_URI.equals(xsdTypeDefinition.getTargetNamespace())) {
+ eClassifier = ModelPackageImpl.eINSTANCE.getEClassifier(xsdTypeDefinition.getName());
} else {
eClassifier = super.getEClassifier(xsdTypeDefinition);
}
@@ -455,4 +461,26 @@
return qualifiedPackageName.toString().toLowerCase(); //make sure it's lower case .. we can't work with Axis if not.
}
+
+ public void generate(XSDSchema xsdSchema) {
+ // permits schemas to be valid by having an import of sdoModel.xsd without
+ // that import causing masking of the singleton instance of the generated model
+ if(!ModelPackageImpl.eNS_URI.equals(xsdSchema.getTargetNamespace())) {
+ List contents = xsdSchema.getContents();
+ List commonjImports = new ArrayList();
+ for (Iterator i = contents.iterator(); i.hasNext(); )
+ {
+ Object content = i.next();
+ if (content instanceof XSDImport)
+ {
+ XSDImport xsdImport = (XSDImport)content;
+ if (ModelPackageImpl.eNS_URI.equals(xsdImport.getNamespace())) {
+ commonjImports.add(xsdImport);
+ }
+ }
+ }
+ contents.removeAll(commonjImports);
+ super.generate(xsdSchema);
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org