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