Build 1.0_r1(from source)

org.apache.http.message
Class BasicHeaderValueFormatter

java.lang.Object
  extended by org.apache.http.message.BasicHeaderValueFormatter
All Implemented Interfaces:
HeaderValueFormatter

public class BasicHeaderValueFormatter
extends Object
implements HeaderValueFormatter

Basic implementation for formatting header value elements. Instances of this class are stateless and thread-safe. Derived classes are expected to maintain these properties.

Since:
4.0

Field Summary
static BasicHeaderValueFormatter DEFAULT
          A default instance of this class, for use as default or fallback.
static String SEPARATORS
          Special characters that can be used as separators in HTTP parameters.
static String UNSAFE_CHARS
          Unsafe special characters that must be escaped using the backslash character
 
Constructor Summary
BasicHeaderValueFormatter()
           
 
Method Summary
protected  void doFormatValue(CharArrayBuffer buffer, String value, boolean quote)
          Actually formats the value of a name-value pair.
protected  int estimateElementsLen(HeaderElement[] elems)
          Estimates the length of formatted header elements.
protected  int estimateHeaderElementLen(HeaderElement elem)
          Estimates the length of a formatted header element.
protected  int estimateNameValuePairLen(NameValuePair nvp)
          Estimates the length of a formatted name-value pair.
protected  int estimateParametersLen(NameValuePair[] nvps)
          Estimates the length of formatted parameters.
 CharArrayBuffer formatElements(CharArrayBuffer buffer, HeaderElement[] elems, boolean quote)
          Formats an array of header elements.
static String formatElements(HeaderElement[] elems, boolean quote, HeaderValueFormatter formatter)
          Formats an array of header elements.
 CharArrayBuffer formatHeaderElement(CharArrayBuffer buffer, HeaderElement elem, boolean quote)
          Formats one header element.
static String formatHeaderElement(HeaderElement elem, boolean quote, HeaderValueFormatter formatter)
          Formats a header element.
 CharArrayBuffer formatNameValuePair(CharArrayBuffer buffer, NameValuePair nvp, boolean quote)
          Formats one name-value pair, where the value is optional.
static String formatNameValuePair(NameValuePair nvp, boolean quote, HeaderValueFormatter formatter)
          Formats a name-value pair.
 CharArrayBuffer formatParameters(CharArrayBuffer buffer, NameValuePair[] nvps, boolean quote)
          Formats the parameters of a header element.
static String formatParameters(NameValuePair[] nvps, boolean quote, HeaderValueFormatter formatter)
          Formats a set of parameters.
protected  boolean isSeparator(char ch)
          Checks whether a character is a separator.
protected  boolean isUnsafe(char ch)
          Checks whether a character is unsafe.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT

public static final BasicHeaderValueFormatter DEFAULT
A default instance of this class, for use as default or fallback. Note that BasicHeaderValueFormatter is not a singleton, there can be many instances of the class itself and of derived classes. The instance here provides non-customized, default behavior.


SEPARATORS

public static final String SEPARATORS
Special characters that can be used as separators in HTTP parameters. These special characters MUST be in a quoted string to be used within a parameter value .

See Also:
Constant Field Values

UNSAFE_CHARS

public static final String UNSAFE_CHARS
Unsafe special characters that must be escaped using the backslash character

See Also:
Constant Field Values
Constructor Detail

BasicHeaderValueFormatter

public BasicHeaderValueFormatter()
Method Detail

formatElements

public static final String formatElements(HeaderElement[] elems,
                                          boolean quote,
                                          HeaderValueFormatter formatter)
Formats an array of header elements.

Parameters:
elems - the header elements to format
quote - true to always format with quoted values, false to use quotes only when necessary
formatter - the formatter to use, or null for the default
Returns:
the formatted header elements

formatElements

public CharArrayBuffer formatElements(CharArrayBuffer buffer,
                                      HeaderElement[] elems,
                                      boolean quote)
Description copied from interface: HeaderValueFormatter
Formats an array of header elements.

Specified by:
formatElements in interface HeaderValueFormatter
Parameters:
buffer - the buffer to append to, or null to create a new buffer
elems - the header elements to format
quote - true to always format with quoted values, false to use quotes only when necessary
Returns:
a buffer with the formatted header elements. If the buffer argument was not null, that buffer will be used and returned.

estimateElementsLen

protected int estimateElementsLen(HeaderElement[] elems)
Estimates the length of formatted header elements.

Parameters:
elems - the header elements to format, or null
Returns:
a length estimate, in number of characters

formatHeaderElement

public static final String formatHeaderElement(HeaderElement elem,
                                               boolean quote,
                                               HeaderValueFormatter formatter)
Formats a header element.

Parameters:
elem - the header element to format
quote - true to always format with quoted values, false to use quotes only when necessary
formatter - the formatter to use, or null for the default
Returns:
the formatted header element

formatHeaderElement

public CharArrayBuffer formatHeaderElement(CharArrayBuffer buffer,
                                           HeaderElement elem,
                                           boolean quote)
Description copied from interface: HeaderValueFormatter
Formats one header element.

Specified by:
formatHeaderElement in interface HeaderValueFormatter
Parameters:
buffer - the buffer to append to, or null to create a new buffer
elem - the header element to format
quote - true to always format with quoted values, false to use quotes only when necessary
Returns:
a buffer with the formatted header element. If the buffer argument was not null, that buffer will be used and returned.

estimateHeaderElementLen

protected int estimateHeaderElementLen(HeaderElement elem)
Estimates the length of a formatted header element.

Parameters:
elem - the header element to format, or null
Returns:
a length estimate, in number of characters

formatParameters

public static final String formatParameters(NameValuePair[] nvps,
                                            boolean quote,
                                            HeaderValueFormatter formatter)
Formats a set of parameters.

Parameters:
nvps - the parameters to format
quote - true to always format with quoted values, false to use quotes only when necessary
formatter - the formatter to use, or null for the default
Returns:
the formatted parameters

formatParameters

public CharArrayBuffer formatParameters(CharArrayBuffer buffer,
                                        NameValuePair[] nvps,
                                        boolean quote)
Description copied from interface: HeaderValueFormatter
Formats the parameters of a header element. That's a list of name-value pairs, to be separated by semicolons. This method will not generate a leading semicolon.

Specified by:
formatParameters in interface HeaderValueFormatter
Parameters:
buffer - the buffer to append to, or null to create a new buffer
nvps - the parameters (name-value pairs) to format
quote - true to always format with quoted values, false to use quotes only when necessary
Returns:
a buffer with the formatted parameters. If the buffer argument was not null, that buffer will be used and returned.

estimateParametersLen

protected int estimateParametersLen(NameValuePair[] nvps)
Estimates the length of formatted parameters.

Parameters:
nvps - the parameters to format, or null
Returns:
a length estimate, in number of characters

formatNameValuePair

public static final String formatNameValuePair(NameValuePair nvp,
                                               boolean quote,
                                               HeaderValueFormatter formatter)
Formats a name-value pair.

Parameters:
nvp - the name-value pair to format
quote - true to always format with a quoted value, false to use quotes only when necessary
formatter - the formatter to use, or null for the default
Returns:
the formatted name-value pair

formatNameValuePair

public CharArrayBuffer formatNameValuePair(CharArrayBuffer buffer,
                                           NameValuePair nvp,
                                           boolean quote)
Description copied from interface: HeaderValueFormatter
Formats one name-value pair, where the value is optional.

Specified by:
formatNameValuePair in interface HeaderValueFormatter
Parameters:
buffer - the buffer to append to, or null to create a new buffer
nvp - the name-value pair to format
quote - true to always format with a quoted value, false to use quotes only when necessary
Returns:
a buffer with the formatted name-value pair. If the buffer argument was not null, that buffer will be used and returned.

estimateNameValuePairLen

protected int estimateNameValuePairLen(NameValuePair nvp)
Estimates the length of a formatted name-value pair.

Parameters:
nvp - the name-value pair to format, or null
Returns:
a length estimate, in number of characters

doFormatValue

protected void doFormatValue(CharArrayBuffer buffer,
                             String value,
                             boolean quote)
Actually formats the value of a name-value pair. This does not include a leading = character. Called from formatNameValuePair.

Parameters:
buffer - the buffer to append to, never null
value - the value to append, never null
quote - true to always format with quotes, false to use quotes only when necessary

isSeparator

protected boolean isSeparator(char ch)
Checks whether a character is a separator.

Parameters:
ch - the character to check
Returns:
true if the character is a separator, false otherwise

isUnsafe

protected boolean isUnsafe(char ch)
Checks whether a character is unsafe.

Parameters:
ch - the character to check
Returns:
true if the character is unsafe, false otherwise

Build 1.0_r1(from source)

Please submit a feedback, bug or feature