org.eclipse.jetty.http

## Class HttpFields

- java.lang.Object
- - org.eclipse.jetty.http.HttpFields

-     public class HttpFields
      extends Object

  HTTP Fields. A collection of HTTP header and or Trailer fields.

  This class is not synchronized as it is expected that modifications will only be performed by a single thread.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `HttpFields.Field`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `__01Jan1970`
    `static Buffer` | `__01Jan1970_BUFFER`
    `static String` | `__01Jan1970_COOKIE`
    `static String` | `__COOKIE_DELIM`
    `static BufferDateCache` | `__dateCache`
    `static TimeZone` | `__GMT`
    `static String` | `__separators`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HttpFields()` Constructor.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(Buffer name, Buffer value)` Add to or set a field.
    `void` | `add(HttpFields fields)` Add fields from another HttpFields instance.
    `void` | `add(String name, String value)` Add to or set a field.
    `void` | `addDateField(String name, long date)` Sets the value of a date field.
    `void` | `addLongField(Buffer name, long value)` Sets the value of an long field.
    `void` | `addLongField(String name, long value)` Sets the value of an long field.
    `void` | `addSetCookie(HttpCookie cookie)` Format a set cookie value
    `void` | `addSetCookie(String name, String value, String domain, String path, long maxAge, String comment, boolean isSecure, boolean isHttpOnly, int version)` Format a set cookie value
    `void` | `clear()` Clear the header.
    `boolean` | `containsKey(Buffer name)`
    `boolean` | `containsKey(String name)`
    `static String` | `formatCookieDate(long date)` Format "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'" for cookies
    `static void` | `formatCookieDate(StringBuilder buf, long date)` Format "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'" for cookies
    `static String` | `formatDate(long date)` Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'"
    `Buffer` | `get(Buffer name)`
    `long` | `getDateField(String name)` Get a header as a date value.
    `HttpFields.Field` | `getField(int i)` Get a Field by index.
    `Enumeration<String>` | `getFieldNames()` Get enumeration of header _names.
    `long` | `getLongField(Buffer name)` Get a header as an long value.
    `long` | `getLongField(String name)` Get a header as an long value.
    `static Float` | `getQuality(String value)`
    `String` | `getStringField(Buffer name)`
    `String` | `getStringField(String name)`
    `Enumeration<String>` | `getValues(Buffer name)` Get multi headers
    `Enumeration<String>` | `getValues(String name)` Get multi headers
    `Enumeration<String>` | `getValues(String name, String separators)` Get multi field values with separator.
    `static long` | `parseDate(String date)`
    `void` | `put(Buffer name, Buffer value)` Set a field.
    `void` | `put(Buffer name, String value)` Set a field.
    `void` | `put(String name, List<?> list)` Set a field.
    `void` | `put(String name, String value)` Set a field.
    `void` | `putDateField(Buffer name, long date)` Sets the value of a date field.
    `void` | `putDateField(String name, long date)` Sets the value of a date field.
    `void` | `putLongField(Buffer name, long value)` Sets the value of an long field.
    `void` | `putLongField(String name, long value)` Sets the value of an long field.
    `void` | `putTo(Buffer buffer)`
    `static List` | `qualityList(Enumeration e)` List values in quality order.
    `void` | `remove(Buffer name)` Remove a field.
    `void` | `remove(String name)` Remove a field.
    `int` | `size()`
    `String` | `toString()`
    `static String` | `valueParameters(String value, Map<String,String> parameters)` Get field value parameters.

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

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

- - ### Field Detail

    - #### __COOKIE_DELIM

          public static final String __COOKIE_DELIM

      See Also:
        Constant Field Values

    - #### __GMT

          public static final TimeZone __GMT

    - #### __dateCache

          public static final BufferDateCache __dateCache

    - #### __separators

          public static final String __separators

      See Also:
        Constant Field Values

    - #### __01Jan1970

          public static final String __01Jan1970

    - #### __01Jan1970_BUFFER

          public static final Buffer __01Jan1970_BUFFER

    - #### __01Jan1970_COOKIE

          public static final String __01Jan1970_COOKIE

  - ### Constructor Detail

    - #### HttpFields

          public HttpFields()

      Constructor.

  - ### Method Detail

    - #### formatDate

          public static String formatDate(long date)

      Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'"

    - #### formatCookieDate

          public static void formatCookieDate(StringBuilder buf,
                              long date)

      Format "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'" for cookies

    - #### formatCookieDate

          public static String formatCookieDate(long date)

      Format "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'" for cookies

    - #### parseDate

          public static long parseDate(String date)

    - #### getFieldNames

          public Enumeration<String> getFieldNames()

      Get enumeration of header _names. Returns an enumeration of strings representing the header _names for this request.

    - #### size

          public int size()

    - #### getField

          public HttpFields.Field getField(int i)

      Get a Field by index.
      Returns:
        A Field value or null if the Field value has not been set for this revision of the fields.

    - #### containsKey

          public boolean containsKey(Buffer name)

    - #### containsKey

          public boolean containsKey(String name)

    - #### getStringField

          public String getStringField(String name)

      Parameters:
        `name` - the case-insensitive field name
      Returns:
        the value of a field, or null if not found. For multiple fields of the same name, only the first is returned.

    - #### getStringField

          public String getStringField(Buffer name)

      Parameters:
        `name` - the case-insensitive field name
      Returns:
        the value of a field, or null if not found. For multiple fields of the same name, only the first is returned.

    - #### get

          public Buffer get(Buffer name)

      Parameters:
        `name` - the case-insensitive field name
      Returns:
        the value of a field, or null if not found. For multiple fields of the same name, only the first is returned.

    - #### getValues

          public Enumeration<String> getValues(String name)

      Get multi headers
      Parameters:
        `name` - the case-insensitive field name
      Returns:
        Enumeration of the values

    - #### getValues

          public Enumeration<String> getValues(Buffer name)

      Get multi headers
      Parameters:
        `name` - the case-insensitive field name
      Returns:
        Enumeration of the value Strings

    - #### getValues

          public Enumeration<String> getValues(String name,
                                      String separators)

      Get multi field values with separator. The multiple values can be represented as separate headers of the same name, or by a single header using the separator(s), or a combination of both. Separators may be quoted.
      Parameters:
        `name` - the case-insensitive field name
        `separators` - String of separators.
      Returns:
        Enumeration of the values, or null if no such header.

    - #### put

          public void put(String name,
                 String value)

      Set a field.
      Parameters:
        `name` - the name of the field
        `value` - the value of the field. If null the field is cleared.

    - #### put

          public void put(Buffer name,
                 String value)

      Set a field.
      Parameters:
        `name` - the name of the field
        `value` - the value of the field. If null the field is cleared.

    - #### put

          public void put(Buffer name,
                 Buffer value)

      Set a field.
      Parameters:
        `name` - the name of the field
        `value` - the value of the field. If null the field is cleared.

    - #### put

          public void put(String name,
                 List<?> list)

      Set a field.
      Parameters:
        `name` - the name of the field
        `list` - the List value of the field. If null the field is cleared.

    - #### add

          public void add(String name,
                 String value)
                   throws IllegalArgumentException

      Add to or set a field. If the field is allowed to have multiple values, add will add multiple headers of the same name.
      Parameters:
        `name` - the name of the field
        `value` - the value of the field.
      Throws:
        `IllegalArgumentException` - If the name is a single valued field and already has a value.

    - #### add

          public void add(Buffer name,
                 Buffer value)
                   throws IllegalArgumentException

      Add to or set a field. If the field is allowed to have multiple values, add will add multiple headers of the same name.
      Parameters:
        `name` - the name of the field
        `value` - the value of the field.
      Throws:
        `IllegalArgumentException` - If the name is a single valued field and already has a value.

    - #### remove

          public void remove(String name)

      Remove a field.
      Parameters:
        `name` -

    - #### remove

          public void remove(Buffer name)

      Remove a field.
      Parameters:
        `name` -

    - #### getLongField

          public long getLongField(String name)
                            throws NumberFormatException

      Get a header as an long value. Returns the value of an integer field or -1 if not found. The case of the field name is ignored.
      Parameters:
        `name` - the case-insensitive field name
      Throws:
        `NumberFormatException` - If bad long found

    - #### getLongField

          public long getLongField(Buffer name)
                            throws NumberFormatException

      Get a header as an long value. Returns the value of an integer field or -1 if not found. The case of the field name is ignored.
      Parameters:
        `name` - the case-insensitive field name
      Throws:
        `NumberFormatException` - If bad long found

    - #### getDateField

          public long getDateField(String name)

      Get a header as a date value. Returns the value of a date field, or -1 if not found. The case of the field name is ignored.
      Parameters:
        `name` - the case-insensitive field name

    - #### putLongField

          public void putLongField(Buffer name,
                          long value)

      Sets the value of an long field.
      Parameters:
        `name` - the field name
        `value` - the field long value

    - #### putLongField

          public void putLongField(String name,
                          long value)

      Sets the value of an long field.
      Parameters:
        `name` - the field name
        `value` - the field long value

    - #### addLongField

          public void addLongField(String name,
                          long value)

      Sets the value of an long field.
      Parameters:
        `name` - the field name
        `value` - the field long value

    - #### addLongField

          public void addLongField(Buffer name,
                          long value)

      Sets the value of an long field.
      Parameters:
        `name` - the field name
        `value` - the field long value

    - #### putDateField

          public void putDateField(Buffer name,
                          long date)

      Sets the value of a date field.
      Parameters:
        `name` - the field name
        `date` - the field date value

    - #### putDateField

          public void putDateField(String name,
                          long date)

      Sets the value of a date field.
      Parameters:
        `name` - the field name
        `date` - the field date value

    - #### addDateField

          public void addDateField(String name,
                          long date)

      Sets the value of a date field.
      Parameters:
        `name` - the field name
        `date` - the field date value

    - #### addSetCookie

          public void addSetCookie(HttpCookie cookie)

      Format a set cookie value
      Parameters:
        `cookie` - The cookie.

    - #### addSetCookie

          public void addSetCookie(String name,
                          String value,
                          String domain,
                          String path,
                          long maxAge,
                          String comment,
                          boolean isSecure,
                          boolean isHttpOnly,
                          int version)

      Format a set cookie value
      Parameters:
        `name` - the name
        `value` - the value
        `domain` - the domain
        `path` - the path
        `maxAge` - the maximum age
        `comment` - the comment (only present on versions > 0)
        `isSecure` - true if secure cookie
        `isHttpOnly` - true if for http only
        `version` - version of cookie logic to use (0 == default behavior)

    - #### putTo

          public void putTo(Buffer buffer)
                     throws IOException

      Throws:
        `IOException`

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### clear

          public void clear()

      Clear the header.

    - #### add

          public void add(HttpFields fields)

      Add fields from another HttpFields instance. Single valued fields are replaced, while all others are added.
      Parameters:
        `fields` -

    - #### valueParameters

          public static String valueParameters(String value,
                               Map<String,String> parameters)

      Get field value parameters. Some field values can have parameters. This method separates the value from the parameters and optionally populates a map with the parameters. For example:

           FieldName : Value ; param1=val1 ; param2=val2

      Parameters:
        `value` - The Field value, possibly with parameteres.
        `parameters` - A map to populate with the parameters, or null
      Returns:
        The value.

    - #### getQuality

          public static Float getQuality(String value)

    - #### qualityList

          public static List qualityList(Enumeration e)

      List values in quality order.
      Parameters:
        `e` - Enumeration of values with quality parameters
      Returns:
        values in quality order.

Copyright © 1995-2012 Mort Bay Consulting. All Rights Reserved.