You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by Brian Lawler <br...@tribenetwork.com> on 2004/04/01 09:11:42 UTC
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: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org
Re: DefaultParameterParser handling fileItems just like simple parameters...
Posted by Brian Lawler <br...@tribenetwork.com>.
Yup, that's it. I need to iterate over all the parameters passed up
from a form, as the 2.2 ParameterParser used to do.
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:brian@tribenetwork.com]
>> 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: turbine-dev-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: turbine-dev-help@jakarta.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-dev-help@jakarta.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org
RE: DefaultParameterParser handling fileItems just like simple parameters...
Posted by Eric Pugh <ep...@upstate.com>.
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:brian@tribenetwork.com]
> 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: turbine-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: turbine-dev-help@jakarta.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org