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, parserServiceFields 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 TypeMethodDescriptionvoidAdd a Part object as a parameters.voiddispose()Disposes the parser.getFileName(jakarta.servlet.http.Part part) Convenience fileName utility, which extracts the filename from headerjakarta.servlet.http.PartReturn 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.HttpServletRequestGets the parsed servlet request.byte[]Gets the uploadData byte[]protected voidhandleEncoding(jakarta.servlet.http.HttpServletRequest request) voidsetRequest(jakarta.servlet.http.HttpServletRequest request) Sets the servlet request to the parser.voidsetUploadData(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, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.lang.Iterable
forEach, iterator, spliteratorMethods 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:
disposein interfaceValueParser- Overrides:
disposein classBaseValueParser
-
getRequest
public jakarta.servlet.http.HttpServletRequest getRequest()Gets the parsed servlet request.- Specified by:
getRequestin 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:
setRequestin 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:
setUploadDatain interfaceParameterParser- Parameters:
uploadData- A byte[] with data.
-
getUploadData
public byte[] getUploadData()Gets the uploadData byte[]- Specified by:
getUploadDatain 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:
addin interfaceParameterParser- Parameters:
name- A String with the name.value- A Part with the value.
-
getPart
Description copied from interface:ParameterParserReturn 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:
getPartin interfaceParameterParser- Parameters:
name- A String with the name.- Returns:
- A Part.
- See Also:
-
getParts
Description copied from interface:ParameterParserReturn 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:
getPartsin interfaceParameterParser- Parameters:
name- A String with the name.- Returns:
- A Part[]
- See Also:
-
getParts
Description copied from interface:ParameterParserReturn 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:
getPartsin interfaceParameterParser- Returns:
- Collection Collection of parts
-
getFileName
Description copied from interface:ParameterParserConvenience fileName utility, which extracts the filename from header- Specified by:
getFileNamein interfaceParameterParser- Parameters:
part- The part which represents the uploaded file- Returns:
- the fileName String object.
-