Author: oheger Date: Wed Oct 30 20:16:39 2013 New Revision: 1537266 URL: http://svn.apache.org/r1537266 Log: Extracted a method for converting primitive types to wrapper types.
This functionality is needed by both normal and locale converters. Therefore, it is useful to have it centrally available. Modified: commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/ConvertUtils.java commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/converters/AbstractConverter.java Modified: commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/ConvertUtils.java URL: http://svn.apache.org/viewvc/commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/ConvertUtils.java?rev=1537266&r1=1537265&r2=1537266&view=diff ============================================================================== --- commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/ConvertUtils.java (original) +++ commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/ConvertUtils.java Wed Oct 30 20:16:39 2013 @@ -352,4 +352,42 @@ public class ConvertUtils { ConvertUtilsBean.getInstance().register(converter, clazz); } + + /** + * Change primitive Class types to the associated wrapper class. This is + * useful for concrete converter implementations which typically treat + * primitive types like their corresponding wrapper types. + * + * @param type The class type to check. + * @return The converted type. + * @since 1.9 + */ + // All type casts are safe because the TYPE members of the wrapper types + // return their own class. + @SuppressWarnings("unchecked") + public static <T> Class<T> primitiveToWrapper(Class<T> type) { + if (type == null || !type.isPrimitive()) { + return type; + } + + if (type == Integer.TYPE) { + return (Class<T>) Integer.class; + } else if (type == Double.TYPE) { + return (Class<T>) Double.class; + } else if (type == Long.TYPE) { + return (Class<T>) Long.class; + } else if (type == Boolean.TYPE) { + return (Class<T>) Boolean.class; + } else if (type == Float.TYPE) { + return (Class<T>) Float.class; + } else if (type == Short.TYPE) { + return (Class<T>) Short.class; + } else if (type == Byte.TYPE) { + return (Class<T>) Byte.class; + } else if (type == Character.TYPE) { + return (Class<T>) Character.class; + } else { + return type; + } + } } Modified: commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/converters/AbstractConverter.java URL: http://svn.apache.org/viewvc/commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/converters/AbstractConverter.java?rev=1537266&r1=1537265&r2=1537266&view=diff ============================================================================== --- commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/converters/AbstractConverter.java (original) +++ commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/converters/AbstractConverter.java Wed Oct 30 20:16:39 2013 @@ -21,6 +21,7 @@ import java.util.Collection; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConversionException; +import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -133,7 +134,7 @@ public abstract class AbstractConverter } Class<?> sourceType = value == null ? null : value.getClass(); - Class<T> targetType = primitive(type); + Class<T> targetType = ConvertUtils.primitiveToWrapper(type); if (log().isDebugEnabled()) { log().debug("Converting" @@ -408,40 +409,6 @@ public abstract class AbstractConverter } /** - * Change primitive Class types to the associated wrapper class. - * @param type The class type to check. - * @return The converted type. - */ - // All type casts are safe because the TYPE members of the wrapper types - // return their own class. - @SuppressWarnings("unchecked") - <T> Class<T> primitive(Class<T> type) { - if (type == null || !type.isPrimitive()) { - return type; - } - - if (type == Integer.TYPE) { - return (Class<T>) Integer.class; - } else if (type == Double.TYPE) { - return (Class<T>) Double.class; - } else if (type == Long.TYPE) { - return (Class<T>) Long.class; - } else if (type == Boolean.TYPE) { - return (Class<T>) Boolean.class; - } else if (type == Float.TYPE) { - return (Class<T>) Float.class; - } else if (type == Short.TYPE) { - return (Class<T>) Short.class; - } else if (type == Byte.TYPE) { - return (Class<T>) Byte.class; - } else if (type == Character.TYPE) { - return (Class<T>) Character.class; - } else { - return type; - } - } - - /** * Provide a String representation of a <code>java.lang.Class</code>. * @param type The <code>java.lang.Class</code>. * @return The String representation.