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


Reply via email to