You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2010/03/01 04:13:39 UTC
svn commit: r917365 - in /ofbiz/trunk/framework/base/src/org/ofbiz/base:
conversion/CollectionConverters.java util/test/ObjectTypeTests.java
Author: doogie
Date: Mon Mar 1 03:13:37 2010
New Revision: 917365
URL: http://svn.apache.org/viewvc?rev=917365&view=rev
Log:
BUG FIX: Add array->List converter.
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/ObjectTypeTests.java
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java?rev=917365&r1=917364&r2=917365&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/CollectionConverters.java Mon Mar 1 03:13:37 2010
@@ -18,6 +18,7 @@
*******************************************************************************/
package org.ofbiz.base.conversion;
+import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@@ -28,9 +29,39 @@
import org.ofbiz.base.util.ObjectType;
import org.ofbiz.base.util.StringUtil;
+import org.ofbiz.base.util.UtilGenerics;
+import org.ofbiz.base.util.UtilValidate;
/** Collection Converter classes. */
public class CollectionConverters implements ConverterLoader {
+ public static class ArrayCreator implements ConverterCreator, ConverterLoader {
+ public void loadConverters() {
+ Converters.registerCreator(this);
+ }
+
+ public <S, T> Converter<S, T> createConverter(Class<S> sourceClass, Class<T> targetClass) {
+ if (!sourceClass.isArray() || targetClass != List.class) {
+ return null;
+ }
+ return UtilGenerics.cast(new ArrayClassToList<S, T>(sourceClass, targetClass));
+ }
+ }
+
+ private static class ArrayClassToList<S, T> extends AbstractConverter<S, T> {
+ public ArrayClassToList(Class<S> sourceClass, Class<T> targetClass) {
+ super(sourceClass, targetClass);
+ }
+
+ public T convert(S obj) throws ConversionException {
+ List<Object> list = FastList.newInstance();
+ int len = Array.getLength(obj);
+ for (int i = 0; i < len; i++) {
+ list.add(Array.get(obj, i));
+ }
+ return UtilGenerics.<T>cast(list);
+ }
+ }
+
public static class ArrayToList<T> extends AbstractConverter<T[], List<T>> {
public ArrayToList() {
super(Object[].class, List.class);
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/ObjectTypeTests.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/ObjectTypeTests.java?rev=917365&r1=917364&r2=917365&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/ObjectTypeTests.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/test/ObjectTypeTests.java Mon Mar 1 03:13:37 2010
@@ -192,7 +192,7 @@
}
public void testArray() throws GeneralException {
- //BUG simpleTypeConvertTestSingleMulti("array->List", new Object[] {"one", "two", "three"}, new String[] {"List", "java.util.List"}, list);
+ simpleTypeConvertTestSingleMulti("array->List", new Object[] {"one", "two", "three"}, new String[] {"List", "java.util.List"}, list);
}
public void testString() throws GeneralException, Exception {