You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by fr...@apache.org on 2006/11/18 23:15:23 UTC

svn commit: r476622 [4/4] - in /incubator/tuscany/java/sdo: impl/src/main/java/org/apache/tuscany/sdo/helper/ impl/src/main/java/org/apache/tuscany/sdo/impl/ tools/src/main/java/org/apache/tuscany/sdo/generate/templates/model/ tools/src/main/java/org/a...

Modified: incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/util/SDOGenUtil.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/util/SDOGenUtil.java?view=diff&rev=476622&r1=476621&r2=476622
==============================================================================
--- incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/util/SDOGenUtil.java (original)
+++ incubator/tuscany/java/sdo/tools/src/main/java/org/apache/tuscany/sdo/generate/util/SDOGenUtil.java Sat Nov 18 14:15:22 2006
@@ -19,15 +19,41 @@
  */
 package org.apache.tuscany.sdo.generate.util;
 
+import java.util.Iterator;
+
 import org.eclipse.emf.codegen.ecore.genmodel.GenClassifier;
 import org.eclipse.emf.codegen.ecore.genmodel.GenPackage;
 
 public class SDOGenUtil {
 	
-	public static String getQualifiedTypeAccessor(GenClassifier genClassifier){
-		GenPackage genPackage = genClassifier.getGenPackage();
-		return "((" + genPackage.getImportedFactoryClassName() + ")" 
-		+ genPackage.getImportedFactoryInterfaceName() + ".INSTANCE).get" + genClassifier.getClassifierAccessorName() + "()";
+	public static String getQualifiedTypeAccessor(GenClassifier genClassifier)
+    {
+	  GenPackage genPackage = genClassifier.getGenPackage();
+	  return getFactoryImpl(genPackage) + ".get" + genClassifier.getClassifierAccessorName() + "()";
 	}
+    
+    public static String getDependentFactoryArgumentList(GenPackage genPackage, boolean isFormalArguments)
+    {
+      StringBuffer result = new StringBuffer();
+      for (Iterator iter = genPackage.getPackageInitializationDependencies().iterator(); iter.hasNext(); )
+      {
+        GenPackage dep = (GenPackage)iter.next();
+        if (isFormalArguments)
+        {
+          result.append(dep.getImportedFactoryClassName());
+          result.append(" ");
+        }
+        result.append(genPackage.getPackageInstanceVariable(dep));
+        if (iter.hasNext()) result.append(", ");
+      }
+      return result.toString();
+    }
+
+    public static String getFactoryImpl(GenPackage genPackage)
+    {
+      return "((" + genPackage.getImportedFactoryClassName() + ")" 
+        + genPackage.getImportedFactoryInterfaceName() + ".INSTANCE)";
+    }
+ 
 
 }

Modified: incubator/tuscany/java/sdo/tools/templates/models/SDOClass.javajet
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/templates/models/SDOClass.javajet?view=diff&rev=476622&r1=476621&r2=476622
==============================================================================
--- incubator/tuscany/java/sdo/tools/templates/models/SDOClass.javajet (original)
+++ incubator/tuscany/java/sdo/tools/templates/models/SDOClass.javajet Sat Nov 18 14:15:22 2006
@@ -549,10 +549,10 @@
           <%if (genModel.isVirtualDelegation()) {%>
 		<%=genFeature.getImportedType()%> <%=genFeature.getSafeName()%> = (<%=genFeature.getImportedType()%>)eVirtualGet(<%=genFeature.getUpperName()%><%if (!genFeature.isReferenceType()) {%>, <%=genFeature.getUpperName()%>_DEFAULT_<%}%>);
           <%}%>
-		if (<%=genFeature.getSafeName()%> != null && <%=genFeature.getSafeNameAsEObject()%>.isProxy())
+		if (<%=genFeature.getSafeName()%> != null && isProxy(<%=genFeature.getSafeName()%>))
 		{
-			<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%> old<%=genFeature.getCapName()%> = (<%=genModel.getImportedName("org.eclipse.emf.ecore.InternalEObject")%>)<%=genFeature.getSafeName()%>;
-			<%=genFeature.getSafeName()%> = <%=genFeature.getNonEObjectInternalTypeCast()%>eResolveProxy(old<%=genFeature.getCapName()%>);
+			Object old<%=genFeature.getCapName()%> = <%=genFeature.getSafeName()%>;
+			<%=genFeature.getSafeName()%> = <%=genFeature.getNonEObjectInternalTypeCast()%>resolveProxy(old<%=genFeature.getCapName()%>);
 			if (<%=genFeature.getSafeName()%> != old<%=genFeature.getCapName()%>)
 			{
           <%if (genFeature.isEffectiveContains()) {%>
@@ -1693,7 +1693,7 @@
 	 */
 	public String toString()
 	{
-		if (isProxy()) return super.toString();
+		if (isProxy(this)) return super.toString();
 
 		StringBuffer result = new StringBuffer(super.toString());
   <%{ boolean first = true;%>

Modified: incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet?view=diff&rev=476622&r1=476621&r2=476622
==============================================================================
--- incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet (original)
+++ incubator/tuscany/java/sdo/tools/templates/models/SDOFactoryClass.javajet Sat Nov 18 14:15:22 2006
@@ -149,18 +149,18 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public Object createFromString(<%=genModel.getImportedName("commonj.sdo.Type")%> type, String initialValue, int propertyValue)
+	public Object createFromString(int typeNumber, String initialValue)
 	{
-		switch (propertyValue)
+		switch (typeNumber)
 		{
 <%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
   <%if (genDataType.isSerializable()) {%>
 			case <%=genDataType.getClassifierID()%>:
-				return create<%=genDataType.getName()%>FromString(type, initialValue);
+				return create<%=genDataType.getName()%>FromString(initialValue);
   <%}%>
 <%}%>
 			default:
-				throw new IllegalArgumentException("The datatype '" + type.getName() + "' is not a valid property value");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
+				throw new IllegalArgumentException("The type number '" + typeNumber + "' is not a valid datatype");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
 		}
 	}
 
@@ -169,18 +169,18 @@
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convertToString(<%=genModel.getImportedName("commonj.sdo.Type")%> type, Object instanceValue, int propertyValue)
+	public String convertToString(int typeNumber, Object instanceValue)
 	{
-		switch (propertyValue)
+		switch (typeNumber)
 		{
 <%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
   <%if (genDataType.isSerializable()) {%>
 			case <%=genDataType.getClassifierID()%>:
-				return convert<%=genDataType.getName()%>ToString(type, instanceValue);
+				return convert<%=genDataType.getName()%>ToString(instanceValue);
   <%}%>
 <%}%>
 			default:
-				throw new IllegalArgumentException("The datatype '" + type.getName() + "' is not a valid property value");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
+				throw new IllegalArgumentException("The type number '" + typeNumber + "' is not a valid datatype");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%>
 		}
 	}
 <%}%>
@@ -344,10 +344,10 @@
 
         <%}%>
       <%}%>
-		createXSDMetaData(theModelPackageImpl);
+		createXSDMetaData(<%=SDOGenUtil.getDependentFactoryArgumentList(genPackage, false)%>);
 	}
 	  
-	protected void createXSDMetaData(ModelFactoryImpl theModelPackageImpl)
+	protected void createXSDMetaData(<%=SDOGenUtil.getDependentFactoryArgumentList(genPackage, true)%>)
 	{
 		super.createXSDMetaData();
 		
@@ -430,146 +430,37 @@
   
 <%for (Iterator i=genPackage.getAllGenDataTypes().iterator(); i.hasNext();) { GenDataType genDataType = (GenDataType)i.next();%>
   <%if (genDataType.isSerializable()) {%>
-<%if (genPackage.isDataTypeConverters()) { String eDataType = genDataType.getQualifiedClassifierAccessor();%>
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public <%=genDataType.getImportedInstanceClassName()%> create<%=genDataType.getName()%>(String literal)
+	public <%=genDataType.getObjectInstanceClassName()%> create<%=genDataType.getName()%>FromString(String initialValue)
 	{
     <%if (genDataType instanceof GenEnum) {%>
-		<%=genDataType.getImportedInstanceClassName()%> result = <%=genDataType.getImportedInstanceClassName()%>.get(literal);
-		if (result == null) throw new IllegalArgumentException("The value '" + literal + "' is not a valid enumerator of '" + <%=eDataType%>.getName() + "'");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%><%=genModel.getNonNLS(3)%>
-		return result;
-    <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); boolean isPrimitiveConversion = !genDataType.isPrimitiveType() && genBaseType.isPrimitiveType();%>
-      <%if (genBaseType.getGenPackage() == genPackage) {%>
-        <%if (isPrimitiveConversion) {%>
-		return new <%=genDataType.getObjectInstanceClassName()%>(create<%=genBaseType.getName()%>(literal));
-        <%} else {%>
-		return create<%=genBaseType.getName()%>(literal);
-        <%}%>
-      <%} else if (genBaseType.getGenPackage().isDataTypeConverters()) {%>
-        <%if (isPrimitiveConversion) {%>
-		return new <%=genDataType.getObjectInstanceClassName()%>(<%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genBaseType.getName()%>(literal));
-        <%} else {%>
-		return <%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genBaseType.getName()%>(literal);
-        <%}%>
-      <%} else {%>
-		return (<%=genDataType.getObjectInstanceClassName()%>)<%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genBaseType.getQualifiedClassifierAccessor()%>, literal);
-      <%}%>
-    <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
-		if (literal == null) return null;
-		<%=genModel.getImportedName("java.util.List")%> result = new <%=genModel.getImportedName("java.util.ArrayList")%>();
-		for (<%=genModel.getImportedName("java.util.StringTokenizer")%> stringTokenizer = new <%=genModel.getImportedName("java.util.StringTokenizer")%>(literal); stringTokenizer.hasMoreTokens(); )
-		{
-			String item = stringTokenizer.nextToken();
-      <%if (genItemType.getGenPackage() == genPackage) {%>
-        <%if (genPackage.isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
-			result.add(create<%=genItemType.getName()%>(item));
-        <%} else {%>
-			result.add(create<%=genItemType.getName()%>FromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
-        <%}%>
-      <%} else {%>
-        <%if (genItemType.getGenPackage().isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
-			result.add(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genItemType.getName()%>(item));
-        <%} else {%>
-			result.add(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
-        <%}%>
-      <%}%>
-		}
-		return result;
-    <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
-		if (literal == null) return <%=genDataType.getStaticValue(null)%>;
-		<%=genDataType.getImportedInstanceClassName()%> result = <%=genDataType.getStaticValue(null)%>;
-		RuntimeException exception = null;
-      <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
-		try
-		{
-      <%if (genMemberType.getGenPackage() == genPackage) {%>
-        <%if (genPackage.isDataTypeConverters()) { if (!genDataType.isPrimitiveType()) genMemberType = genMemberType.getObjectType();%>
-			result = create<%=genMemberType.getName()%>(literal);
-        <%} else {%>
-			result = (<%=genDataType.getObjectInstanceClassName()%>)create<%=genMemberType.getName()%>FromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, literal);
-        <%}%>
-      <%} else {%>
-        <%if (genPackage.isDataTypeConverters()) { if (!genDataType.isPrimitiveType()) genMemberType = genMemberType.getObjectType();%>
-			result = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.create<%=genMemberType.getName()%>(literal);
-        <%} else {%>
-			result = (<%=genDataType.getObjectInstanceClassName()%>)<%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, literal);
-        <%}%>
-      <%}%>
-			if (<%if (!genDataType.isPrimitiveType()) {%>result != null && <%}%><%=genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician")%>.INSTANCE.validate(<%=eDataType%>, <%if (genDataType.isPrimitiveType()) {%>new <%=genDataType.getObjectInstanceClassName()%>(result)<%} else {%>result<%}%>, null, null))
-			{
-				return result;
-			}
-		}
-		catch (RuntimeException e)
-		{
-			exception = e;
-		}
-      <%}%>
-		if (<%if (!genDataType.isPrimitiveType()) {%>result != null || <%}%>exception == null) return result;
-    
-		throw exception;
-    <%} else if (genDataType.isArrayType()) {%>
-		// TODO: implement this method
-		// Ensure that you remove @generated or mark it @generated NOT
-		throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
-    <%} else if (genDataType.isPrimitiveType()) {%>
-		return ((<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(<%=eDataType%>, literal)).<%=genDataType.getPrimitiveValueFunction()%>();
-    <%} else {%>
-		return (<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(<%=eDataType%>, literal);
-    <%}%>
-	}
-
-<%}%>
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public <%=genDataType.getObjectInstanceClassName()%> create<%=genDataType.getName()%>FromString(<%=genModel.getImportedName("commonj.sdo.Type")%> type, String initialValue)
-	{
-    <%if (genDataType instanceof GenEnum) {%>
-      <%if (genPackage.isDataTypeConverters()) {%>
-		return create<%=genDataType.getName()%>(initialValue);
-      <%} else {%>
 		<%=((GenEnum)genDataType).getImportedInstanceClassName()%> result = <%=((GenEnum)genDataType).getImportedInstanceClassName()%>.get(initialValue);
 		if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + type.getName() + "'");<%=genModel.getNonNLS()%><%=genModel.getNonNLS(2)%><%=genModel.getNonNLS(3)%>
 		return result;
-      <%}%>
     <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); %>
       <%if (genBaseType.getGenPackage() == genPackage) {%>
-		return (<%=genDataType.getObjectInstanceClassName()%>)create<%=genBaseType.getName()%>FromString(<%=SDOGenUtil.getQualifiedTypeAccessor(genDataType)%>, initialValue);
+		return (<%=genDataType.getObjectInstanceClassName()%>)create<%=genBaseType.getName()%>FromString(initialValue);
       <%} else {%>
-		return (<%=genDataType.getObjectInstanceClassName()%>)<%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genBaseType.getQualifiedClassifierAccessor()%>, initialValue);
+		return (<%=genDataType.getObjectInstanceClassName()%>)<%=SDOGenUtil.getFactoryImpl(genBaseType.getGenPackage())%>.create<%=genBaseType.getName()%>FromString(initialValue);
       <%}%>
     <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
-      <%if (genPackage.isDataTypeConverters()) {%>
-		return create<%=genDataType.getName()%>(initialValue);
-      <%} else {%>
 		if (initialValue == null) return null;
 		<%=genModel.getImportedName("java.util.List")%> result = new <%=genModel.getImportedName("java.util.ArrayList")%>();
 		for (<%=genModel.getImportedName("java.util.StringTokenizer")%> stringTokenizer = new <%=genModel.getImportedName("java.util.StringTokenizer")%>(initialValue); stringTokenizer.hasMoreTokens(); )
 		{
 			String item = stringTokenizer.nextToken();
       <%if (genItemType.getGenPackage() == genPackage) {%>
-			result.add(create<%=genItemType.getName()%>FromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
+			result.add(create<%=genItemType.getName()%>FromString(item));
       <%} else {%>
-			result.add(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genItemType.getQualifiedClassifierAccessor()%>, item));
+			result.add(<%=SDOGenUtil.getFactoryImpl(genItemType.getGenPackage())%>.create<%=genItemType.getName()%>FromString(item));
       <%}%>
 		}
 		return result;
-      <%}%>
     <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
-      <%if (genPackage.isDataTypeConverters()) {%>
-        <%if (genDataType.isPrimitiveType()) {%>
-		return new <%=genDataType.getObjectInstanceClassName()%>(create<%=genDataType.getName()%>(initialValue));
-        <%} else {%>
-		return create<%=genDataType.getName()%>(initialValue);
-        <%}%>
-      <%} else {%>
 		if (initialValue == null) return null;
 		<%=genDataType.getObjectInstanceClassName()%> result = null;
 		RuntimeException exception = null;
@@ -577,11 +468,11 @@
 		try
 		{
       <%if (genMemberType.getGenPackage() == genPackage) {%>
-			result = (<%=genDataType.getObjectInstanceClassName()%>)create<%=genMemberType.getName()%>FromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, initialValue);
+			result = (<%=genDataType.getObjectInstanceClassName()%>)create<%=genMemberType.getName()%>FromString(initialValue);
       <%} else {%>
-			result = (<%=genDataType.getObjectInstanceClassName()%>)<%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.createFromString(<%=genMemberType.getQualifiedClassifierAccessor()%>, initialValue);
+			result = (<%=genDataType.getObjectInstanceClassName()%>)<%=SDOGenUtil.getFactoryImpl(genMemberType.getGenPackage())%>.create<%=genMemberType.getName()%>FromString(initialValue);
       <%}%>
-			if (result != null && <%=genModel.getImportedName("org.eclipse.emf.ecore.util.Diagnostician")%>.INSTANCE.validate(type, result, null, null))
+			if (result != null/* && Diagnostician.INSTANCE.validate(type, result, null, null)*/)
 			{
 				return result;
 			}
@@ -594,144 +485,31 @@
 		if (result != null || exception == null) return result;
     
 		throw exception;
-      <%}%>
-    <%} else if (genDataType.isArrayType()) {%>
-		// TODO: implement this method
-		// Ensure that you remove @generated or mark it @generated NOT
-		throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
-    <%} else {%>
-		return (<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(type, initialValue);
-    <%}%>
-	}
-
-<%if (genPackage.isDataTypeConverters()) { String eDataType = genDataType.getQualifiedClassifierAccessor();%>
-	/**
-	 * <!-- begin-user-doc -->
-	 * <!-- end-user-doc -->
-	 * @generated
-	 */
-	public String convert<%=genDataType.getName()%>(<%=genDataType.getImportedInstanceClassName()%> instanceValue)
-	{
-    <%if (genDataType instanceof GenEnum) {%>
-		return instanceValue == null ? null : instanceValue.toString();
-    <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); boolean isPrimitiveConversion = !genDataType.isPrimitiveType() && genBaseType.isPrimitiveType();%>
-      <%if (genBaseType.getGenPackage() == genPackage) {%>
-        <%if (isPrimitiveConversion) {%>
-		return instanceValue == null ? null : convert<%=genBaseType.getName()%>(instanceValue.<%=genBaseType.getPrimitiveValueFunction()%>());
-        <%} else {%>
-		return convert<%=genBaseType.getName()%>(instanceValue);
-        <%}%>
-      <%} else if (genBaseType.getGenPackage().isDataTypeConverters()) {%>
-		return <%=genBaseType.getGenPackage().getQualifiedFactoryInstanceAccessor()%>.convert<%=genBaseType.getName()%>(instanceValue);
-      <%} else {%>
-		return <%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genBaseType.getQualifiedClassifierAccessor()%>, instanceValue);
-      <%}%>
-    <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
-		if (instanceValue == null) return null;
-		if (instanceValue.isEmpty()) return "";
-		<%=genModel.getImportedName("java.lang.StringBuffer")%> result = new <%=genModel.getImportedName("java.lang.StringBuffer")%>();
-		for (<%=genModel.getImportedName("java.util.Iterator")%> i = instanceValue.iterator(); i.hasNext(); )
-		{
-      <%if (genItemType.getGenPackage() == genPackage) {%>
-        <%if (genPackage.isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
-			result.append(convert<%=genItemType.getName()%>((<%=genItemType.getObjectInstanceClassName()%>)i.next()));
-        <%} else {%>
-			result.append(convert<%=genItemType.getName()%>ToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
-        <%}%>
-      <%} else {%>
-        <%if (genItemType.getGenPackage().isDataTypeConverters()) { genItemType = genItemType.getObjectType();%>
-			result.append(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convert<%=genItemType.getName()%>((<%=genItemType.getObjectInstanceClassName()%>)i.next()));
-        <%} else {%>
-			result.append(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
-        <%}%>
-      <%}%>
-			result.append(' ');
-		}
-		return result.substring(0, result.length() - 1);
-    <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
-      <%if (!genDataType.isPrimitiveType()) {%>
-		if (instanceValue == null) return null;
-        <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
-		if (<%=genMemberType.getQualifiedClassifierAccessor()%>.isInstance(instanceValue))
-		{
-			try
-			{
-          <%if (genMemberType.getGenPackage() == genPackage) {%>
-            <%if (genPackage.isDataTypeConverters()) {%>
-				String value = convert<%=genMemberType.getName()%>(instanceValue);
-            <%} else {%>
-				String value = convert<%=genMemberType.getName()%>ToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
-            <%}%>
-          <%} else {%>
-            <%if (genMemberType.getGenPackage().isDataTypeConverters()) { genMemberType = genMemberType.getObjectType();%>
-				String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convert<%=genMemberType.getName()%>((<%=genMemberType.getObjectInstanceClassName()%>)instanceValue);
-            <%} else {%>
-				String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
-            <%}%>
-          <%}%>
-				if (value != null) return value;
-			}
-			catch (Exception e)
-			{
-			}
-		}
-        <%}%>
-      <%} else {%>
-        <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
-		try
-		{
-          <%if (genMemberType.getGenPackage() == genPackage) {%>
-            <%if (genPackage.isDataTypeConverters()) {%>
-			String value = convert<%=genMemberType.getName()%>(instanceValue);
-            <%} else {%>
-			String value = convert<%=genMemberType.getName()%>ToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, new <%=genMemberType.getObjectInstanceClassName()%>(instanceValue));
-            <%}%>
-          <%} else {%>
-            <%if (genMemberType.getGenPackage().isDataTypeConverters()) {%>
-			String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convert<%=genMemberType.getName()%>(instanceValue);
-            <%} else {%>
-			String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, new <%=genMemberType.getObjectInstanceClassName()%>(instanceValue));
-            <%}%>
-          <%}%>
-			if (value != null) return value;
-		}
-		catch (Exception e)
-		{
-		}
-        <%}%>
-      <%}%>
-		throw new IllegalArgumentException("Invalid value: '"+instanceValue+"' for datatype :"+<%=eDataType%>.getName());
     <%} else if (genDataType.isArrayType()) {%>
 		// TODO: implement this method
 		// Ensure that you remove @generated or mark it @generated NOT
 		throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
-    <%} else if (genDataType.isPrimitiveType()) {%>
-		return super.convertToString(<%=eDataType%>, new <%=genDataType.getObjectInstanceClassName()%>(instanceValue));
     <%} else {%>
-		return super.convertToString(<%=eDataType%>, instanceValue);
+		return (<%=genDataType.getObjectInstanceClassName()%>)super.createFromString(<%=genDataType.getClassifierID()%>, initialValue);
     <%}%>
 	}
 
-<%}%>
 	/**
 	 * <!-- begin-user-doc -->
 	 * <!-- end-user-doc -->
 	 * @generated
 	 */
-	public String convert<%=genDataType.getName()%>ToString(<%=genModel.getImportedName("commonj.sdo.Type")%> type, Object instanceValue)
+	public String convert<%=genDataType.getName()%>ToString(Object instanceValue)
 	{
     <%if (genDataType instanceof GenEnum) {%>
 		return instanceValue == null ? null : instanceValue.toString();
     <%} else if (genDataType.getBaseType() != null) { GenDataType genBaseType = genDataType.getBaseType(); %>
       <%if (genBaseType.getGenPackage() == genPackage) {%>
-		return convert<%=genBaseType.getName()%>ToString(<%=SDOGenUtil.getQualifiedTypeAccessor(genBaseType)%>, instanceValue);
+		return convert<%=genBaseType.getName()%>ToString(instanceValue);
       <%} else {%>
-		return <%=genBaseType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genBaseType.getQualifiedClassifierAccessor()%>, instanceValue);
+		return <%=SDOGenUtil.getFactoryImpl(genBaseType.getGenPackage())%>.convert<%=genBaseType.getName()%>ToString(instanceValue);
       <%}%>
     <%} else if (genDataType.getItemType() != null) { GenDataType genItemType = genDataType.getItemType(); %>
-      <%if (genPackage.isDataTypeConverters()) {%>
-		return convert<%=genDataType.getName()%>((<%=genModel.getImportedName("java.util.List")%>)instanceValue);
-      <%} else {%>
 		if (instanceValue == null) return null;
 		<%=genModel.getImportedName("java.util.List")%> list = (<%=genModel.getImportedName("java.util.List")%>)instanceValue;
 		if (list.isEmpty()) return "";
@@ -739,32 +517,24 @@
 		for (<%=genModel.getImportedName("java.util.Iterator")%> i = list.iterator(); i.hasNext(); )
 		{
         <%if (genItemType.getGenPackage() == genPackage) {%>
-			result.append(convert<%=genItemType.getName()%>ToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
+			result.append(convert<%=genItemType.getName()%>ToString(i.next()));
         <%} else {%>
-			result.append(<%=genItemType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genItemType.getQualifiedClassifierAccessor()%>, i.next()));
+			result.append(<%=SDOGenUtil.getFactoryImpl(genItemType.getGenPackage())%>.convert<%=genItemType.getName()%>ToString(i.next()));
         <%}%>
 			result.append(' ');
 		}
 		return result.substring(0, result.length() - 1);
-      <%}%>
     <%} else if (!genDataType.getMemberTypes().isEmpty()) {%>
-      <%if (genPackage.isDataTypeConverters()) {%>
-        <%if (genDataType.isPrimitiveType()) {%>
-		return instanceValue == null ? null : convert<%=genDataType.getName()%>(((<%=genDataType.getObjectInstanceClassName()%>)instanceValue).<%=genDataType.getPrimitiveValueFunction()%>());
-        <%} else {%>
-		return convert<%=genDataType.getName()%>(instanceValue);
-        <%}%>
-      <%} else {%>
 		if (instanceValue == null) return null;
         <%for (Iterator j = genDataType.getMemberTypes().iterator(); j.hasNext(); ) { GenDataType genMemberType = (GenDataType)j.next();%>
-		if (<%=genMemberType.getQualifiedClassifierAccessor()%>.isInstance(instanceValue))
+		if (<%=SDOGenUtil.getQualifiedTypeAccessor(genMemberType)%>.isInstance(instanceValue))
 		{
 			try
 			{
         <%if (genMemberType.getGenPackage() == genPackage) {%>
-				String value = convert<%=genMemberType.getName()%>ToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
+				String value = convert<%=genMemberType.getName()%>ToString(instanceValue);
         <%} else {%>
-				String value = <%=genMemberType.getGenPackage().getQualifiedEFactoryInternalInstanceAccessor()%>.convertToString(<%=genMemberType.getQualifiedClassifierAccessor()%>, instanceValue);
+				String value = <%=SDOGenUtil.getFactoryImpl(genMemberType.getGenPackage())%>.convert<%=genMemberType.getName()%>ToString(instanceValue);
         <%}%>
 				if (value != null) return value;
 			}
@@ -773,14 +543,13 @@
 			}
 		}
         <%}%>
-		throw new IllegalArgumentException("Invalid value: '"+instanceValue+"' for datatype :"+type.getName());
-      <%}%>
+		throw new IllegalArgumentException("Invalid value: '"+instanceValue+"' for datatype :<%=genDataType.getName()%>");
     <%} else if (genDataType.isArrayType()) {%>
 		// TODO: implement this method
 		// Ensure that you remove @generated or mark it @generated NOT
 		throw new <%=genModel.getImportedName("java.lang.UnsupportedOperationException")%>();
     <%} else {%>
-		return super.convertToString(type, instanceValue);
+		return super.convertToString(<%=genDataType.getClassifierID()%>, instanceValue);
     <%}%>
 	}
 



---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org