rdonkin 2003/03/26 11:51:46
Modified: beanutils/src/java/org/apache/commons/beanutils
BeanUtilsBean.java
beanutils/src/test/org/apache/commons/beanutils
BeanUtilsTestCase.java
Log:
Made BeanUtils.getArrayProperty conversions use ConvertUtils (rather than just
toString). This enhancement is bug #17663.
Revision Changes Path
1.4 +8 -6
jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/BeanUtilsBean.java
Index: BeanUtilsBean.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/beanutils/src/java/org/apache/commons/beanutils/BeanUtilsBean.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- BeanUtilsBean.java 20 Mar 2003 20:12:24 -0000 1.3
+++ BeanUtilsBean.java 26 Mar 2003 19:51:46 -0000 1.4
@@ -547,7 +547,8 @@
if (item == null) {
values.add((String) null);
} else {
- values.add(item.toString());
+ // convert to string using convert utils
+ values.add(getConvertUtils().convert(item));
}
}
return ((String[]) values.toArray(new String[values.size()]));
@@ -559,7 +560,8 @@
if (item == null) {
results[i] = null;
} else {
- results[i] = item.toString();
+ // convert to string using convert utils
+ results[i] = getConvertUtils().convert(item);
}
}
return (results);
1.24 +31 -4
jakarta-commons/beanutils/src/test/org/apache/commons/beanutils/BeanUtilsTestCase.java
Index: BeanUtilsTestCase.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/beanutils/src/test/org/apache/commons/beanutils/BeanUtilsTestCase.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- BeanUtilsTestCase.java 15 Mar 2003 11:38:11 -0000 1.23
+++ BeanUtilsTestCase.java 26 Mar 2003 19:51:46 -0000 1.24
@@ -1293,6 +1293,33 @@
}
}
+ public void testArrayPropertyConversion() throws Exception {
+ BeanUtilsBean beanUtils = new BeanUtilsBean(
+ new ConvertUtilsBean(),
+ new PropertyUtilsBean());
+ beanUtils.getConvertUtils().register(
+ new Converter () {
+ public Object convert(Class type, Object value) {
+ return "Spam, spam, spam, spam!";
+ }
+ },
+ String.class);
+
+ TestBean bean = new TestBean();
+ String [] results = beanUtils.getArrayProperty(bean, "intArray");
+
+ int[] values = bean.getIntArray();
+ assertEquals(
+ "Converted array size not equal to property array size.",
+ results.length,
+ values.length);
+ for (int i=0, size=values.length ; i<size; i++) {
+ assertEquals(
+ "Value " + i + " incorrectly converted ",
+ "Spam, spam, spam, spam!",
+ results[i]);
+ }
+ }
// Ensure that the actual int[] matches the expected int[]
protected void checkIntArray(int actual[], int expected[]) {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]