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
`static class` `HttpFields.Field`

### Field Summary

Fields
`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
`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.