org.apache.http.message

## Class BasicHeaderValueParser

- java.lang.Object
- - org.apache.http.message.BasicHeaderValueParser

- All Implemented Interfaces:
    HeaderValueParser

      @Immutable
      public class BasicHeaderValueParser
      extends Object
      implements HeaderValueParser

  Basic implementation for parsing header values into elements. Instances of this class are stateless and thread-safe. Derived classes are expected to maintain these properties.
  Since:
    4.0

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static BasicHeaderValueParser` | `DEFAULT` Deprecated. (4.3) use `INSTANCE`
    `static BasicHeaderValueParser` | `INSTANCE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BasicHeaderValueParser()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected HeaderElement` | `createHeaderElement(String name, String value, NameValuePair[] params)` Creates a header element.
    `protected NameValuePair` | `createNameValuePair(String name, String value)` Creates a name-value pair.
    `HeaderElement[]` | `parseElements(CharArrayBuffer buffer, ParserCursor cursor)` Parses a header value into elements.
    `static HeaderElement[]` | `parseElements(String value, HeaderValueParser parser)` Parses elements with the given parser.
    `HeaderElement` | `parseHeaderElement(CharArrayBuffer buffer, ParserCursor cursor)` Parses a single header element.
    `static HeaderElement` | `parseHeaderElement(String value, HeaderValueParser parser)` Parses an element with the given parser.
    `NameValuePair` | `parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor)` Parses a name=value specification, where the = and value are optional.
    `NameValuePair` | `parseNameValuePair(CharArrayBuffer buffer, ParserCursor cursor, char[] delimiters)`
    `static NameValuePair` | `parseNameValuePair(String value, HeaderValueParser parser)` Parses a name-value-pair with the given parser.
    `NameValuePair[]` | `parseParameters(CharArrayBuffer buffer, ParserCursor cursor)` Parses a list of name-value pairs.
    `static NameValuePair[]` | `parseParameters(String value, HeaderValueParser parser)` Parses parameters with the given parser.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### DEFAULT

          @Deprecated
          public static final BasicHeaderValueParser DEFAULT

      Deprecated. (4.3) use `INSTANCE`
      A default instance of this class, for use as default or fallback. Note that `BasicHeaderValueParser` 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.

    - #### INSTANCE

          public static final BasicHeaderValueParser INSTANCE

  - ### Constructor Detail

    - #### BasicHeaderValueParser

          public BasicHeaderValueParser()

  - ### Method Detail

    - #### parseElements

          public static HeaderElement[] parseElements(String value,
                                      HeaderValueParser parser)
                                               throws ParseException

      Parses elements with the given parser.
      Parameters:
        `value` - the header value to parse
        `parser` - the parser to use, or `null` for default
      Returns:
        array holding the header elements, never `null`
      Throws:
        `ParseException`

    - #### parseElements

          public HeaderElement[] parseElements(CharArrayBuffer buffer,
                                      ParserCursor cursor)

      Description copied from interface: `HeaderValueParser`
      Parses a header value into elements. Parse errors are indicated as `RuntimeException`.

      Some HTTP headers (such as the set-cookie header) have values that can be decomposed into multiple elements. In order to be processed by this parser, such headers must be in the following form:

           header  = [ element ] *( "," [ element ] )
           element = name [ "=" [ value ] ] *( ";" [ param ] )
           param   = name [ "=" [ value ] ]

           name    = token
           value   = ( token | quoted-string )

           token         = 1*<any char except "=", ",", ";", <"> and
                                 white space>
           quoted-string = <"> *( text | quoted-char ) <">
           text          = any char except <">
           quoted-char   = "\" char

      Any amount of white space is allowed between any part of the header, element or param and is ignored. A missing value in any element or param will be stored as the empty `String`; if the "=" is also missing null will be stored instead.

      Specified by:
        `parseElements` in interface `HeaderValueParser`
      Parameters:
        `buffer` - buffer holding the header value to parse
        `cursor` - the parser cursor containing the current position and the bounds within the buffer for the parsing operation
      Returns:
        an array holding all elements of the header value

    - #### parseHeaderElement

          public static HeaderElement parseHeaderElement(String value,
                                         HeaderValueParser parser)
                                                  throws ParseException

      Parses an element with the given parser.
      Parameters:
        `value` - the header element to parse
        `parser` - the parser to use, or `null` for default
      Returns:
        the parsed header element
      Throws:
        `ParseException`

    - #### parseHeaderElement

          public HeaderElement parseHeaderElement(CharArrayBuffer buffer,
                                         ParserCursor cursor)

      Description copied from interface: `HeaderValueParser`
      Parses a single header element. A header element consist of a semicolon-separate list of name=value definitions.
      Specified by:
        `parseHeaderElement` in interface `HeaderValueParser`
      Parameters:
        `buffer` - buffer holding the element to parse
        `cursor` - the parser cursor containing the current position and the bounds within the buffer for the parsing operation
      Returns:
        the parsed element

    - #### createHeaderElement

          protected HeaderElement createHeaderElement(String name,
                                          String value,
                                          NameValuePair[] params)

      Creates a header element. Called from `parseHeaderElement(java.lang.String, org.apache.http.message.HeaderValueParser)`.
      Returns:
        a header element representing the argument

    - #### parseParameters

          public static NameValuePair[] parseParameters(String value,
                                        HeaderValueParser parser)
                                                 throws ParseException

      Parses parameters with the given parser.
      Parameters:
        `value` - the parameter list to parse
        `parser` - the parser to use, or `null` for default
      Returns:
        array holding the parameters, never `null`
      Throws:
        `ParseException`

    - #### parseParameters

          public NameValuePair[] parseParameters(CharArrayBuffer buffer,
                                        ParserCursor cursor)

      Description copied from interface: `HeaderValueParser`
      Parses a list of name-value pairs. These lists are used to specify parameters to a header element. Parse errors are indicated as `ParseException`.
      Specified by:
        `parseParameters` in interface `HeaderValueParser`
      Parameters:
        `buffer` - buffer holding the name-value list to parse
        `cursor` - the parser cursor containing the current position and the bounds within the buffer for the parsing operation
      Returns:
        an array holding all items of the name-value list

    - #### parseNameValuePair

          public static NameValuePair parseNameValuePair(String value,
                                         HeaderValueParser parser)
                                                  throws ParseException

      Parses a name-value-pair with the given parser.
      Parameters:
        `value` - the NVP to parse
        `parser` - the parser to use, or `null` for default
      Returns:
        the parsed name-value pair
      Throws:
        `ParseException`

    - #### parseNameValuePair

          public NameValuePair parseNameValuePair(CharArrayBuffer buffer,
                                         ParserCursor cursor)

      Description copied from interface: `HeaderValueParser`
      Parses a name=value specification, where the = and value are optional.
      Specified by:
        `parseNameValuePair` in interface `HeaderValueParser`
      Parameters:
        `buffer` - the buffer holding the name-value pair to parse
        `cursor` - the parser cursor containing the current position and the bounds within the buffer for the parsing operation
      Returns:
        the name-value pair, where the value is `null` if no value is specified

    - #### parseNameValuePair

          public NameValuePair parseNameValuePair(CharArrayBuffer buffer,
                                         ParserCursor cursor,
                                         char[] delimiters)

    - #### createNameValuePair

          protected NameValuePair createNameValuePair(String name,
                                          String value)

      Creates a name-value pair. Called from `parseNameValuePair(java.lang.String, org.apache.http.message.HeaderValueParser)`.
      Parameters:
        `name` - the name
        `value` - the value, or `null`
      Returns:
        a name-value pair representing the arguments

Copyright © 2005–2013 The Apache Software Foundation. All rights reserved.