org.apache.commons.httpclient.util

Class ParameterFormatter


public class ParameterFormatter
extends java.lang.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="The" backslash="backslash" character="character" ("\")="("\")" MAY="MAY" be="be" used="used" as="as" a="a" single-character="single-character" quoting="quoting" mechanism="mechanism" only="only" within="within" quoted-string="quoted-string" and="and" comment="comment" constructs.="constructs."

="

"
="
" quoted-pair="\" CHAR="CHAR" 
="
" 3.6="3.6" Transfer="Transfer" Codings="Codings"

="

" Parameters="Parameters" are="are" in="in" the="the" form="form" of="of" attribute/value="attribute/value" pairs.="pairs."

="

"
="
" parameter="attribute" "=" value
 attribute               = token
 value                   = token | quoted-string
 
">>>
Author:
Oleg Kalnichevski
Since:
3.0

Constructor Summary

ParameterFormatter()
Default ParameterFormatter constructor

Method Summary

void
format(StringBuffer buffer, NameValuePair param)
Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616
String
format(NameValuePair param)
Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616
static void
formatValue(StringBuffer buffer, String value, boolean alwaysUseQuotes)
Formats the given parameter value using formatting rules defined in RFC 2616
boolean
isAlwaysUseQuotes()
Determines whether all parameter values must be enclosed in quotation marks, even if they do not contain any special characters
void
setAlwaysUseQuotes(boolean alwaysUseQuotes)
Defines whether all parameter values must be enclosed in quotation marks, even if they do not contain any special characters

Constructor Details

ParameterFormatter

public ParameterFormatter()
Default ParameterFormatter constructor

Method Details

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