You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by eb...@apache.org on 2008/02/21 11:47:59 UTC

svn commit: r629741 - /commons/proper/configuration/branches/configuration2_experimental/src/main/java/org/apache/commons/configuration2/PropertyConverter.java

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