Skip to content

Commit

Permalink
GROOVY-7853: o.c.g.r.t.DefaultTypeTransformation does not apply the r…
Browse files Browse the repository at this point in the history
…ight toString on primitve arrays when transforming to String (don't use ShortTypeHandling)
  • Loading branch information
paulk-asert committed Jun 19, 2016
1 parent 5c91415 commit 752b3e4
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 21 deletions.
Expand Up @@ -218,7 +218,7 @@ public static Object castToType(Object object, Class type) {
} 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) {
Expand Down
Expand Up @@ -43,15 +43,17 @@ public static Class castToClass(Object object) {

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();
}

Expand Down
Expand Up @@ -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 == '[]'

Expand All @@ -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]]'
}
}
Expand Down

0 comments on commit 752b3e4

Please sign in to comment.