You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by cr...@locus.apache.org on 2000/12/30 02:20:11 UTC

cvs commit: jakarta-struts/src/share/org/apache/struts/util BeanUtils.java PropertyUtils.java

craigmcc    00/12/29 17:20:11

  Modified:    src/share/org/apache/struts/util BeanUtils.java
                        PropertyUtils.java
  Log:
  Make BeanUtils.getArrayProperty recognize when a property value is a
  Collection, and convert it to a String array.
  
  Submitted by:	Jeremy Taylor <jt...@lehman.com>
  
  Revision  Changes    Path
  1.17      +11 -7     jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java
  
  Index: BeanUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- BeanUtils.java	2000/12/27 04:50:17	1.16
  +++ BeanUtils.java	2000/12/30 01:20:10	1.17
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v 1.16 2000/12/27 04:50:17 craigmcc Exp $
  - * $Revision: 1.16 $
  - * $Date: 2000/12/27 04:50:17 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/BeanUtils.java,v 1.17 2000/12/30 01:20:10 craigmcc Exp $
  + * $Revision: 1.17 $
  + * $Date: 2000/12/30 01:20:10 $
    *
    * ====================================================================
    *
  @@ -70,9 +70,10 @@
   import java.lang.reflect.Array;
   import java.lang.reflect.InvocationTargetException;
   import java.lang.reflect.Method;
  +import java.util.ArrayList;
  +import java.util.Collection;
   import java.util.Enumeration;
   import java.util.Hashtable;
  -import java.util.Vector;
   import javax.servlet.ServletException;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.jsp.PageContext;
  @@ -90,7 +91,7 @@
    * @author Craig R. McClanahan
    * @author Ralph Schaer
    * @author Chris Audley
  - * @version $Revision: 1.16 $ $Date: 2000/12/27 04:50:17 $
  + * @version $Revision: 1.17 $ $Date: 2000/12/30 01:20:10 $
    */
   
   public final class BeanUtils {
  @@ -338,12 +339,15 @@
           Object value = PropertyUtils.getProperty(bean, name);
           if (value == null) {
               return (null);
  +        } else if (value instanceof Collection) {
  +            ArrayList values = new ArrayList((Collection) value);
  +            return ((String[]) values.toArray(new String[values.size()]));
           } else if (value.getClass().isArray()) {
  -            Vector values = new Vector();
  +            ArrayList values = new ArrayList();
               try {
                   int n = Array.getLength(value);
                   for (int i = 0; i < n; i++) {
  -                    values.addElement(Array.get(value, i).toString());
  +                    values.add(Array.get(value, i).toString());
                   }
               } catch (ArrayIndexOutOfBoundsException e) {
                   ;
  
  
  
  1.6       +9 -6      jakarta-struts/src/share/org/apache/struts/util/PropertyUtils.java
  
  Index: PropertyUtils.java
  ===================================================================
  RCS file: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/PropertyUtils.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- PropertyUtils.java	2000/10/15 03:25:14	1.5
  +++ PropertyUtils.java	2000/12/30 01:20:10	1.6
  @@ -1,7 +1,7 @@
   /*
  - * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/PropertyUtils.java,v 1.5 2000/10/15 03:25:14 craigmcc Exp $
  - * $Revision: 1.5 $
  - * $Date: 2000/10/15 03:25:14 $
  + * $Header: /home/cvs/jakarta-struts/src/share/org/apache/struts/util/PropertyUtils.java,v 1.6 2000/12/30 01:20:10 craigmcc Exp $
  + * $Revision: 1.6 $
  + * $Date: 2000/12/30 01:20:10 $
    *
    * ====================================================================
    *
  @@ -71,7 +71,6 @@
   import java.lang.reflect.Array;
   import java.lang.reflect.InvocationTargetException;
   import java.lang.reflect.Method;
  -import java.util.Hashtable;
   
   
   /**
  @@ -117,7 +116,7 @@
    * @author Craig R. McClanahan
    * @author Ralph Schaer
    * @author Chris Audley
  - * @version $Revision: 1.5 $ $Date: 2000/10/15 03:25:14 $
  + * @version $Revision: 1.6 $ $Date: 2000/12/30 01:20:10 $
    */
   
   public final class PropertyUtils {
  @@ -153,7 +152,11 @@
        * The cache of PropertyDescriptor arrays for beans we have already
        * introspected, keyed by the fully qualified class name of this object.
        */
  -    private static Hashtable descriptorsCache = new Hashtable();
  +    private static FastHashMap descriptorsCache = null;
  +    static {
  +        descriptorsCache = new FastHashMap();
  +        descriptorsCache.setFast(true);
  +    }
   
   
       // --------------------------------------------------------- Public Methods