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 2007/07/20 23:02:37 UTC
svn commit: r558140 - in /incubator/tuscany/java/sdo/tools/src:
main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java
test/java/org/apache/tuscany/sdo/test/AllTests.java
test/java/org/apache/tuscany/sdo/test/GeneratedPackagesTestCase.java
Author: kelvingoodson
Date: Fri Jul 20 14:02:35 2007
New Revision: 558140
URL: http://svn.apache.org/viewvc?view=rev&rev=558140
Log:
fix for TUSCANY-1428
Added:
incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/GeneratedPackagesTestCase.java
Modified:
incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java
incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/AllTests.java
Modified: incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java?view=diff&rev=558140&r1=558139&r2=558140
==============================================================================
--- incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java (original)
+++ incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/XSD2JavaGenerator.java Fri Jul 20 14:02:35 2007
@@ -34,6 +34,7 @@
import org.apache.tuscany.sdo.helper.XSDHelperImpl;
import org.apache.tuscany.sdo.util.DataObjectUtil;
import org.eclipse.emf.codegen.ecore.genmodel.GenClass;
+import org.eclipse.emf.codegen.ecore.genmodel.GenFeature;
import org.eclipse.emf.codegen.ecore.genmodel.GenModel;
import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
import org.eclipse.emf.common.util.URI;
@@ -167,7 +168,6 @@
{
GenModel genModel = null;
- DataObjectUtil.initRuntime();
HelperContext hc = new HelperContextImpl(extendedMetaData, false);
XSDHelper xsdHelper = hc.getXSDHelper();
((XSDHelperImpl)xsdHelper).setRedefineBuiltIn(regenerateBuiltIn);
@@ -384,36 +384,34 @@
for (Iterator iterClass = genClasses.iterator(); iterClass.hasNext();)
{
GenClass genClass = (GenClass)iterClass.next();
- if( !("DocumentRoot".equals(genClass.getInterfaceName())))
- {
String name = extendedMetaData.getName(genClass.getEcoreClass());
String className = genPackage.getInterfacePackageName() + "." + genClass.getInterfaceName();
classes.add( new PackageClassInfo( name, className, false, null ) );
- EClass documentRoot = extendedMetaData.getDocumentRoot(ePackage);
- if( documentRoot != null )
+ List features = genClass.getGenFeatures();
+ for (Iterator iterFeatures = features.iterator(); iterFeatures.hasNext();)
{
- List rootElements = extendedMetaData.getElements(documentRoot);
- for (Iterator iterRoot = rootElements.iterator(); iterRoot.hasNext();)
- {
- EStructuralFeature element = (EStructuralFeature)iterRoot.next();
+ GenFeature feature = (GenFeature)iterFeatures.next();
+ EStructuralFeature element = feature.getEcoreFeature();
EClassifier elementType = element.getEType();
if( elementType instanceof EClass )
{
// complex type
EClass eClass = (EClass)elementType;
GenClass genEClass = (GenClass)eclassGenClassMap.get(elementType);
+ if( genEClass != null )
+ {
name = extendedMetaData.getName(element);
String interfaceName = genEClass.getGenPackage().getInterfacePackageName()
+ '.' + genEClass.getInterfaceName();
boolean anonymous = extendedMetaData.isAnonymous(eClass);
- // Build list of property class names
+ // Build list of property names
List propertyClassNames = new ArrayList();
List properties = eClass.getEStructuralFeatures();
for (Iterator iterProperties = properties.iterator(); iterProperties.hasNext();)
{
- EStructuralFeature feature = (EStructuralFeature)iterProperties.next();
- EClassifier propertyType = feature.getEType();
+ EStructuralFeature property = (EStructuralFeature)iterProperties.next();
+ EClassifier propertyType = property.getEType();
if (propertyType instanceof EClass)
{
GenClass propertyGenClass = (GenClass)eclassGenClassMap.get(propertyType);
@@ -432,6 +430,7 @@
}
classes.add( new PackageClassInfo( name, interfaceName, anonymous, propertyClassNames ) );
}
+ }
else
{
// simple type
@@ -442,8 +441,6 @@
}
}
}
- }
- }
public class PackageClassInfo
{
Modified: incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/AllTests.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/AllTests.java?view=diff&rev=558140&r1=558139&r2=558140
==============================================================================
--- incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/AllTests.java (original)
+++ incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/AllTests.java Fri Jul 20 14:02:35 2007
@@ -35,6 +35,7 @@
suite.addTestSuite(InheritanceTestCase.class);
suite.addTestSuite(OpenContentTestCase.class);
suite.addTestSuite(SimpleStaticTestCase.class);
+ suite.addTestSuite(GeneratedPackagesTestCase.class);
return suite;
}
Added: incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/GeneratedPackagesTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/GeneratedPackagesTestCase.java?view=auto&rev=558140
==============================================================================
--- incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/GeneratedPackagesTestCase.java (added)
+++ incubator/tuscany/java/sdo/tools/src/test/java/org/apache/tuscany/sdo/test/GeneratedPackagesTestCase.java Fri Jul 20 14:02:35 2007
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sdo.test;
+
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.tuscany.sdo.generate.XSD2JavaGenerator;
+
+import junit.framework.TestCase;
+
+
+public class GeneratedPackagesTestCase extends TestCase
+{
+ static String expectedNamespace = "http://www.example.com/sequences";
+
+ public void testPackageValidity()
+ {
+ XSD2JavaGenerator codeGen = new XSD2JavaGenerator();
+ String [] genArgs = { "-schemaNamespace", "all", "-noGenerate", "src/test/resources/sequences.xsd" };
+ codeGen.generateFromXMLSchema( genArgs );
+ List packages = codeGen.getGeneratedPackageInfo();
+
+ for (Iterator iter = packages.iterator(); iter.hasNext();)
+ {
+ XSD2JavaGenerator.GeneratedPackage packageInfo = (XSD2JavaGenerator.GeneratedPackage)iter.next();
+ assertTrue(expectedNamespace.equals(packageInfo.getNamespace()));
+
+ String name;
+ boolean validatedDocRoot = false;
+ boolean validatedMixedQuote = false;
+ boolean validatedSymbol = false;
+ for (Iterator iterClass = packageInfo.getClasses().iterator(); iterClass.hasNext();)
+ {
+ XSD2JavaGenerator.GeneratedPackage.PackageClassInfo classInfo = (XSD2JavaGenerator.GeneratedPackage.PackageClassInfo)iterClass.next();
+ name = classInfo.getName();
+
+ if( "MixedQuote".equals(name))
+ {
+ assertTrue("com.example.sequences.MixedQuote".equals(classInfo.getClassName()));
+ validatedMixedQuote = true;
+ }
+ if( "".equals(name))
+ {
+ assertTrue("com.example.sequences.DocumentRoot".equals(classInfo.getClassName()));
+ validatedDocRoot = true;
+ }
+ if( "symbol".equals(name))
+ {
+ assertTrue("java.lang.String".equals(classInfo.getClassName()));
+ validatedSymbol = true;
+ }
+ }
+ assertTrue(validatedMixedQuote);
+ assertTrue(validatedDocRoot);
+ assertTrue(validatedSymbol);
+ }
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org