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 2007/04/26 21:38:42 UTC

svn commit: r532839 - /incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java

Author: frankb
Date: Thu Apr 26 12:38:41 2007
New Revision: 532839

URL: http://svn.apache.org/viewvc?view=rev&rev=532839
Log:
New feature TUSCANY-1213

Modified:
    incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java

Modified: incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java?view=diff&rev=532839&r1=532838&r2=532839
==============================================================================
--- incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java (original)
+++ incubator/tuscany/java/sdo/impl/src/main/java/org/apache/tuscany/sdo/helper/DataHelperImpl.java Thu Apr 26 12:38:41 2007
@@ -19,13 +19,21 @@
  */
 package org.apache.tuscany.sdo.helper;
 
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
+import java.util.Iterator;
+import java.util.List;
 import java.util.Locale;
 import java.util.TimeZone;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
+
+import org.apache.tuscany.sdo.util.DataObjectUtil;
+
 import commonj.sdo.Property;
 import commonj.sdo.Type;
 import commonj.sdo.helper.DataHelper;
@@ -554,12 +562,69 @@
   
   public Object convert(Type type, Object value)
   {
-    throw new UnsupportedOperationException();
+    Class typeClass = type.getInstanceClass();
+    if (typeClass.isInstance(value))
+      return value;
+    
+    if (typeClass == BigDecimal.class) {
+      return DataObjectUtil.getBigDecimal(value);
+    }
+    else if (typeClass == BigInteger.class) {
+      return DataObjectUtil.getBigInteger(value);
+    }
+    else if (typeClass == boolean.class || typeClass == Boolean.class) {
+      return Boolean.valueOf(DataObjectUtil.getBoolean(value));
+    }
+    else if (typeClass == byte.class || typeClass == Byte.class) {
+      return Byte.valueOf(DataObjectUtil.getByte(value));
+    }
+    else if (typeClass == byte[].class) {
+      return DataObjectUtil.getBytes(value);
+    }
+    else if (typeClass == char.class || typeClass == Character.class) {
+      return Character.valueOf(DataObjectUtil.getChar(value));
+    }
+    else if (typeClass == Date.class) {
+      return DataObjectUtil.getDate(value);
+    }
+    else if (typeClass == double.class || typeClass == Double.class) {
+      return Double.valueOf(DataObjectUtil.getDouble(value));
+    }
+    else if (typeClass == float.class || typeClass == Float.class) {
+      return Float.valueOf(DataObjectUtil.getFloat(value));
+    }
+    else if (typeClass == int.class || typeClass == Integer.class) {
+      return Integer.valueOf(DataObjectUtil.getInt(value));
+    }
+    else if (typeClass == long.class || typeClass == Long.class) {
+      return Long.valueOf(DataObjectUtil.getLong(value));
+    }
+    else if (typeClass == short.class || typeClass == Short.class) {
+      return Short.valueOf(DataObjectUtil.getShort(value));
+    }
+    else if (typeClass == String.class) {
+      return DataObjectUtil.getString(value);
+    }
+    
+    throw new IllegalArgumentException();
   }
   
   public Object convert(Property property, Object value)
   {
-    throw new UnsupportedOperationException();
+    Type type = property.getType();
+    if (!property.isMany())
+    {
+      return convert(type, value);
+    } 
+    else 
+    {
+      List listValue = (List)value;
+      List listResult = new ArrayList();
+      for (Iterator iter = listValue.iterator(); iter.hasNext(); ) {
+        listResult.add(convert(type, iter.next()));
+      }
+      return listResult;
+    }
   }
 
 }



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