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