Class DefaultParameterParser
- All Implemented Interfaces:
Iterable<String>
,org.apache.avalon.framework.logger.LogEnabled
,ParameterParser
,ParserServiceSupport
,ValueParser
NOTE: The name= portion of a name=value pair may be converted to lowercase or uppercase when the object is initialized and when new data is added. This behaviour is determined by the url.case.folding property in TurbineResources.properties. Adding a name/value pair may overwrite existing name=value pairs if the names match:
ParameterParser pp = data.getParameters(); pp.add("ERROR",1); pp.add("eRrOr",2); int result = pp.getInt("ERROR");In the above example, result is 2.
- Version:
- $Id$
- Author:
- Ilkka Priha, Jon S. Stevens, Sean Legassick, Jürgen Hoffmann
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.apache.fulcrum.parser.ValueParser
ValueParser.URLCaseFolding
-
Field Summary
Fields inherited from class org.apache.fulcrum.parser.BaseValueParser
parameters, parserService
Fields inherited from interface org.apache.fulcrum.parser.ValueParser
DEFAULT_CHARACTER_ENCODING
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a new empty instance of ParameterParser.DefaultParameterParser
(String characterEncoding) Create a new empty instance of ParameterParser. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add a Part object as a parameters.void
dispose()
Disposes the parser.getFileName
(jakarta.servlet.http.Part part) Convenience fileName utility, which extracts the filename from headerjakarta.servlet.http.Part
Return a Part object for the given name.Collection
<jakarta.servlet.http.Part> getParts()
Return an array of all Part objects.jakarta.servlet.http.Part[]
Return an array of Part objects for the given name.jakarta.servlet.http.HttpServletRequest
Gets the parsed servlet request.byte[]
Gets the uploadData byte[]protected void
handleEncoding
(jakarta.servlet.http.HttpServletRequest request) void
setRequest
(jakarta.servlet.http.HttpServletRequest request) Sets the servlet request to the parser.void
setUploadData
(byte[] uploadData) Sets the uploadData byte[]Methods inherited from class org.apache.fulcrum.parser.BaseValueParser
add, add, add, add, add, add, clear, containsKey, convert, convertAndTrim, convertAndTrim, enableLogging, get, getBigDecimal, getBigDecimal, getBigDecimals, getBoolean, getBoolean, getBooleanObject, getBooleanObject, getBooleanObjects, getBooleans, getByte, getByte, getByteObject, getByteObject, getBytes, getCharacterEncoding, getDate, getDate, getDate, getDateFormat, getDouble, getDouble, getDoubleObject, getDoubleObject, getDoubleObjects, getDoubles, getFloat, getFloat, getFloatObject, getFloatObject, getFloatObjects, getFloats, getInt, getInt, getIntObject, getIntObject, getIntObjects, getInts, getKeys, getLocale, getLogger, getLong, getLong, getLongObject, getLongObject, getLongObjects, getLongs, getNumberFormat, getObject, getObjects, getParam, getString, getString, getStrings, getStrings, getToStringParam, getUrlFolding, isDisposed, isValid, iterator, keySet, putParam, recycle, recycle, remove, setCharacterEncoding, setDateFormat, setLocale, setNumberFormat, setParserService, setProperties, setProperty, setString, setStrings, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface java.lang.Iterable
forEach, iterator, spliterator
Methods inherited from interface org.apache.fulcrum.parser.ValueParser
add, add, add, add, add, add, clear, containsKey, convert, convertAndTrim, convertAndTrim, get, getBigDecimal, getBigDecimal, getBigDecimals, getBoolean, getBoolean, getBooleanObject, getBooleanObject, getBooleanObjects, getBooleans, getByte, getByte, getByteObject, getByteObject, getBytes, getCharacterEncoding, getDate, getDate, getDate, getDateFormat, getDouble, getDouble, getDoubleObject, getDoubleObject, getDoubleObjects, getDoubles, getFloat, getFloat, getFloatObject, getFloatObject, getFloatObjects, getFloats, getInt, getInt, getIntObject, getIntObject, getIntObjects, getInts, getKeys, getLocale, getLong, getLong, getLongObject, getLongObject, getLongObjects, getLongs, getNumberFormat, getObject, getObjects, getString, getString, getStrings, getStrings, getUrlFolding, keySet, remove, setCharacterEncoding, setDateFormat, setLocale, setNumberFormat, setProperties, setString, setStrings, toString
-
Constructor Details
-
DefaultParameterParser
public DefaultParameterParser()Create a new empty instance of ParameterParser. Uses the default character encoding (US-ASCII).To add name/value pairs to this set of parameters, use the
add()
methods. -
DefaultParameterParser
Create a new empty instance of ParameterParser. Takes a character encoding name to use when converting strings to bytes.To add name/value pairs to this set of parameters, use the
add()
methods.- Parameters:
characterEncoding
- The character encoding of strings.
-
-
Method Details
-
dispose
public void dispose()Disposes the parser.- Specified by:
dispose
in interfaceValueParser
- Overrides:
dispose
in classBaseValueParser
-
getRequest
public jakarta.servlet.http.HttpServletRequest getRequest()Gets the parsed servlet request.- Specified by:
getRequest
in interfaceParameterParser
- Returns:
- the parsed servlet request or null.
-
setRequest
public void setRequest(jakarta.servlet.http.HttpServletRequest request) Sets the servlet request to the parser. This requires a valid HttpServletRequest object. It will attempt to parse out the GET/POST/PATH_INFO data and store the data into a Map. There are convenience methods for retrieving the data as a number of different datatypes. The PATH_INFO data must be a URLEncoded() string.Sets the request character encoding to the parser.
Sets the request encoding, if it is not set and
ParserService.getParameterEncoding()
is set to a non-default valueParserService.PARAMETER_ENCODING_DEFAULT
(ifServletRequest.getCharacterEncoding()
returns null, it has the default set to ISO-8859-1, cft. Servlet 2.4, 2.5, 3.0, 3.1 Specs). This will only succeed, if no data was read yet, cft. spec.To add name/value pairs to this set of parameters, use the
add()
methods.- Specified by:
setRequest
in interfaceParameterParser
- Parameters:
request
- An HttpServletRequest.
-
handleEncoding
protected void handleEncoding(jakarta.servlet.http.HttpServletRequest request) -
setUploadData
public void setUploadData(byte[] uploadData) Sets the uploadData byte[]- Specified by:
setUploadData
in interfaceParameterParser
- Parameters:
uploadData
- A byte[] with data.
-
getUploadData
public byte[] getUploadData()Gets the uploadData byte[]- Specified by:
getUploadData
in interfaceParameterParser
- Returns:
- uploadData A byte[] with data.
-
add
Add a Part object as a parameters. If there are any Parts already associated with the name, append to the array. The reason for this is that RFC 1867 allows multiple files to be associated with single HTML input element.- Specified by:
add
in interfaceParameterParser
- Parameters:
name
- A String with the name.value
- A Part with the value.
-
getPart
Description copied from interface:ParameterParser
Return a Part object for the given name. If the name does not exist or the object stored is not a Part, return null.- Specified by:
getPart
in interfaceParameterParser
- Parameters:
name
- A String with the name.- Returns:
- A Part.
- See Also:
-
getParts
Description copied from interface:ParameterParser
Return an array of Part objects for the given name. If the name does not exist or the object stored is not a Part array, return null.- Specified by:
getParts
in interfaceParameterParser
- Parameters:
name
- A String with the name.- Returns:
- A Part[]
- See Also:
-
getParts
Description copied from interface:ParameterParser
Return an array of all Part objects. If no parts exist or the object stored is not a Part array, return an empty list.- Specified by:
getParts
in interfaceParameterParser
- Returns:
- Collection Collection of parts
-
getFileName
Description copied from interface:ParameterParser
Convenience fileName utility, which extracts the filename from header- Specified by:
getFileName
in interfaceParameterParser
- Parameters:
part
- The part which represents the uploaded file- Returns:
- the fileName String object.
-