org.apache.fulcrum.parser
Class DefaultParameterParser

java.lang.Object
  extended by org.apache.fulcrum.parser.BaseValueParser
      extended by org.apache.fulcrum.parser.DefaultParameterParser
All Implemented Interfaces:
org.apache.avalon.framework.logger.LogEnabled, ParameterParser, ParserServiceSupport, ValueParser, org.apache.fulcrum.pool.Recyclable

public class DefaultParameterParser
extends BaseValueParser
implements ParameterParser

DefaultParameterParser is a utility object to handle parsing and retrieving the data passed via the GET/POST/PATH_INFO arguments.

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: DefaultParameterParser.java 812786 2009-09-09 07:01:49Z tv $
Author:
Ilkka Priha, Jon S. Stevens, Sean Legassick, Jürgen Hoffmann

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
DefaultParameterParser()
          Create a new empty instance of ParameterParser.
DefaultParameterParser(String characterEncoding)
          Create a new empty instance of ParameterParser.
 
Method Summary
 void add(String name, org.apache.commons.fileupload.FileItem value)
          Add a FileItem object as a parameters.
 void append(String name, org.apache.commons.fileupload.FileItem value)
          Deprecated. Use add(String name, FileItem item)
 void dispose()
          Disposes the parser.
 org.apache.commons.fileupload.FileItem getFileItem(String name)
          Return a FileItem object for the given name.
 org.apache.commons.fileupload.FileItem[] getFileItems(String name)
          Return an array of FileItem objects for the given name.
 javax.servlet.http.HttpServletRequest getRequest()
          Gets the parsed servlet request.
 byte[] getUploadData()
          Gets the uploadData byte[]
 void setRequest(javax.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, 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 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 Detail

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

public DefaultParameterParser(String characterEncoding)
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 Detail

dispose

public void dispose()
Disposes the parser.

Specified by:
dispose in interface org.apache.fulcrum.pool.Recyclable
Overrides:
dispose in class BaseValueParser

getRequest

public javax.servlet.http.HttpServletRequest getRequest()
Gets the parsed servlet request.

Specified by:
getRequest in interface ParameterParser
Returns:
the parsed servlet request or null.

setRequest

public void setRequest(javax.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.

To add name/value pairs to this set of parameters, use the add() methods.

Specified by:
setRequest in interface ParameterParser
Parameters:
request - An HttpServletRequest.

setUploadData

public void setUploadData(byte[] uploadData)
Sets the uploadData byte[]

Specified by:
setUploadData in interface ParameterParser
Parameters:
uploadData - A byte[] with data.

getUploadData

public byte[] getUploadData()
Gets the uploadData byte[]

Specified by:
getUploadData in interface ParameterParser
Returns:
uploadData A byte[] with data.

append

public void append(String name,
                   org.apache.commons.fileupload.FileItem value)
Deprecated. Use add(String name, FileItem item)

Add a FileItem object as a parameters. If there are any FileItems 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:
append in interface ParameterParser
Parameters:
name - A String with the name.
value - A FileItem with the value.

add

public void add(String name,
                org.apache.commons.fileupload.FileItem value)
Add a FileItem object as a parameters. If there are any FileItems 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.

Parameters:
name - A String with the name.
value - A FileItem with the value.

getFileItem

public org.apache.commons.fileupload.FileItem getFileItem(String name)
Return a FileItem object for the given name. If the name does not exist or the object stored is not a FileItem, return null.

Specified by:
getFileItem in interface ParameterParser
Parameters:
name - A String with the name.
Returns:
A FileItem.

getFileItems

public org.apache.commons.fileupload.FileItem[] getFileItems(String name)
Return an array of FileItem objects for the given name. If the name does not exist or the object stored is not a FileItem array, return null.

Specified by:
getFileItems in interface ParameterParser
Parameters:
name - A String with the name.
Returns:
A FileItem[].


Copyright © 2005-2009 The Apache Software Foundation. All Rights Reserved.