org.eclipse.jetty.http
Class HttpFields

java.lang.Object
  extended by 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
static class HttpFields.Field
           
 
Field Summary
static String __01Jan1970
           
static Buffer __01Jan1970_BUFFER
           
static BufferDateCache __dateCache
           
static TimeZone __GMT
           
static String __separators
           
protected  HashMap<Buffer,HttpFields.Field> _bufferMap
           
protected  ArrayList<HttpFields.Field> _fields
           
protected  int _revision
           
 
Constructor Summary
HttpFields()
          Constructor.
 
Method Summary
 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)
           
 void destroy()
          Destroy the header.
static void formatCookieDate(StringBuilder buf, long date)
          Format "EEE, dd-MMM-yy HH:mm:ss 'GMT'" for cookies
static String formatDate(long date)
          Format HTTP date "EEE, dd MMM yyyy HH:mm:ss 'GMT'" cookies
 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 buffer)
           
 void put(Buffer name, Buffer value)
          Set a field.
 void put(Buffer name, Buffer value, long numValue)
          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.
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

__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

_fields

protected final ArrayList<HttpFields.Field> _fields

_bufferMap

protected final HashMap<Buffer,HttpFields.Field> _bufferMap

_revision

protected int _revision
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'" cookies


formatCookieDate

public static void formatCookieDate(StringBuilder buf,
                                    long date)
Format "EEE, dd-MMM-yy 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, or null if no such header.

getValues

public Enumeration<String> getValues(Buffer name)
Get multi headers

Parameters:
name - the case-insensitive field name
Returns:
Enumeration of the value Strings, or null if no such header.

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(Buffer name,
                Buffer value,
                long numValue)
Set a field.

Parameters:
name - the name of the field
value - the value of the field. If null the field is cleared.
numValue - the numeric value of the field (must match value) or -1

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.
cookie2 - If true, use the alternate cookie 2 header

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:
cookie - The cookie.
cookie2 - If true, use the alternate cookie 2 header

put

public void put(Buffer buffer)
         throws IOException
Throws:
IOException

toString

public String toString()
Overrides:
toString in class Object

clear

public void clear()
Clear the header.


destroy

public void destroy()
Destroy the header. Help the garbage collector by null everything that we can.


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:
enum - Enumeration of values with quality parameters
Returns:
values in quality order.


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