You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@groovy.apache.org by pa...@apache.org on 2016/08/23 03:51:45 UTC

[2/2] groovy git commit: GROOVY-7853: o.c.g.r.t.DefaultTypeTransformation does not apply the right toString on primitve arrays when transforming to String (don't use ShortTypeHandling)

GROOVY-7853: o.c.g.r.t.DefaultTypeTransformation does not apply the right toString on primitve arrays when transforming to String (don't use ShortTypeHandling)


Project: http://git-wip-us.apache.org/repos/asf/groovy/repo
Commit: http://git-wip-us.apache.org/repos/asf/groovy/commit/eec3b1f3
Tree: http://git-wip-us.apache.org/repos/asf/groovy/tree/eec3b1f3
Diff: http://git-wip-us.apache.org/repos/asf/groovy/diff/eec3b1f3

Branch: refs/heads/master
Commit: eec3b1f3da081d62fdcaaa2b07a3547f4795bf7f
Parents: 20519b9
Author: paulk <pa...@asert.com.au>
Authored: Sun Jun 19 14:11:29 2016 +1000
Committer: paulk <pa...@asert.com.au>
Committed: Tue Aug 23 13:47:01 2016 +1000

----------------------------------------------------------------------
 .../typehandling/DefaultTypeTransformation.java |  2 +-
 .../runtime/typehandling/ShortTypeHandling.java | 20 ++++++++++--------
 .../groovy/swing/SwingBuilderTableTest.groovy   | 22 ++++++++++----------
 3 files changed, 23 insertions(+), 21 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/groovy/blob/eec3b1f3/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java b/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
index c57d4d4..2f4d6da 100644
--- a/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
+++ b/src/main/org/codehaus/groovy/runtime/typehandling/DefaultTypeTransformation.java
@@ -229,7 +229,7 @@ public class DefaultTypeTransformation {
         } else if (Collection.class.isAssignableFrom(type)) {
             return continueCastOnCollection(object, type);
         } else if (type == String.class) {
-            return ShortTypeHandling.castToString(object);
+            return InvokerHelper.toString(object);
         } else if (type == Character.class) {
             return ShortTypeHandling.castToChar(object);
         } else if (type == Boolean.class) {

http://git-wip-us.apache.org/repos/asf/groovy/blob/eec3b1f3/src/main/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
----------------------------------------------------------------------
diff --git a/src/main/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java b/src/main/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
index b76f0b9..b06569d 100644
--- a/src/main/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
+++ b/src/main/org/codehaus/groovy/runtime/typehandling/ShortTypeHandling.java
@@ -41,15 +41,17 @@ public class ShortTypeHandling {
 
     public static String castToString(Object object) {
         if (object==null) return null;
-        if (object instanceof boolean[]) return Arrays.toString((boolean[])object);
-        if (object instanceof byte[]) return Arrays.toString((byte[])object);
-        if (object instanceof char[]) return new String((char[])object);
-        if (object instanceof double[]) return Arrays.toString((double[])object);
-        if (object instanceof float[]) return Arrays.toString((float[])object);
-        if (object instanceof int[]) return Arrays.toString((int[])object);
-        if (object instanceof long[]) return Arrays.toString((long[])object);
-        if (object instanceof short[]) return Arrays.toString((short[])object);
-        if (object instanceof Object[]) return Arrays.toString((Object[])object);
+        if (object.getClass().isArray()) {
+            if (object instanceof boolean[]) return Arrays.toString((boolean[])object);
+            if (object instanceof byte[]) return Arrays.toString((byte[])object);
+            if (object instanceof char[]) return new String((char[])object);
+            if (object instanceof double[]) return Arrays.toString((double[])object);
+            if (object instanceof float[]) return Arrays.toString((float[])object);
+            if (object instanceof int[]) return Arrays.toString((int[])object);
+            if (object instanceof long[]) return Arrays.toString((long[])object);
+            if (object instanceof short[]) return Arrays.toString((short[])object);
+            return Arrays.toString((Object[])object);
+        }
         return object.toString();
     }
 

http://git-wip-us.apache.org/repos/asf/groovy/blob/eec3b1f3/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingBuilderTableTest.groovy
----------------------------------------------------------------------
diff --git a/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingBuilderTableTest.groovy b/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingBuilderTableTest.groovy
index 065955d..58c4399 100644
--- a/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingBuilderTableTest.groovy
+++ b/subprojects/groovy-swing/src/test/groovy/groovy/swing/SwingBuilderTableTest.groovy
@@ -314,7 +314,7 @@ class SwingBuilderTableTest extends GroovySwingTestCase {
                 t2ses = label(text: bind { table02.selectedElements })
             }
 
-            assert swing.t1e.text == '[{ATHLETEID=1, FIRSTNAME=Bob, LASTNAME=Jones, DATEOFBIRTH=1875-05-20}, {ATHLETEID=2, FIRSTNAME=Sam, LASTNAME=Wilson, DATEOFBIRTH=1876-12-15}, {ATHLETEID=3, FIRSTNAME=Jessie, LASTNAME=James, DATEOFBIRTH=1877-06-12}]'
+            assert swing.t1e.text == '[[ATHLETEID:1, FIRSTNAME:Bob, LASTNAME:Jones, DATEOFBIRTH:1875-05-20], [ATHLETEID:2, FIRSTNAME:Sam, LASTNAME:Wilson, DATEOFBIRTH:1876-12-15], [ATHLETEID:3, FIRSTNAME:Jessie, LASTNAME:James, DATEOFBIRTH:1877-06-12]]'
             assert swing.t1se.text == null
             assert swing.t1ses.text == '[]'
 
@@ -323,25 +323,25 @@ class SwingBuilderTableTest extends GroovySwingTestCase {
             assert swing.t2ses.text == '[]'
 
             swing.table01.addRowSelectionInterval(0, 0)
-            assert swing.t1se.text == '{ATHLETEID=1, FIRSTNAME=Bob, LASTNAME=Jones, DATEOFBIRTH=1875-05-20}'
-            assert swing.t1ses.text == '[{ATHLETEID=1, FIRSTNAME=Bob, LASTNAME=Jones, DATEOFBIRTH=1875-05-20}]'
+            assert swing.t1se.text == '[ATHLETEID:1, FIRSTNAME:Bob, LASTNAME:Jones, DATEOFBIRTH:1875-05-20]'
+            assert swing.t1ses.text == '[[ATHLETEID:1, FIRSTNAME:Bob, LASTNAME:Jones, DATEOFBIRTH:1875-05-20]]'
 
             swing.table02.addRowSelectionInterval(0, 0)
-            assert swing.t2se.text == '{Athlete ID=1, First Name=Bob, Last Name=Jones, Date Of Birth=1875-05-20}'
-            assert swing.t2ses.text == '[{Athlete ID=1, First Name=Bob, Last Name=Jones, Date Of Birth=1875-05-20}]'
+            assert swing.t2se.text == '[Athlete ID:1, First Name:Bob, Last Name:Jones, Date Of Birth:1875-05-20]'
+            assert swing.t2ses.text == '[[Athlete ID:1, First Name:Bob, Last Name:Jones, Date Of Birth:1875-05-20]]'
 
             swing.table01.addRowSelectionInterval(2, 2)
-            assert swing.t1se.text == '{ATHLETEID=1, FIRSTNAME=Bob, LASTNAME=Jones, DATEOFBIRTH=1875-05-20}'
-            assert swing.t1ses.text == '[{ATHLETEID=1, FIRSTNAME=Bob, LASTNAME=Jones, DATEOFBIRTH=1875-05-20}, {ATHLETEID=3, FIRSTNAME=Jessie, LASTNAME=James, DATEOFBIRTH=1877-06-12}]'
+            assert swing.t1se.text == '[ATHLETEID:1, FIRSTNAME:Bob, LASTNAME:Jones, DATEOFBIRTH:1875-05-20]'
+            assert swing.t1ses.text == '[[ATHLETEID:1, FIRSTNAME:Bob, LASTNAME:Jones, DATEOFBIRTH:1875-05-20], [ATHLETEID:3, FIRSTNAME:Jessie, LASTNAME:James, DATEOFBIRTH:1877-06-12]]'
 
             swing.table02.addRowSelectionInterval(2, 2)
-            assert swing.t2se.text == '{Athlete ID=1, First Name=Bob, Last Name=Jones, Date Of Birth=1875-05-20}'
-            assert swing.t2ses.text == '[{Athlete ID=1, First Name=Bob, Last Name=Jones, Date Of Birth=1875-05-20}, {Athlete ID=3, First Name=Jessie, Last Name=James, Date Of Birth=1877-06-12}]'
+            assert swing.t2se.text == '[Athlete ID:1, First Name:Bob, Last Name:Jones, Date Of Birth:1875-05-20]'
+            assert swing.t2ses.text == '[[Athlete ID:1, First Name:Bob, Last Name:Jones, Date Of Birth:1875-05-20], [Athlete ID:3, First Name:Jessie, Last Name:James, Date Of Birth:1877-06-12]]'
 
             swing.table01.model.setValueAt('x', 0, 0,)
             swing.table02.model.setValueAt('x', 0, 0)
-            //FIXME groovy default table model does not fire data cahgne events whe editing throught he model.
-            //assert swing.t1e.text == '[{ATHLETEID=x, FIRSTNAME=Bob, LASTNAME=Jones, DATEOFBIRTH=1875-05-20}, {ATHLETEID=2, FIRSTNAME=Sam, LASTNAME=Wilson, DATEOFBIRTH=1876-12-15}, {ATHLETEID=3, FIRSTNAME=Jessie, LASTNAME=James, DATEOFBIRTH=1877-06-12}]'
+            //FIXME groovy default table model does not fire data cahgne events when editing through the model.
+            //assert swing.t1e.text == '[[ATHLETEID:x, FIRSTNAME:Bob, LASTNAME:Jones, DATEOFBIRTH:1875-05-20], [ATHLETEID:2, FIRSTNAME:Sam, LASTNAME:Wilson, DATEOFBIRTH:1876-12-15], [ATHLETEID:3, FIRSTNAME:Jessie, LASTNAME:James, DATEOFBIRTH:1877-06-12]]'
             assert swing.t2e.text == '[[x, Bob, Jones, 1875-05-20], [2, Sam, Wilson, 1876-12-15], [3, Jessie, James, 1877-06-12]]'
         }
     }