commons-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From henn...@apache.org
Subject svn commit: r1534376 - in /commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE: ./ src/changes/ src/main/java/org/apache/commons/configuration/ src/test/java/org/apache/commons/configuration/
Date Mon, 21 Oct 2013 21:14:18 GMT
Author: henning
Date: Mon Oct 21 21:14:18 2013
New Revision: 1534376

URL: http://svn.apache.org/r1534376
Log:
Backport CONFIGURATION-550 from r1502844.


Modified:
    commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/RELEASE-NOTES.txt
    commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/changes/changes.xml
    commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/main/java/org/apache/commons/configuration/PropertyConverter.java
    commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java

Modified: commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/RELEASE-NOTES.txt?rev=1534376&r1=1534375&r2=1534376&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/RELEASE-NOTES.txt
(original)
+++ commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/RELEASE-NOTES.txt
Mon Oct 21 21:14:18 2013
@@ -36,6 +36,10 @@ BUG FIXES IN 1.10
   XMLConfiguration now adds attributes of elements defining a list to
   all list nodes.
 
+* [CONFIGURATION-550] Missing conversion to char
+
+  Conversion to Character is now supported.
+
 * [CONFIGURATION-555] XMLConfiguration doesn't seem to be preserving whitespace 
                       for the current node where xml:space="preserve" is set.
 

Modified: commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/changes/changes.xml?rev=1534376&r1=1534375&r2=1534376&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/changes/changes.xml
(original)
+++ commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/changes/changes.xml
Mon Oct 21 21:14:18 2013
@@ -31,11 +31,14 @@
         XMLConfiguration now adds attributes of elements defining a list to
         all list nodes.
       </action>
-       <action dev="oheger" type="update" issue="CONFIGURATION-555">
-         Fixed a bug in the handling of the xml:space attribute in
-         XMLConfiguration. The attribute is now also applied to the current
-         element, not only to sub elements.
-       </action>
+      <action dev="oheger" type="add" issue="CONFIGURATION-550">
+        Conversion to Character is now supported.
+      </action>
+      <action dev="oheger" type="update" issue="CONFIGURATION-555">
+        Fixed a bug in the handling of the xml:space attribute in
+        XMLConfiguration. The attribute is now also applied to the current
+        element, not only to sub elements.
+      </action>
       <action dev="henning" type="fix" issue="CONFIGURATION-556">
         In 1.7 and before, any change to the system properties was
         immediately reflected in a SystemConfiguration object. This

Modified: commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/main/java/org/apache/commons/configuration/PropertyConverter.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/main/java/org/apache/commons/configuration/PropertyConverter.java?rev=1534376&r1=1534375&r2=1534376&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/main/java/org/apache/commons/configuration/PropertyConverter.java
(original)
+++ commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/main/java/org/apache/commons/configuration/PropertyConverter.java
Mon Oct 21 21:14:18 2013
@@ -106,6 +106,10 @@ public final class PropertyConverter
         {
             return toBoolean(value);
         }
+        else if (Character.class.equals(cls) || Character.TYPE.equals(cls))
+        {
+            return toCharacter(value);
+        }
         else if (Number.class.isAssignableFrom(cls) || cls.isPrimitive())
         {
             if (Integer.class.equals(cls) || Integer.TYPE.equals(cls))
@@ -213,6 +217,32 @@ public final class PropertyConverter
     }
 
     /**
+     * Converts the specified value object to a {@code Character}. This method
+     * converts the passed in object to a string. If the string has exactly one
+     * character, this character is returned as result. Otherwise, conversion
+     * fails.
+     *
+     * @param value the value to be converted
+     * @return the resulting {@code Character} object
+     * @throws ConversionException if the conversion is not possible
+     */
+    public static Character toCharacter(Object value) throws ConversionException
+    {
+        String strValue = String.valueOf(value);
+        if (strValue.length() == 1)
+        {
+            return Character.valueOf(strValue.charAt(0));
+        }
+        else
+        {
+            throw new ConversionException(
+                    String.format(
+                            "The value '%s' cannot be converted to a Character object!",
+                            strValue));
+        }
+    }
+
+    /**
      * Convert the specified object into a Byte.
      *
      * @param value the value to convert

Modified: commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java
URL: http://svn.apache.org/viewvc/commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java?rev=1534376&r1=1534375&r2=1534376&view=diff
==============================================================================
--- commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java
(original)
+++ commons/proper/configuration/branches/CONFIGURATION_1_X_MAINTENANCE/src/test/java/org/apache/commons/configuration/TestPropertyConverter.java
Mon Oct 21 21:14:18 2013
@@ -349,4 +349,42 @@ public class TestPropertyConverter
         assertEquals("Wrong conversion result", value,
                 PropertyConverter.to(String.class, value, null));
     }
+
+    /**
+     * Tests whether a conversion to character is possible.
+     */
+    @Test
+    public void testToCharSuccess()
+    {
+        assertEquals("Wrong conversion result", Character.valueOf('t'),
+                PropertyConverter.to(Character.class, "t", null));
+    }
+
+    /**
+     * Tests whether other objects implementing a toString() method can be
+     * converted to character.
+     */
+    @Test
+    public void testToCharViaToString()
+    {
+        Object value = new Object()
+        {
+            @Override
+            public String toString()
+            {
+                return "X";
+            }
+        };
+        assertEquals("Wrong conversion result", Character.valueOf('X'),
+                PropertyConverter.to(Character.TYPE, value, null));
+    }
+
+    /**
+     * Tests a failed conversion to character.
+     */
+    @Test(expected = ConversionException.class)
+    public void testToCharFailed()
+    {
+        PropertyConverter.to(Character.TYPE, "FF", null);
+    }
 }



Mime
View raw message