Author: justin
Date: Thu Dec 19 20:54:13 2013
New Revision: 1552422

URL: http://svn.apache.org/r1552422
Log:
correctly handling method injection of primitives

Modified:
    
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java
    
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/ResourceModelInterfacesTest.java
    
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/SimplePropertyModel.java

Modified: 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java?rev=1552422&r1=1552421&r2=1552422&view=diff
==============================================================================
--- 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java
 (original)
+++ 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/main/java/org/apache/sling/yamf/impl/YamfAdapterFactory.java
 Thu Dec 19 20:54:13 2013
@@ -535,7 +535,9 @@ public class YamfAdapterFactory implemen
     }
 
     private boolean setMethod(Method method, Map<Method, Object> methods, 
Object value) {
-        if (value != null && method.getReturnType().isInstance(value)) {
+        if (value != null
+                && (isAcceptableType(
+                        method.getReturnType(), value))) {
             methods.put(method, value);
             return true;
         } else {
@@ -543,6 +545,36 @@ public class YamfAdapterFactory implemen
         }
     }
 
+    private boolean isAcceptableType(Class<?> type, Object value) {
+        if (type.isInstance(value)) {
+            return true;
+        }
+        
+        if (type == Integer.TYPE) {
+            return Integer.class.isInstance(value);
+        }
+        if (type == Long.TYPE) {
+            return Long.class.isInstance(value);
+        }
+        if (type == Boolean.TYPE) {
+            return Boolean.class.isInstance(value);
+        }
+        if (type == Double.TYPE) {
+            return Double.class.isInstance(value);
+        }
+        if (type == Float.TYPE) {
+            return Float.class.isInstance(value);
+        }
+        if (type == Short.TYPE) {
+            return Short.class.isInstance(value);
+        }
+        if (type == Character.TYPE) {
+            return Character.class.isInstance(value);
+        }
+
+        return false;
+    }
+
     @Activate
     protected void activate(final ComponentContext ctx) throws 
InvalidSyntaxException {
         this.bundleContext = ctx.getBundleContext();

Modified: 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/ResourceModelInterfacesTest.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/ResourceModelInterfacesTest.java?rev=1552422&r1=1552421&r2=1552422&view=diff
==============================================================================
--- 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/ResourceModelInterfacesTest.java
 (original)
+++ 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/impl/ResourceModelInterfacesTest.java
 Thu Dec 19 20:54:13 2013
@@ -49,6 +49,7 @@ public class ResourceModelInterfacesTest
         Map<String, Object> map = new HashMap<String, Object>();
         map.put("first", "first-value");
         map.put("third", "third-value");
+        map.put("fourth", true);
         ValueMap vm = new ValueMapDecorator(map);
 
         Resource res = mock(Resource.class);
@@ -59,6 +60,7 @@ public class ResourceModelInterfacesTest
         assertEquals("first-value", model.getFirst());
         assertNull(model.getSecond());
         assertEquals("third-value", model.getThirdProperty());
+        assertTrue(model.isFourth());
     }
 
     @Test

Modified: 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/SimplePropertyModel.java
URL: 
http://svn.apache.org/viewvc/sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/SimplePropertyModel.java?rev=1552422&r1=1552421&r2=1552422&view=diff
==============================================================================
--- 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/SimplePropertyModel.java
 (original)
+++ 
sling/whiteboard/justin/yamf/org.apache.sling.yamf.impl/src/test/java/org/apache/sling/yamf/testmodels/interfaces/SimplePropertyModel.java
 Thu Dec 19 20:54:13 2013
@@ -36,5 +36,8 @@ public interface SimplePropertyModel {
     @Inject
     @Named("third")
     public String getThirdProperty();
+    
+    @Inject
+    public boolean isFourth();
 
 }


Reply via email to