Author: frankb
Date: Wed Mar 29 14:09:06 2006
New Revision: 389902

URL: http://svn.apache.org/viewcvs?rev=389902&view=rev
Log:
Fix for TUSCANY-130

Added:
    
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java
Modified:
    
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java

Modified: 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java?rev=389902&r1=389901&r2=389902&view=diff
==============================================================================
--- 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
 (original)
+++ 
incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/model/impl/ModelFactoryImpl.java
 Wed Mar 29 14:09:06 2006
@@ -22,6 +22,8 @@
 import org.eclipse.emf.ecore.impl.EFactoryImpl;
 
 import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.emf.ecore.xml.type.XMLTypeFactory;
+import org.eclipse.emf.ecore.xml.type.internal.XMLCalendar;
 
 /**
  * <!-- begin-user-doc -->
@@ -346,27 +348,27 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Boolean createBooleanFromString(EDataType eDataType, String 
initialValue)
   {
-    return (Boolean)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createBooleanObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertBooleanToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return 
XMLTypeFactory.eINSTANCE.convertBooleanObject((Boolean)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Boolean createBooleanObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -376,7 +378,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertBooleanObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -386,27 +388,27 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Byte createByteFromString(EDataType eDataType, String initialValue)
   {
-    return (Byte)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createByteObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertByteToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertByteObject((Byte)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Byte createByteObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -416,7 +418,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertByteObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -426,51 +428,52 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public byte[] createBytesFromString(EDataType eDataType, String initialValue)
   {
-    // TODO: implement this method
-    // Ensure that you remove @generated or mark it @generated NOT
-    throw new UnsupportedOperationException();
+    return XMLTypeFactory.eINSTANCE.createBase64Binary(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertBytesToString(EDataType eDataType, Object instanceValue)
   {
-    // TODO: implement this method
-    // Ensure that you remove @generated or mark it @generated NOT
-    throw new UnsupportedOperationException();
+    if (instanceValue instanceof byte[]) {
+      return 
XMLTypeFactory.eINSTANCE.convertBase64Binary((byte[])instanceValue);
+    } else {
+      return 
XMLTypeFactory.eINSTANCE.convertBase64Binary(instanceValue.toString().getBytes());
+    }
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Character createCharacterFromString(EDataType eDataType, String 
initialValue)
   {
-    return (Character)super.createFromString(eDataType, initialValue);
+    return (initialValue != null && initialValue.length() > 0) ? 
+           new Character(initialValue.charAt(0)) : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertCharacterToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return String.valueOf(((Character)instanceValue).charValue());
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Character createCharacterObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -480,7 +483,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertCharacterObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -490,107 +493,110 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Date createDateFromString(EDataType eDataType, String initialValue)
   {
-    return (Date)super.createFromString(eDataType, initialValue);
+    XMLCalendar cal = (XMLCalendar) 
XMLTypeFactory.eINSTANCE.createDate(initialValue);
+    return (cal != null) ? cal.getDate() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDateToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertDate(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createDateTimeFromString(EDataType eDataType, String 
initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createDateTime(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDateTimeToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertDateTime(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createDayFromString(EDataType eDataType, String initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createGDay(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDayToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertGDay(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public BigDecimal createDecimalFromString(EDataType eDataType, String 
initialValue)
   {
-    return (BigDecimal)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createDecimal(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDecimalToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertDecimal((BigDecimal)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Double createDoubleFromString(EDataType eDataType, String 
initialValue)
   {
-    return (Double)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createDoubleObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDoubleToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertDouble((Double)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Double createDoubleObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -600,7 +606,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDoubleObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -610,47 +616,48 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createDurationFromString(EDataType eDataType, String 
initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createDuration(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertDurationToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertDuration(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Float createFloatFromString(EDataType eDataType, String initialValue)
   {
-    return (Float)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createFloatObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertFloatToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertFloat((Float)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Float createFloatObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -660,7 +667,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertFloatObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -670,47 +677,47 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Integer createIntFromString(EDataType eDataType, String initialValue)
   {
-    return (Integer)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createIntObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertIntToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertInt((Integer)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public BigInteger createIntegerFromString(EDataType eDataType, String 
initialValue)
   {
-    return (BigInteger)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createInteger(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertIntegerToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertInteger((BigInteger)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Integer createIntObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -720,7 +727,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertIntObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -730,27 +737,27 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Long createLongFromString(EDataType eDataType, String initialValue)
   {
-    return (Long)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createLongObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertLongToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertLong((Long)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Long createLongObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -760,7 +767,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertLongObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -770,87 +777,89 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createMonthFromString(EDataType eDataType, String initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createGMonth(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertMonthToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertGMonth(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createMonthDayFromString(EDataType eDataType, String 
initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createGMonthDay(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertMonthDayToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertGMonthDay(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Object createObjectFromString(EDataType eDataType, String 
initialValue)
   {
-    return (Object)super.createFromString(eDataType, initialValue);
+    return initialValue;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertObjectToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return (instanceValue != null) ? instanceValue.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Short createShortFromString(EDataType eDataType, String initialValue)
   {
-    return (Short)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createShortObject(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertShortToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertShort((Short)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public Short createShortObjectFromString(EDataType eDataType, String 
initialValue)
   {
@@ -860,7 +869,7 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertShortObjectToString(EDataType eDataType, Object 
instanceValue)
   {
@@ -870,141 +879,145 @@
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createStringFromString(EDataType eDataType, String 
initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    return initialValue;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertStringToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return (instanceValue != null) ? instanceValue.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public List createStringsFromString(EDataType eDataType, String initialValue)
   {
-    return (List)super.createFromString(eDataType, initialValue);
+    return XMLTypeFactory.eINSTANCE.createENTITIES(initialValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertStringsToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertENTITIES((List)instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createTimeFromString(EDataType eDataType, String initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createTime(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertTimeToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertTime(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createURIFromString(EDataType eDataType, String initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    return initialValue;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertURIToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return (instanceValue != null) ? instanceValue.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createYearFromString(EDataType eDataType, String initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createGYear(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertYearToString(EDataType eDataType, Object instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertGYear(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createYearMonthFromString(EDataType eDataType, String 
initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createGYearMonth(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertYearMonthToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertGYearMonth(instanceValue);
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String createYearMonthDayFromString(EDataType eDataType, String 
initialValue)
   {
-    return (String)super.createFromString(eDataType, initialValue);
+    Object obj = XMLTypeFactory.eINSTANCE.createDate(initialValue);
+    return (obj != null) ? obj.toString() : null;
   }
 
   /**
    * <!-- begin-user-doc -->
    * <!-- end-user-doc -->
-   * @generated
+   * @generated NOT
    */
   public String convertYearMonthDayToString(EDataType eDataType, Object 
instanceValue)
   {
-    return super.convertToString(eDataType, instanceValue);
+    return XMLTypeFactory.eINSTANCE.convertDate(instanceValue);
   }
 
   /**

Added: 
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java
URL: 
http://svn.apache.org/viewcvs/incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java?rev=389902&view=auto
==============================================================================
--- 
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java
 (added)
+++ 
incubator/tuscany/java/sdo/impl/src/test/java/org/apache/tuscany/sdo/test/TypeRoundTripTest.java
 Wed Mar 29 14:09:06 2006
@@ -0,0 +1,145 @@
+package org.apache.tuscany.sdo.test;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sdo.util.SDOUtil;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+import commonj.sdo.Type;
+import commonj.sdo.helper.TypeHelper;
+
+public class TypeRoundTripTest extends TestCase {
+
+  private static class Test {
+    Type type;
+    String value;
+    Object obj;
+    Comparator comp;
+    
+    Test(Type type, String value, Object obj) {
+      this.type = type;
+      this.value = value;
+      this.obj = obj;
+    }
+    
+    Test(Type type, String value, Object obj, Comparator comp) {
+      this.type = type;
+      this.value = value;
+      this.obj = obj;
+      this.comp = comp;
+    }    
+  }
+  
+  private static class ListComparator implements Comparator {
+    public int compare(Object list1, Object list2) {
+      int answer = 1;
+      if (list1 instanceof List && list2 instanceof List) {
+        List l1 = (List) list1;
+        List l2 = (List) list2;
+        if (l1.size() == l2.size()) {
+          for (int n = 0; n < l1.size(); n++) {
+            if (!l1.get(n).equals(l2.get(n))) {
+              answer = 0;
+              break;
+            }
+          }
+        } else {
+          answer = 0;
+        }
+      } else {
+        answer = 0;
+      }
+      return answer;
+    }    
+  }
+  
+  private static class BytesComparator implements Comparator {
+    public int compare(Object o1, Object o2) {
+      o2 = new String((byte[])o2);
+      if (o1.equals(o2)) return 1;
+      else return 0;
+    }
+  }
+  
+  private static class DateComparator implements Comparator {
+    public int compare(Object o1, Object o2) {
+      int answer = 1;
+      try {
+        if (o1 instanceof String && o2 instanceof Date) {
+          SimpleDateFormat sdf = 
+            new SimpleDateFormat("yyyy-MM-dd'Z'");
+          o1 = sdf.parse((String)o1);
+          if (!o1.equals(o2)) answer = 0; 
+        } else {
+          answer = 0;
+        }
+      } catch (Exception e) {}
+      return answer;
+    }
+  }
+  
+  public void testTypeRoundTrips() throws Exception {
+    String URI = "commonj.sdo";
+    TypeHelper types = TypeHelper.INSTANCE;
+    List list = new ArrayList();
+    list.add("foo");
+    list.add("bar");
+    list.add("test");
+    Test[] tests = {
+      new Test(types.getType(URI, "Boolean"),      "true", new Boolean(true)),
+      new Test(types.getType(URI, "Byte"),         "49", new Byte((byte)49)),
+      new Test(types.getType(URI, "Bytes"),        "Zm9v", "foo", new 
BytesComparator()),
+      new Test(types.getType(URI, "Character"),    "a", new Character('a')),
+      new Test(types.getType(URI, "Date"),         "2005-12-12Z", 
"2005-12-12Z", new DateComparator()),
+      new Test(types.getType(URI, "DateTime"),     "2005-12-12T12:12:12Z", 
"2005-12-12T12:12:12Z"),
+      new Test(types.getType(URI, "Day"),          "---12", "---12"),
+      new Test(types.getType(URI, "Decimal"),      "12.12", new 
BigDecimal("12.12")),
+      new Test(types.getType(URI, "Double"),       "12.12", new Double(12.12)),
+      new Test(types.getType(URI, "Duration"),     "P5Y2M10D", "P5Y2M10D"),
+      new Test(types.getType(URI, "Float"),        "12.12", new Float(12.12f)),
+      new Test(types.getType(URI, "Int"),          "12", new Integer(12)),
+      new Test(types.getType(URI, "Integer"),      "12", new BigInteger("12")),
+      new Test(types.getType(URI, "Long"),         "12", new Long(12l)),
+      new Test(types.getType(URI, "Month"),        "--12", "--12"),
+      new Test(types.getType(URI, "MonthDay"),     "--12-12", "--12-12"),
+      new Test(types.getType(URI, "Object"),       "test", "test"),
+      new Test(types.getType(URI, "Short"),        "12", new Short((short)12)),
+      new Test(types.getType(URI, "String"),       "test", "test"),
+      new Test(types.getType(URI, "Strings"),      "foo bar test", list, new 
ListComparator()),
+      new Test(types.getType(URI, "Time"),         "12:12:12.12", 
"12:12:12.12"),
+      new Test(types.getType(URI, "URI"),          "http://example.org";, 
"http://example.org";),
+      new Test(types.getType(URI, "Year"),         "2005", "2005"),
+      new Test(types.getType(URI, "YearMonth"),    "2005-12", "2005-12"),
+      new Test(types.getType(URI, "YearMonthDay"), "2005-12-12", "2005-12-12")
+    };
+    
+    for (int n = 0; n < tests.length; n++) {
+      assertEquals(
+        SDOUtil.convertToString(tests[n].type, 
SDOUtil.createFromString(tests[n].type, tests[n].value)), 
+        tests[n].value
+      );
+      
+      System.out.print(".");
+      
+      if (tests[n].comp == null) {
+        assertEquals(
+          SDOUtil.createFromString(tests[n].type, 
SDOUtil.convertToString(tests[n].type, tests[n].obj)), 
+          tests[n].obj
+        );
+      } else {
+        String o1 = SDOUtil.convertToString(tests[n].type, tests[n].obj);
+        Object o2 = SDOUtil.createFromString(tests[n].type, o1);
+        assertEquals(tests[n].comp.compare(tests[n].obj, o2), 1);
+      }
+    }
+    
+  }
+  
+}


Reply via email to