[181254] XMLTypes fix
diff --git a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java
index 9227060..b8a51c7 100644
--- a/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java
+++ b/plugins/org.eclipse.wst.common.emf/wtpemf/org/eclipse/wst/common/internal/emf/utilities/DefaultFeatureValueConverter.java
@@ -19,6 +19,7 @@
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.EcorePackage;
+import org.eclipse.emf.ecore.xml.type.XMLTypePackage;
/**
* Insert the type's description here. Creation date: (5/10/2001 2:49:49 PM)
@@ -225,39 +226,71 @@
EClassifier meta = anAttribute.getEType();
if (meta.eClass() == EcorePackage.eINSTANCE.getEEnum())
return convertToEnum(aValue, anAttribute);
- switch (meta.getClassifierID()) {
- case EcorePackage.ESTRING :
+ if (meta.getEPackage() instanceof EcorePackage)
+ {
+ switch (meta.getClassifierID()) {
+ case EcorePackage.ESTRING :
+ return convertToString(aValue);
+ case EcorePackage.EBOOLEAN_OBJECT :
+ case EcorePackage.EBOOLEAN :
+ return convertToBoolean(aValue);
+ case EcorePackage.EINTEGER_OBJECT :
+ case EcorePackage.EINT :
+ return convertToInteger(aValue);
+ case EcorePackage.EFLOAT_OBJECT :
+ case EcorePackage.EFLOAT :
+ return convertToFloat(aValue);
+ case EcorePackage.ECHARACTER_OBJECT :
+ case EcorePackage.ECHAR :
+ return convertToCharacter(aValue);
+ case EcorePackage.ELONG_OBJECT :
+ case EcorePackage.ELONG :
+ return convertToLong(aValue);
+ case EcorePackage.EBYTE_OBJECT :
+ case EcorePackage.EBYTE :
+ return convertToByte(aValue);
+ case EcorePackage.EDOUBLE_OBJECT :
+ case EcorePackage.EDOUBLE :
+ return convertToDouble(aValue);
+ case EcorePackage.ESHORT_OBJECT :
+ case EcorePackage.ESHORT :
+ return convertToShort(aValue);
+ // case EcorePackage.EENUM:
+ // return convertToEnum(aValue, anAttribute);
+ case EcorePackage.EOBJECT :
+ return convertToMofObject(aValue);
+ case EcorePackage.EJAVA_OBJECT :
+ return convertToJavaObject(aValue);
+ }
+ }
+ else if (meta.getEPackage() instanceof XMLTypePackage)
+ {
+ switch (meta.getClassifierID()) {
+ case XMLTypePackage.STRING :
return convertToString(aValue);
- case EcorePackage.EBOOLEAN_OBJECT :
- case EcorePackage.EBOOLEAN :
+ case XMLTypePackage.BOOLEAN_OBJECT :
+ case XMLTypePackage.BOOLEAN :
return convertToBoolean(aValue);
- case EcorePackage.EINTEGER_OBJECT :
- case EcorePackage.EINT :
+ case XMLTypePackage.INT_OBJECT :
+ case XMLTypePackage.INTEGER :
+ case XMLTypePackage.INT :
return convertToInteger(aValue);
- case EcorePackage.EFLOAT_OBJECT :
- case EcorePackage.EFLOAT :
+ case XMLTypePackage.FLOAT_OBJECT :
+ case XMLTypePackage.FLOAT :
return convertToFloat(aValue);
- case EcorePackage.ECHARACTER_OBJECT :
- case EcorePackage.ECHAR :
- return convertToCharacter(aValue);
- case EcorePackage.ELONG_OBJECT :
- case EcorePackage.ELONG :
+ case XMLTypePackage.LONG_OBJECT :
+ case XMLTypePackage.LONG :
return convertToLong(aValue);
- case EcorePackage.EBYTE_OBJECT :
- case EcorePackage.EBYTE :
+ case XMLTypePackage.BYTE_OBJECT :
+ case XMLTypePackage.BYTE :
return convertToByte(aValue);
- case EcorePackage.EDOUBLE_OBJECT :
- case EcorePackage.EDOUBLE :
+ case XMLTypePackage.DOUBLE_OBJECT :
+ case XMLTypePackage.DOUBLE :
return convertToDouble(aValue);
- case EcorePackage.ESHORT_OBJECT :
- case EcorePackage.ESHORT :
+ case XMLTypePackage.SHORT_OBJECT :
+ case XMLTypePackage.SHORT :
return convertToShort(aValue);
- // case EcorePackage.EENUM:
- // return convertToEnum(aValue, anAttribute);
- case EcorePackage.EOBJECT :
- return convertToMofObject(aValue);
- case EcorePackage.EJAVA_OBJECT :
- return convertToJavaObject(aValue);
+ }
}
return aValue;
}