You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by oh...@apache.org on 2013/10/17 22:27:05 UTC

svn commit: r1533247 - /commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java

Author: oheger
Date: Thu Oct 17 20:27:05 2013
New Revision: 1533247

URL: http://svn.apache.org/r1533247
Log:
Generics, some new for loops.

Modified:
    commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java

Modified: commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java
URL: http://svn.apache.org/viewvc/commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java?rev=1533247&r1=1533246&r2=1533247&view=diff
==============================================================================
--- commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java (original)
+++ commons/proper/beanutils/branches/java5/src/main/java/org/apache/commons/beanutils/BeanUtilsBean.java Thu Oct 17 20:27:05 2013
@@ -27,7 +27,6 @@ import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.Map;
 
 import org.apache.commons.beanutils.expression.Resolver;
@@ -258,10 +257,11 @@ public class BeanUtilsBean {
                 }
             }
         } else if (orig instanceof Map) {
-            Iterator entries = ((Map) orig).entrySet().iterator();
-            while (entries.hasNext()) {
-                Map.Entry entry = (Map.Entry) entries.next();
-                String name = (String)entry.getKey();
+            @SuppressWarnings("unchecked")
+            // Map properties are always of type <String, Object>
+            Map<String, Object> propMap = (Map<String, Object>) orig;
+            for (Map.Entry<String, Object> entry : propMap.entrySet()) {
+                String name = entry.getKey();
                 if (getPropertyUtils().isWriteable(dest, name)) {
                     copyProperty(dest, name, entry.getValue());
                 }
@@ -370,7 +370,7 @@ public class BeanUtilsBean {
 
         // Declare local variables we will require
         String propName = resolver.getProperty(name); // Simple name of target property
-        Class type = null;                            // Java type of target property
+        Class<?> type = null;                         // Java type of target property
         int index  = resolver.getIndex(name);         // Indexed subscript value (if any)
         String key = resolver.getKey(name);           // Mapped key value (if any)
 
@@ -479,20 +479,20 @@ public class BeanUtilsBean {
      * @exception NoSuchMethodException if an accessor method for this
      *  property cannot be found
      */
-    public Map describe(Object bean)
+    public Map<String, String> describe(Object bean)
             throws IllegalAccessException, InvocationTargetException,
             NoSuchMethodException {
 
         if (bean == null) {
         //            return (Collections.EMPTY_MAP);
-            return (new java.util.HashMap());
+            return (new java.util.HashMap<String, String>());
         }
 
         if (log.isDebugEnabled()) {
             log.debug("Describing bean: " + bean.getClass().getName());
         }
 
-        Map description = new HashMap();
+        Map<String, String> description = new HashMap<String, String>();
         if (bean instanceof DynaBean) {
             DynaProperty[] descriptors =
                 ((DynaBean) bean).getDynaClass().getDynaProperties();
@@ -503,7 +503,7 @@ public class BeanUtilsBean {
         } else {
             PropertyDescriptor[] descriptors =
                 getPropertyUtils().getPropertyDescriptors(bean);
-            Class clazz = bean.getClass();
+            Class<?> clazz = bean.getClass();
             for (int i = 0; i < descriptors.length; i++) {
                 String name = descriptors[i].getName();
                 if (getPropertyUtils().getReadMethod(clazz, descriptors[i]) != null) {
@@ -539,18 +539,16 @@ public class BeanUtilsBean {
         if (value == null) {
             return (null);
         } else if (value instanceof Collection) {
-            ArrayList values = new ArrayList();
-            Iterator items = ((Collection) value).iterator();
-            while (items.hasNext()) {
-                Object item = items.next();
+            ArrayList<String> values = new ArrayList<String>();
+            for (Object item : (Collection<?>) value) {
                 if (item == null) {
-                    values.add((String) null);
+                    values.add(null);
                 } else {
                     // convert to string using convert utils
                     values.add(getConvertUtils().convert(item));
                 }
             }
-            return ((String[]) values.toArray(new String[values.size()]));
+            return (values.toArray(new String[values.size()]));
         } else if (value.getClass().isArray()) {
             int n = Array.getLength(value);
             String[] results = new String[n];
@@ -799,7 +797,7 @@ public class BeanUtilsBean {
      * @exception InvocationTargetException if the property accessor method
      *  throws an exception
      */
-    public void populate(Object bean, Map properties)
+    public void populate(Object bean, Map<String, ? extends Object> properties)
         throws IllegalAccessException, InvocationTargetException {
 
         // Do nothing unless both arguments have been specified
@@ -812,12 +810,9 @@ public class BeanUtilsBean {
         }
 
         // Loop through the property name/value pairs to be set
-        Iterator entries = properties.entrySet().iterator();
-        while (entries.hasNext()) {
-
+        for(Map.Entry<String, ? extends Object> entry : properties.entrySet()) {
             // Identify the property name and value(s) to be assigned
-            Map.Entry entry = (Map.Entry)entries.next();
-            String name = (String) entry.getKey();
+            String name = entry.getKey();
             if (name == null) {
                 continue;
             }
@@ -912,7 +907,7 @@ public class BeanUtilsBean {
 
         // Declare local variables we will require
         String propName = resolver.getProperty(name); // Simple name of target property
-        Class type = null;                            // Java type of target property
+        Class<?> type = null;                         // Java type of target property
         int index  = resolver.getIndex(name);         // Indexed subscript value (if any)
         String key = resolver.getKey(name);           // Mapped key value (if any)
 
@@ -1070,7 +1065,7 @@ public class BeanUtilsBean {
      * @exception ConversionException if thrown by an underlying Converter
      * @since 1.8.0
      */
-    protected Object convert(Object value, Class type) {
+    protected Object convert(Object value, Class<?> type) {
         Converter converter = getConvertUtils().lookup(type);
         if (converter != null) {
             log.trace("        USING CONVERTER " + converter);
@@ -1091,7 +1086,7 @@ public class BeanUtilsBean {
      */
     private static Method getInitCauseMethod() {
         try {
-            Class[] paramsClasses = new Class[] { Throwable.class };
+            Class<?>[] paramsClasses = new Class<?>[] { Throwable.class };
             return Throwable.class.getMethod("initCause", paramsClasses);
         } catch (NoSuchMethodException e) {
             Log log = LogFactory.getLog(BeanUtils.class);