Author: davidb
Date: Sun Jun 26 15:30:50 2016
New Revision: 1750252

URL: http://svn.apache.org/viewvc?rev=1750252&view=rev
Log:
Felix converter service - additional Character conversions

Modified:
    
felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
    
felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java

Modified: 
felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java?rev=1750252&r1=1750251&r2=1750252&view=diff
==============================================================================
--- 
felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
 (original)
+++ 
felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
 Sun Jun 26 15:30:50 2016
@@ -352,6 +352,14 @@ public class ConvertingImpl implements C
         } else if (Character.class.equals(targetCls)) {
             if (object instanceof Boolean) {
                 return ((Boolean) object).booleanValue() ? 
Character.valueOf((char) 1) : Character.valueOf((char) 0);
+            } else if (object instanceof Number) {
+                return Character.valueOf((char) ((Number) object).intValue());
+            } else {
+                String v = converter.convert(object).toString();
+                if (v == null)
+                    return 0;
+                else
+                    return v.length() > 0 ? v.charAt(0) : 0;
             }
         } else if (Integer.class.equals(targetCls)) {
             if (object instanceof Boolean) {

Modified: 
felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java?rev=1750252&r1=1750251&r2=1750252&view=diff
==============================================================================
--- 
felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java
 (original)
+++ 
felix/trunk/converter/src/test/java/org/apache/felix/converter/impl/ConverterServiceTest.java
 Sun Jun 26 15:30:50 2016
@@ -104,7 +104,9 @@ public class ConverterServiceTest {
 
         assertEquals(Integer.valueOf(123), 
converter.convert("123").to(Integer.class));
         assertEquals(Long.valueOf(123), 
converter.convert("123").to(Long.class));
-//        assertEquals(Character.valueOf(123), 
c.convert("123").to(Character.class));
+        assertEquals('1', (char) converter.convert("123").to(Character.class));
+        assertEquals('Q', (char) 
converter.convert(null).defaultValue('Q').to(Character.class));
+        assertEquals((char) 123, (char) 
converter.convert(123L).to(Character.class));
         assertEquals(Byte.valueOf((byte) 123), 
converter.convert("123").to(Byte.class));
         assertEquals(Float.valueOf("12.3"), 
converter.convert("12.3").to(Float.class));
         assertEquals(Double.valueOf("12.3"), 
converter.convert("12.3").to(Double.class));


Reply via email to