You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by sm...@apache.org on 2011/04/19 00:08:52 UTC

svn commit: r1094792 - in /pivot/trunk/core: src/org/apache/pivot/beans/BeanAdapter.java test/org/apache/pivot/beans/test/BeanAdapterTest.java

Author: smartini
Date: Mon Apr 18 22:08:52 2011
New Revision: 1094792

URL: http://svn.apache.org/viewvc?rev=1094792&view=rev
Log:
PIVOT-704

Modified:
    pivot/trunk/core/src/org/apache/pivot/beans/BeanAdapter.java
    pivot/trunk/core/test/org/apache/pivot/beans/test/BeanAdapterTest.java

Modified: pivot/trunk/core/src/org/apache/pivot/beans/BeanAdapter.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/src/org/apache/pivot/beans/BeanAdapter.java?rev=1094792&r1=1094791&r2=1094792&view=diff
==============================================================================
--- pivot/trunk/core/src/org/apache/pivot/beans/BeanAdapter.java (original)
+++ pivot/trunk/core/src/org/apache/pivot/beans/BeanAdapter.java Mon Apr 18 22:08:52 2011
@@ -21,6 +21,8 @@ import java.lang.reflect.InvocationTarge
 import java.lang.reflect.Method;
 import java.lang.reflect.Modifier;
 import java.lang.reflect.Type;
+import java.math.BigDecimal;
+import java.math.BigInteger;
 import java.util.Arrays;
 import java.util.Comparator;
 import java.util.Iterator;
@@ -862,7 +864,9 @@ public class BeanAdapter implements Map<
                 }
             } else {
                 // Coerce the value to the requested type
-                if (type == Boolean.class
+                if (type == String.class) {
+                    coercedValue = value.toString();
+                } else if (type == Boolean.class
                     || type == Boolean.TYPE) {
                     coercedValue = Boolean.parseBoolean(value.toString());
                 } else if (type == Character.class
@@ -910,8 +914,18 @@ public class BeanAdapter implements Map<
                     } else {
                         coercedValue = Double.parseDouble(value.toString());
                     }
-                } else if (type == String.class) {
-                    coercedValue = value.toString();
+                } else if (type == BigInteger.class) {
+                    if (value instanceof Number) {
+                        coercedValue = new BigInteger(((Number)value).toString());
+                    } else {
+                        coercedValue = new BigInteger(value.toString());
+                    }
+                } else if (type == BigDecimal.class) {
+                    if (value instanceof Number) {
+                        coercedValue = new BigDecimal(((Number)value).toString());
+                    } else {
+                        coercedValue = new BigDecimal(value.toString());
+                    }
                 } else {
                     throw new IllegalArgumentException("Unable to coerce " + value.getClass().getName()
                         + " to " + type + ".");

Modified: pivot/trunk/core/test/org/apache/pivot/beans/test/BeanAdapterTest.java
URL: http://svn.apache.org/viewvc/pivot/trunk/core/test/org/apache/pivot/beans/test/BeanAdapterTest.java?rev=1094792&r1=1094791&r2=1094792&view=diff
==============================================================================
--- pivot/trunk/core/test/org/apache/pivot/beans/test/BeanAdapterTest.java (original)
+++ pivot/trunk/core/test/org/apache/pivot/beans/test/BeanAdapterTest.java Mon Apr 18 22:08:52 2011
@@ -24,6 +24,7 @@ import java.io.StringWriter;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.math.MathContext;
+import java.util.Date;
 import java.util.Random;
 
 import org.apache.pivot.json.JSONSerializer;
@@ -45,12 +46,14 @@ public class BeanAdapterTest {
 
     @BeforeClass
     public static void setUpClass() throws Exception {
+        System.out.println(BeanAdapterTest.class.getName() + ": Starting tests at " + new Date());
         rnd = new Random();
     }
 
     @AfterClass
     public static void tearDownClass() throws Exception {
         rnd = null;
+        System.out.println(BeanAdapterTest.class.getName() + ": Ending tests at   " + new Date());
     }
 
     @Before
@@ -75,7 +78,7 @@ public class BeanAdapterTest {
         System.out.println("testSerializeBigDecimal");
 
         double random_double = rnd.nextDouble();
-        System.out.println("random_double = " + random_double);
+        System.out.println("random_double = " + random_double + " (value will be truncated to 4 digits in this test)");
 
         src_test.setBd(new BigDecimal(random_double, new MathContext(4)));
 
@@ -88,7 +91,7 @@ public class BeanAdapterTest {
         }
 
         System.out.println("json string from src_test = " + writer.toString());
-        System.out.println("src_test.getBd() = " + src_test.getBd());
+        System.out.println("src_test.getBd()    = " + src_test.getBd());
 
         reader = new StringReader(writer.toString());
 
@@ -123,7 +126,7 @@ public class BeanAdapterTest {
         }
 
         System.out.println("json string from src_test = " + writer.toString());
-        System.out.println("src_test.getBi() = " + src_test.getBi());
+        System.out.println("src_test.getBi()    = " + src_test.getBi());
 
         reader = new StringReader(writer.toString());
 
@@ -145,7 +148,7 @@ public class BeanAdapterTest {
         System.out.println("testSerializeString");
 
         String value = "A test String";
-        System.out.println("value = \"" + value + "\"");
+        System.out.println("String value = \"" + value + "\"");
 
         src_test.setString(value);
 
@@ -158,7 +161,7 @@ public class BeanAdapterTest {
         }
 
         System.out.println("json string from src_test = " + writer.toString());
-        System.out.println("src_test.getString() = \"" + src_test.getString() + "\"");
+        System.out.println("src_test.getString()    = \"" + src_test.getString() + "\"");
 
         reader = new StringReader(writer.toString());