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