Author: ebourg
Date: Thu Feb 21 02:47:45 2008
New Revision: 629741

URL: http://svn.apache.org/viewvc?rev=629741&view=rev
Log:
Fixed the String->char conversion necessary for BeanHelper without beanutils

Modified:
    
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertyConverter.java

Modified: 
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertyConverter.java
URL: 
http://svn.apache.org/viewvc/commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertyConverter.java?rev=629741&r1=629740&r2=629741&view=diff
==============================================================================
--- 
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertyConverter.java
 (original)
+++ 
commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertyConverter.java
 Thu Feb 21 02:47:45 2008
@@ -95,6 +95,10 @@
         {
             result = toBoolean(value);
         }
+        else if (Character.class.equals(cls) || Character.TYPE.equals(cls))
+        {
+            result = toCharacter(value);
+        }
         else if (Number.class.isAssignableFrom(cls) || cls.isPrimitive())
         {
             if (Integer.class.equals(cls) || Integer.TYPE.equals(cls))
@@ -205,6 +209,29 @@
         else
         {
             throw new ConversionException("The value " + value + " can't be 
converted to a Boolean object");
+        }
+    }
+
+    /**
+     * Convert the specified object into a Character.
+     *
+     * @param value the value to convert
+     * @return the converted value
+     * @throws ConversionException thrown if the value cannot be converted to 
a character
+     */
+    static Character toCharacter(Object value) throws ConversionException
+    {
+        if (value instanceof Character)
+        {
+            return (Character) value;
+        }
+        else if (value instanceof CharSequence && ((CharSequence) 
value).length() == 1)
+        {
+            return ((CharSequence) value).charAt(0);
+        }
+        else
+        {
+            throw new ConversionException("The value " + value + " can't be 
converted to a Character object");
         }
     }
 


Reply via email to