org.springframework.security.web.savedrequest
Class FastHttpDateFormat

java.lang.Object
  extended by org.springframework.security.web.savedrequest.FastHttpDateFormat

public class FastHttpDateFormat
extends java.lang.Object

Utility class to generate HTTP dates.

This class is based on code in Apache Tomcat.


Field Summary
protected static java.lang.String currentDate
          Current formatted date.
protected static long currentDateGenerated
          Instant on which the currentDate object was generated.
protected static java.text.SimpleDateFormat format
          HTTP date format.
protected static java.util.HashMap<java.lang.Long,java.lang.String> formatCache
          Formatter cache.
protected static java.text.SimpleDateFormat[] formats
          The set of SimpleDateFormat formats to use in getDateHeader().
protected static java.util.TimeZone gmtZone
          GMT time zone - all HTTP dates are on GMT
protected static java.util.HashMap<java.lang.String,java.lang.Long> parseCache
          Parser cache.
 
Constructor Summary
FastHttpDateFormat()
           
 
Method Summary
static java.lang.String formatDate(long value, java.text.DateFormat threadLocalformat)
          Formats a specified date to HTTP format.
static java.lang.String getCurrentDate()
          Gets the current date in HTTP format.
static long parseDate(java.lang.String value, java.text.DateFormat[] threadLocalformats)
          Tries to parse the given date as an HTTP date.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

format

protected static final java.text.SimpleDateFormat format
HTTP date format.


formats

protected static final java.text.SimpleDateFormat[] formats
The set of SimpleDateFormat formats to use in getDateHeader().


gmtZone

protected static final java.util.TimeZone gmtZone
GMT time zone - all HTTP dates are on GMT


currentDateGenerated

protected static long currentDateGenerated
Instant on which the currentDate object was generated.


currentDate

protected static java.lang.String currentDate
Current formatted date.


formatCache

protected static final java.util.HashMap<java.lang.Long,java.lang.String> formatCache
Formatter cache.


parseCache

protected static final java.util.HashMap<java.lang.String,java.lang.Long> parseCache
Parser cache.

Constructor Detail

FastHttpDateFormat

public FastHttpDateFormat()
Method Detail

formatDate

public static final java.lang.String formatDate(long value,
                                                java.text.DateFormat threadLocalformat)
Formats a specified date to HTTP format. If local format is not null, it's used instead.

Parameters:
value - Date value to format
threadLocalformat - The format to use (or null -- then HTTP format will be used)
Returns:
Formatted date

getCurrentDate

public static final java.lang.String getCurrentDate()
Gets the current date in HTTP format.

Returns:
Current date in HTTP format

parseDate

public static final long parseDate(java.lang.String value,
                                   java.text.DateFormat[] threadLocalformats)
Tries to parse the given date as an HTTP date. If local format list is not null, it's used instead.

Parameters:
value - The string to parse
threadLocalformats - Array of formats to use for parsing. If null, HTTP formats are used.
Returns:
Parsed date (or -1 if error occurred)