Author: davidb Date: Thu Jun 23 15:09:29 2016 New Revision: 1749915 URL: http://svn.apache.org/viewvc?rev=1749915&view=rev Log: Support handling of defaultValue()
Modified: felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java 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/AdapterImpl.java URL: http://svn.apache.org/viewvc/felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java?rev=1749915&r1=1749914&r2=1749915&view=diff ============================================================================== --- felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java (original) +++ felix/trunk/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java Thu Jun 23 15:09:29 2016 @@ -89,7 +89,7 @@ public class AdapterImpl implements Adap @Override public Converting defaultValue(Object defVal) { - // TODO Auto-generated method stub + del.defaultValue(defVal); return this; } 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=1749915&r1=1749914&r2=1749915&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 Thu Jun 23 15:09:29 2016 @@ -69,8 +69,9 @@ public class ConvertingImpl implements C interfaceImplementations = Collections.unmodifiableMap(m); } - private Converter converter; - private final Object object; + private volatile Converter converter; + private volatile Object object; + private volatile Object defaultValue; ConvertingImpl(Converter c, Object obj) { converter = c; @@ -79,7 +80,11 @@ public class ConvertingImpl implements C @Override public Converting defaultValue(Object defVal) { - // TODO Auto-generated method stub + if (object == null) + object = defVal; + else + defaultValue = defVal; + return this; } @@ -148,7 +153,10 @@ public class ConvertingImpl implements C if (res2 != null) { return res2; } else { - return null; + if (defaultValue != null) + return converter.convert(defaultValue).to(targetCls); + else + return null; } } 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=1749915&r1=1749914&r2=1749915&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 Thu Jun 23 15:09:29 2016 @@ -332,6 +332,12 @@ public class ConverterServiceTest { assertEquals(zdt, zdt2); } + @Test + public void testDefaultValue() { + long l = converter.convert(null).defaultValue("12").to(Long.class); + assertEquals(12L, l); + } + static class MyClass2 { private final String value; public MyClass2(String v) {