You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by eb...@apache.org on 2007/04/26 02:40:18 UTC
svn commit: r532554 -
/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/beanutils/ConfigurationDynaBean.java
Author: ebourg
Date: Wed Apr 25 17:40:17 2007
New Revision: 532554
URL: http://svn.apache.org/viewvc?view=rev&rev=532554
Log:
Code simplification in ConfigurationDynaBean
ConfigurationDynaBean.set(String, Object) supports Collection values
Fixed a potential ClassCastException in ConfigurationDynaBean(String, int, Object) for arrays of primitives
Modified:
jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/beanutils/ConfigurationDynaBean.java
Modified: jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/beanutils/ConfigurationDynaBean.java
URL: http://svn.apache.org/viewvc/jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/beanutils/ConfigurationDynaBean.java?view=diff&rev=532554&r1=532553&r2=532554
==============================================================================
--- jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/beanutils/ConfigurationDynaBean.java (original)
+++ jakarta/commons/proper/configuration/trunk/src/java/org/apache/commons/configuration/beanutils/ConfigurationDynaBean.java Wed Apr 25 17:40:17 2007
@@ -17,6 +17,8 @@
package org.apache.commons.configuration.beanutils;
+import java.lang.reflect.Array;
+import java.util.Collection;
import java.util.Iterator;
import java.util.List;
@@ -26,7 +28,6 @@
import org.apache.commons.configuration.ConfigurationMap;
import org.apache.commons.configuration.ConversionException;
import org.apache.commons.configuration.SubsetConfiguration;
-import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -65,6 +66,7 @@
/**
* Creates a new instance of <code>ConfigurationDynaBean</code> and sets
* the configuration this bean is associated with.
+ *
* @param configuration the configuration
*/
public ConfigurationDynaBean(Configuration configuration)
@@ -88,85 +90,21 @@
throw new NullPointerException("Error trying to set property to null.");
}
- if (value instanceof List)
+ if (value instanceof Collection)
{
- List list = (List) value;
- Iterator iterator = list.iterator();
+ Collection collection = (Collection) value;
+ Iterator iterator = collection.iterator();
while (iterator.hasNext())
{
getConfiguration().addProperty(name, iterator.next());
}
}
- else if (value instanceof int[])
+ else if (value.getClass().isArray())
{
- int[] array = (int[]) value;
- for (int i = 0; i < array.length; i++)
+ int length = Array.getLength(value);
+ for (int i = 0; i < length; i++)
{
- getConfiguration().addProperty(name, new Integer(array[i]));
- }
- }
- else if (value instanceof boolean[])
- {
- boolean[] array = (boolean[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, BooleanUtils.toBooleanObject(array[i]));
- }
- }
- else if (value instanceof char[])
- {
- char[] array = (char[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, new Character(array[i]));
- }
- }
- else if (value instanceof byte[])
- {
- byte[] array = (byte[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, new Byte(array[i]));
- }
- }
- else if (value instanceof short[])
- {
- short[] array = (short[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, new Short(array[i]));
- }
- }
- else if (value instanceof long[])
- {
- long[] array = (long[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, new Long(array[i]));
- }
- }
- else if (value instanceof float[])
- {
- float[] array = (float[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, new Float(array[i]));
- }
- }
- else if (value instanceof double[])
- {
- double[] array = (double[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, new Double(array[i]));
- }
- }
- else if (value instanceof Object[])
- {
- Object[] array = (Object[]) value;
- for (int i = 0; i < array.length; i++)
- {
- getConfiguration().addProperty(name, array[i]);
+ getConfiguration().addProperty(name, Array.get(value, i));
}
}
else
@@ -275,8 +213,7 @@
}
else if (property.getClass().isArray())
{
- Object[] array = (Object[]) property;
- array[index] = value;
+ Array.set(value, index, value);
}
else if (index == 0)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org