You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:55:20 UTC

[sling-org-apache-sling-models-impl] 07/16: SLING-3674 - avoiding duplicating code in ClassUtils

This is an automated email from the ASF dual-hosted git repository.

rombert pushed a commit to annotated tag org.apache.sling.models.impl-1.0.6
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-models-impl.git

commit f6d3d61a0b3e5c6fa2aed8e07a9a15cd58cb7209
Author: Justin Edelson <ju...@apache.org>
AuthorDate: Tue Jun 17 14:08:57 2014 +0000

    SLING-3674 - avoiding duplicating code in ClassUtils
    
    git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/models/impl@1603178 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/models/impl/ModelAdapterFactory.java     | 27 ++--------
 .../models/impl/injectors/ValueMapInjector.java    | 61 ++--------------------
 2 files changed, 10 insertions(+), 78 deletions(-)

diff --git a/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java b/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
index 483215a..effe935 100644
--- a/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
+++ b/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java
@@ -47,6 +47,7 @@ import javax.inject.Named;
 
 import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.lang.ArrayUtils;
+import org.apache.commons.lang.ClassUtils;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Deactivate;
@@ -612,29 +613,11 @@ public class ModelAdapterFactory implements AdapterFactory, Runnable {
     }
 
     private Type mapPrimitiveClasses(Type type) {
-        if (type == Integer.TYPE) {
-            return Integer.class;
-        }
-        if (type == Long.TYPE) {
-            return Long.class;
-        }
-        if (type == Boolean.TYPE) {
-            return Boolean.class;
-        }
-        if (type == Double.TYPE) {
-            return Double.class;
-        }
-        if (type == Float.TYPE) {
-            return Float.class;
-        }
-        if (type == Short.TYPE) {
-            return Short.class;
-        }
-        if (type == Character.TYPE) {
-            return Character.class;
+        if (type instanceof Class<?>) {
+            return ClassUtils.primitiveToWrapper((Class<?>) type);
+        } else {
+            return type;
         }
-
-        return type;
     }
 
     private static boolean setField(Field field, Object createdObject, Object value) {
diff --git a/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java b/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
index 1aebadd..5084686 100644
--- a/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
+++ b/src/main/java/org/apache/sling/models/impl/injectors/ValueMapInjector.java
@@ -20,6 +20,7 @@ import java.lang.reflect.AnnotatedElement;
 import java.lang.reflect.Array;
 import java.lang.reflect.Type;
 
+import org.apache.commons.lang.ClassUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Property;
@@ -63,16 +64,16 @@ public class ValueMapInjector implements InjectAnnotationProcessorFactory, Injec
                 if (clazz.isArray()) {
                     Class<?> componentType = clazz.getComponentType();
                     if (componentType.isPrimitive()) {
-                        Class<?> wrapper = getWrapperForPrimitive(componentType);
-                        if (wrapper != null) {
+                        Class<?> wrapper = ClassUtils.primitiveToWrapper(componentType);
+                        if (wrapper != componentType) {
                             Object wrapperArray = map.get(name, Array.newInstance(wrapper, 0).getClass());
                             if (wrapperArray != null) {
                                 return unwrapArray(wrapperArray, componentType);
                             }
                         }
                     } else {
-                        Class<?> primitiveType = getPrimitiveForWrapper(componentType);
-                        if (primitiveType != null) {
+                        Class<?> primitiveType = ClassUtils.wrapperToPrimitive(componentType);
+                        if (primitiveType != componentType) {
                             Object primitiveArray = map.get(name, Array.newInstance(primitiveType, 0).getClass());
                             if (primitiveArray != null) {
                                 return wrapArray(primitiveArray, componentType);
@@ -117,58 +118,6 @@ public class ValueMapInjector implements InjectAnnotationProcessorFactory, Injec
         return wrapperArray;
     }
 
-    private Class<?> getPrimitiveForWrapper(Class<?> clazz) {
-        if (clazz == Integer.class) {
-            return Integer.TYPE;
-        }
-        if (clazz == Long.class) {
-            return Long.TYPE;
-        }
-        if (clazz == Boolean.class) {
-            return Boolean.TYPE;
-        }
-        if (clazz == Double.class) {
-            return Double.TYPE;
-        }
-        if (clazz == Float.class) {
-            return Float.TYPE;
-        }
-        if (clazz == Short.class) {
-            return Short.TYPE;
-        }
-        if (clazz == Character.class) {
-            return Character.TYPE;
-        }
-
-        return null;
-    }
-
-    private Class<?> getWrapperForPrimitive(Class<?> clazz) {
-        if (clazz == Integer.TYPE) {
-            return Integer.class;
-        }
-        if (clazz == Long.TYPE) {
-            return Long.class;
-        }
-        if (clazz == Boolean.TYPE) {
-            return Boolean.class;
-        }
-        if (clazz == Double.TYPE) {
-            return Double.class;
-        }
-        if (clazz == Float.TYPE) {
-            return Float.class;
-        }
-        if (clazz == Short.TYPE) {
-            return Short.class;
-        }
-        if (clazz == Character.TYPE) {
-            return Character.class;
-        }
-
-        return null;
-    }
-
     @Override
     public InjectAnnotationProcessor createAnnotationProcessor(Object adaptable, AnnotatedElement element) {
         // check if the element has the expected annotation

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <co...@sling.apache.org>.