On Apr 1, 2004, at 2:37 AM, Eric Pugh wrote:
Scott,
Would yo mind looking at this as well.. Correct me if I am wrong Brian,
but what this boils down to right now is that when you do .keySet() you
don't get back the fileitmes. And you want to get them back as well..?
Eric
-----Original Message----- From: Brian Lawler [mailto:[EMAIL PROTECTED] Sent: Thursday, April 01, 2004 9:12 AM To: Turbine Developers List Subject: DefaultParameterParser handling fileItems just like simple parameters...
Hello all-
My Turbine 2.2 application relied on the fact that
ParameterParser.keys() (now .keySet()) would hand back all of the keys
in the parameter parser, not just the simple ones added in the
BaseValueParser. Now that the parameters field is private in the base
class and fileParameters is private in the DefaultParameterParser
extension, the child class needs to wrap the keySet(), getObject(), and
getObjects() functionality so that calling classes don't need to make
the distinction between whether we are retrieving a FileItem or not.
The following patch implements this behavior.
Index:
src/java/org/apache/turbine/util/parser/DefaultParameterParser.java
===================================================================
RCS file:
/home/cvspublic/jakarta-turbine-2/src/java/org/apache/turbine/util/
parser/DefaultParameterParser.java,v
retrieving revision 1.20.2.1
diff -u -r1.20.2.1 DefaultParameterParser.java
--- src/java/org/apache/turbine/util/parser/DefaultParameterParser.java
27 Feb 2004 10:34:24 -0000 1.20.2.1
+++ src/java/org/apache/turbine/util/parser/DefaultParameterParser.java
1 Apr 2004 07:11:13 -0000
@@ -20,8 +20,10 @@
import java.util.Enumeration; import java.util.HashMap; +import java.util.HashSet; import java.util.Iterator; import java.util.Map; +import java.util.Set; import java.util.StringTokenizer;
import javax.servlet.http.HttpServletRequest;
@@ -337,5 +339,63 @@
+ name + ") is not an instance of FileItem[]", e);
return null;
}
+ }
+
+ /**
+ * Return the set of keys contained within this parameter parser,
both from
+ * the Map of simple parameters and from the Map of FileItems built
during
+ * the initial parse of the inbound request.
+ *
+ * @return Set containing all of the keys.
+ */
+ public Set keySet()
+ {
+ Set result = new HashSet(super.keySet());
+ Set fileKeys = fileParameters.keySet();
+ if(result == null)
+ {
+ result = fileKeys;
+ }
+ else if(fileKeys != null)
+ {
+ result.addAll(fileKeys);
+ }
+ return result;
+ }
+
+ /**
+ * Wrapper for the super class getObject() method that will try to
obtain
+ * the result from the superclass, and finding none will try to
obtain a
+ * parameter value from the parameter map contained in this object.
+ *
+ * @param name The name of the input parameter to retrieve.
+ * @return The Object corresponding to that value, or null if there
is none.
+ */
+ public Object getObject(String name)
+ {
+ Object result = super.getObject(name);
+ if(result == null)
+ {
+ result = getFileItem(name);
+ }
+ return result;
+ }
+
+ /**
+ * Wrapper for the super class getObjects() method that will try to
obtain
+ * the result from the superclass, and finding none will try to
obtain a
+ * parameter value from the parameter map contained in this object.
+ *
+ * @param name The name of the input parameter to retrieve.
+ * @return The Object corresponding to that value, or null if there
is none.
+ */
+ public Object[] getObjects(String name)
+ {
+ Object[] result = super.getObjects(name);
+ if(result == null)
+ {
+ result = getFileItems(name);
+ }
+ return result;
}
}
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
