org.apache.commons.httpclient.util
Class ParameterFormatter

java.lang.Object
  extended by org.apache.commons.httpclient.util.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
 String format(NameValuePair param)
          Produces textual representaion of the attribute/value pair using formatting rules defined in RFC 2616
 void format(StringBuffer buffer, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ParameterFormatter

public ParameterFormatter()
Default ParameterFormatter constructor

Method Detail

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 -

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

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


Copyright (c) 1999-2005 - Apache Software Foundation