felix-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dav...@apache.org
Subject svn commit: r1772243 - in /felix/trunk/converter/converter/src: main/java/org/apache/felix/converter/impl/ main/java/org/osgi/util/converter/ test/java/org/apache/felix/converter/impl/
Date Thu, 01 Dec 2016 18:04:25 GMT
Author: davidb
Date: Thu Dec  1 18:04:24 2016
New Revision: 1772243

URL: http://svn.apache.org/viewvc?rev=1772243&view=rev
Log:
Felix Converter - update API with changes from OSGi

Removed:
    felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/ConvertingTypeSettings.java
Modified:
    felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
    felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
    felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converting.java
    felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java
    felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
    felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java

Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java?rev=1772243&r1=1772242&r2=1772243&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
(original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/AdapterImpl.java
Thu Dec  1 18:04:24 2016
@@ -33,7 +33,6 @@ import org.osgi.util.converter.ConvertFu
 import org.osgi.util.converter.Converter;
 import org.osgi.util.converter.ConverterBuilder;
 import org.osgi.util.converter.Converting;
-import org.osgi.util.converter.ConvertingTypeSettings;
 import org.osgi.util.converter.Rule;
 import org.osgi.util.converter.TypeReference;
 import org.osgi.util.function.Function;
@@ -129,37 +128,28 @@ public class AdapterImpl implements Inte
         }
 
         @Override
-        public ConvertingTypeSettings source() {
-            return new ConvertingTypeSettings() {
-                @Override
-                public Converting asBean() {
-                    del.source().asBean();
-                    return ConvertingWrapper.this;
-                }
-
-                @Override
-                public Converting as(Class<?> type) {
-                    treatAsClass = type;
-                    del.source().as(type);
-                    return ConvertingWrapper.this;
-                }
-            };
+        public Converting sourceAsBean() {
+            del.sourceAsBean();
+            return this;
+        }
+
+        @Override
+        public Converting sourceAs(Class<?> type) {
+            treatAsClass = type;
+            del.sourceAs(type);
+            return this;
         }
 
         @Override
-        public ConvertingTypeSettings target() {
-            return new ConvertingTypeSettings() {
-                @Override
-                public Converting asBean() {
-                    return ConvertingWrapper.this;
-                }
-
-                @Override
-                public Converting as(Class<?> cls) {
-                    del.target().as(cls);
-                    return ConvertingWrapper.this;
-                }
-            };
+        public Converting targetAsBean() {
+            // TODO not yet implemented
+            return this;
+        }
+
+        @Override
+        public Converting targetAs(Class<?> cls) {
+            del.targetAs(cls);
+            return this;
         }
 
         @SuppressWarnings("unchecked")

Modified: felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java?rev=1772243&r1=1772242&r2=1772243&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
(original)
+++ felix/trunk/converter/converter/src/main/java/org/apache/felix/converter/impl/ConvertingImpl.java
Thu Dec  1 18:04:24 2016
@@ -45,7 +45,6 @@ import org.osgi.dto.DTO;
 import org.osgi.util.converter.ConversionException;
 import org.osgi.util.converter.Converter;
 import org.osgi.util.converter.Converting;
-import org.osgi.util.converter.ConvertingTypeSettings;
 import org.osgi.util.converter.TypeReference;
 
 public class ConvertingImpl implements Converting, InternalConverting {
@@ -78,37 +77,27 @@ public class ConvertingImpl implements C
     }
 
     @Override
-    public ConvertingTypeSettings source() {
-        return new ConvertingTypeSettings() {
-            @Override
-            public Converting asBean() {
-                sourceAsJavaBean = true;
-                return ConvertingImpl.this;
-            }
-
-            @Override
-            public Converting as(Class<?> type) {
-                sourceAsClass = type;
-                return ConvertingImpl.this;
-            }
-        };
+    public Converting sourceAsBean() {
+        sourceAsJavaBean = true;
+        return this;
+    }
+
+    @Override
+    public Converting sourceAs(Class<?> cls) {
+        sourceAsClass = cls;
+        return this;
     }
 
     @Override
-    public ConvertingTypeSettings target() {
-        return new ConvertingTypeSettings() {
-            @Override
-            public Converting asBean() {
-                // TODO not yet implemented
-                return ConvertingImpl.this;
-            }
-
-            @Override
-            public Converting as(Class<?> cls) {
-                targetAsClass = cls;
-                return ConvertingImpl.this;
-            }
-        };
+    public Converting targetAsBean() {
+        // TODO not yet implemented
+        return this;
+    }
+
+    @Override
+    public Converting targetAs(Class<?> cls) {
+        targetAsClass = cls;
+        return this;
     }
 
     @Override
@@ -218,7 +207,7 @@ public class ConvertingImpl implements C
             return res2;
         } else {
             if (defaultValue != null)
-                return converter.convert(defaultValue).source().as(sourceAsClass).target().as(targetAsClass).to(targetActualClass);
+                return converter.convert(defaultValue).sourceAs(sourceAsClass).targetAs(targetAsClass).to(targetActualClass);
             else
                 return null;
         }

Modified: felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converting.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converting.java?rev=1772243&r1=1772242&r2=1772243&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converting.java
(original)
+++ felix/trunk/converter/converter/src/main/java/org/osgi/util/converter/Converting.java
Thu Dec  1 18:04:24 2016
@@ -51,18 +51,44 @@ public interface Converting {
 	Converting defaultValue(Object defVal);
 
 	/**
-	 * Provide additional information on how to treat the source object.
+	 * Treat the source object as the specified class. This can be used to
+	 * disambiguate a type if it implements multiple interfaces or extends
+	 * multiple classes.
+	 *
+	 * @param cls The class to treat the object as.
+	 * @return The current {@code Converting} object so that additional calls
+	 *         can be chained.
+	 */
+	Converting sourceAs(Class< ? > cls);
+
+	/**
+	 * Treat the source object as a JavaBean. By default objects will not be
+	 * treated as JavaBeans, this has to be specified using this method.
 	 *
-	 * @return A {@link ConvertingTypeSettings} to provide the details.
+	 * @return The current {@code Converting} object so that additional calls
+	 *         can be chained.
+	 */
+	Converting sourceAsBean();
+
+	/**
+	 * Treat the target object as the specified class. This can be used to
+	 * disambiguate a type if it implements multiple interfaces or extends
+	 * multiple classes.
+	 *
+	 * @param cls The class to treat the object as.
+	 * @return The current {@code Converting} object so that additional calls
+	 *         can be chained.
 	 */
-	ConvertingTypeSettings source();
+	Converting targetAs(Class< ? > cls);
 
 	/**
-	 * Provide additional information on how to treat the target type.
+	 * Treat the target object as a JavaBean. By default objects will not be
+	 * treated as JavaBeans, this has to be specified using this method.
 	 *
-	 * @return A {@link ConvertingTypeSettings} to provide the details.
+	 * @return The current {@code Converting} object so that additional calls
+	 *         can be chained.
 	 */
-	ConvertingTypeSettings target();
+	Converting targetAsBean();
 
 	/**
 	 * Specify the target object type for the conversion as a class object.
@@ -73,6 +99,15 @@ public interface Converting {
 	<T> T to(Class<T> cls);
 
 	/**
+	 * Specify the target object type as a Java Reflection Type object.
+	 *
+	 * @param type A Type object to represent the target type to be converted
+	 *            to.
+	 * @return The converted object.
+	 */
+	Object to(Type type);
+
+	/**
 	 * Specify the target object type as a {@link TypeReference}. If the target
 	 * class carries generics information a TypeReference should be used as this
 	 * preserves the generic information whereas a Class object has this
@@ -87,13 +122,4 @@ public interface Converting {
 	 * @return The converted object.
 	 */
 	<T> T to(TypeReference<T> ref);
-
-	/**
-	 * Specify the target object type as a Java Reflection Type object.
-	 *
-	 * @param type A Type object to represent the target type to be converted
-	 *            to.
-	 * @return The converted object.
-	 */
-	Object to(Type type);
 }

Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java?rev=1772243&r1=1772242&r2=1772243&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java
(original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterBuilderTest.java
Thu Dec  1 18:04:24 2016
@@ -194,9 +194,9 @@ public class ConverterBuilderTest {
         mb.beanVal = "Hello";
 
         assertNull(converter.convert(mb).to(MyCustomDTO.class).field);
-        assertNull(converter.convert(mb).source().as(MyIntf.class).to(MyCustomDTO.class).field);
+        assertNull(converter.convert(mb).sourceAs(MyIntf.class).to(MyCustomDTO.class).field);
         assertEquals("Hello", cc.convert(mb).to(MyCustomDTO.class).field);
-        assertEquals("17", cc.convert(mb).source().as(MyIntf.class).to(MyCustomDTO.class).field);
+        assertEquals("17", cc.convert(mb).sourceAs(MyIntf.class).to(MyCustomDTO.class).field);
     }
 
     @Test

Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java?rev=1772243&r1=1772242&r2=1772243&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
(original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterMapTest.java
Thu Dec  1 18:04:24 2016
@@ -84,7 +84,7 @@ public class ConverterMapTest {
         mb.setNumbers(new int[] {3,2,1});
 
         @SuppressWarnings("rawtypes")
-        Map m = converter.convert(mb).source().asBean().to(Map.class);
+        Map m = converter.convert(mb).sourceAsBean().to(Map.class);
         assertEquals(5, m.size());
         assertEquals("You", m.get("me"));
         assertTrue((boolean) m.get("f"));
@@ -105,7 +105,7 @@ public class ConverterMapTest {
         ConverterBuilder cb = new StandardConverter().newConverterBuilder();
         cb.rule(Date.class, String.class, v -> sdf.format(v), v -> sdf.parse(v));
         Converter ca = cb.build();
-        Map<String, String> m = ca.convert(mb).source().asBean().to(new TypeReference<Map<String,
String>>(){});
+        Map<String, String> m = ca.convert(mb).sourceAsBean().to(new TypeReference<Map<String,
String>>(){});
         assertEquals("true", m.get("enabled"));
         assertEquals(expectedDate, m.get("startDate"));
     }

Modified: felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java
URL: http://svn.apache.org/viewvc/felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java?rev=1772243&r1=1772242&r2=1772243&view=diff
==============================================================================
--- felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java
(original)
+++ felix/trunk/converter/converter/src/test/java/org/apache/felix/converter/impl/ConverterTest.java
Thu Dec  1 18:04:24 2016
@@ -501,7 +501,7 @@ public class ConverterTest {
     @Test
     public void testMap2DTOView() {
         Map<String, Object> src = Collections.singletonMap("pong", 42);
-        MyDTOWithMethods dto = converter.convert(src).target().as(MyDTO.class).to(MyDTOWithMethods.class);
+        MyDTOWithMethods dto = converter.convert(src).targetAs(MyDTO.class).to(MyDTOWithMethods.class);
         assertEquals(42, dto.pong);
     }
 
@@ -591,7 +591,7 @@ public class ConverterTest {
         mb.beanVal = "Hello";
 
         assertEquals(Collections.singletonMap("value", "Hello"),
-                converter.convert(mb).source().asBean().to(Map.class));
+                converter.convert(mb).sourceAsBean().to(Map.class));
     }
 
     @Test
@@ -601,7 +601,7 @@ public class ConverterTest {
         mb.beanVal = "Hello";
 
         assertEquals(17,
-                converter.convert(mb).source().as(MyIntf.class).to(Map.class).get("value"));
+                converter.convert(mb).sourceAs(MyIntf.class).to(Map.class).get("value"));
     }
 
     @Test
@@ -611,7 +611,7 @@ public class ConverterTest {
         mb.beanVal = "Hello";
 
         assertEquals(Collections.singletonMap("value", "Hello"),
-                converter.convert(mb).source().asBean().to(Map.class));
+                converter.convert(mb).sourceAsBean().to(Map.class));
     }
 
     @Test



Mime
View raw message