org.apache.commons.httpclient.util

Class ParameterFormatter

public class ParameterFormatter extends Object

This formatter produces a textual representation of attribute/value pairs. It comforms to the generic grammar and formatting rules outlined in the Section 2.1 and Section 3.6 of RFC 2616

2.1 Augmented BNF

Many HTTP/1.1 header field values consist of words separated by LWS or special characters. These special characters MUST be in a quoted string to be used within a parameter value (as defined in section 3.6).

 token          = 1*
 separators     = "(" | ")" | "<" | ">" | "@"
                | "," | ";" | ":" | "\" | <">
                | "/" | "[" | "]" | "?" | "="
                | "{" | "}" | SP | HT
 

A string of text is parsed as a single word if it is quoted using double-quote marks.

 quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
 qdtext         = >
 

The backslash character ("\") MAY be used as a single-character quoting mechanism only within quoted-string and comment constructs.

 quoted-pair    = "\" CHAR
 
3.6 Transfer Codings

Parameters are in the form of attribute/value pairs.

 parameter               = attribute "=" value
 attribute               = token
 value                   = token | quoted-string
 

Since: 3.0

Author: Oleg Kalnichevski

Constructor Summary
ParameterFormatter()
Default ParameterFormatter constructor
Method Summary
voidformat(StringBuffer buffer, NameValuePair param)
Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616
Stringformat(NameValuePair param)
Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616
static voidformatValue(StringBuffer buffer, String value, boolean alwaysUseQuotes)
Formats the given parameter value using formatting rules defined in RFC 2616
booleanisAlwaysUseQuotes()
Determines whether all parameter values must be enclosed in quotation marks, even if they do not contain any special characters
voidsetAlwaysUseQuotes(boolean alwaysUseQuotes)
Defines whether all parameter values must be enclosed in quotation marks, even if they do not contain any special characters

Constructor Detail

ParameterFormatter

public ParameterFormatter()
Default ParameterFormatter constructor

Method Detail

format

public void format(StringBuffer buffer, NameValuePair param)
Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616

Parameters: buffer output buffer param the parameter to be formatted

format

public String format(NameValuePair param)
Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616

Parameters: param the parameter to be formatted

Returns: RFC 2616 conformant textual representaion of the attribute/value pair

formatValue

public static void formatValue(StringBuffer buffer, String value, boolean alwaysUseQuotes)
Formats the given parameter value using formatting rules defined in RFC 2616

Parameters: buffer output buffer value the parameter value to be formatted alwaysUseQuotes true if the parameter value must be enclosed in quotation marks, even if it does not contain any special characters, false only if the parameter value contains potentially unsafe special characters

isAlwaysUseQuotes

public boolean isAlwaysUseQuotes()
Determines whether all parameter values must be enclosed in quotation marks, even if they do not contain any special characters

Returns: true if all parameter values must be enclosed in quotation marks, false otherwise

setAlwaysUseQuotes

public void setAlwaysUseQuotes(boolean alwaysUseQuotes)
Defines whether all parameter values must be enclosed in quotation marks, even if they do not contain any special characters

Parameters: alwaysUseQuotes

Copyright (c) 1999-2005 - Apache Software Foundation