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