Class NullSafeDateTimeConverter

java.lang.Object
org.apache.commons.beanutils.converters.AbstractConverter
io.milton.http.annotated.NullSafeDateTimeConverter
All Implemented Interfaces:
org.apache.commons.beanutils.Converter

public class NullSafeDateTimeConverter extends org.apache.commons.beanutils.converters.AbstractConverter
Null safe and pulls the timezone from the request using DataBinder.getTimeZoneForRequest Mostly copied from DateTimeConverter
Author:
brad
  • Constructor Details

    • NullSafeDateTimeConverter

      public NullSafeDateTimeConverter()
      Construct a Date/Time Converter that throws a ConversionException if an error occurs.
    • NullSafeDateTimeConverter

      public NullSafeDateTimeConverter(Object defaultValue)
      Construct a Date/Time Converter that returns a default value if an error occurs.
      Parameters:
      defaultValue - The default value to be returned if the value to be converted is missing or an error occurs converting the value.
  • Method Details

    • handleMissing

      protected Object handleMissing(Class type)
      Overrides:
      handleMissing in class org.apache.commons.beanutils.converters.AbstractConverter
    • getDefaultType

      protected Class getDefaultType()
      Specified by:
      getDefaultType in class org.apache.commons.beanutils.converters.AbstractConverter
    • getTimeZone

      public TimeZone getTimeZone()
    • setUseLocaleFormat

      public void setUseLocaleFormat(boolean useLocaleFormat)
      Indicate whether conversion should use a format/pattern or not.
      Parameters:
      useLocaleFormat - true if the format for the locale should be used, otherwise false
    • getLocale

      public Locale getLocale()
      Return the Locale for the Converter (or null if none specified).
      Returns:
      The locale to use for conversion
    • setLocale

      public void setLocale(Locale locale)
      Set the Locale for the Converter.
      Parameters:
      locale - The Locale.
    • setPattern

      public void setPattern(String pattern)
      Set a date format pattern to use to convert dates to/from a java.lang.String.
      Parameters:
      pattern - The format pattern.
      See Also:
    • getPatterns

      public String[] getPatterns()
      Return the date format patterns used to convert dates to/from a java.lang.String (or null if none specified).
      Returns:
      Array of format patterns.
      See Also:
    • setPatterns

      public void setPatterns(String[] patterns)
      Set the date format patterns to use to convert dates to/from a java.lang.String.
      Parameters:
      patterns - Array of format patterns.
      See Also:
    • convertToString

      protected String convertToString(Object value) throws Throwable
      Convert an input Date/Calendar object into a String.

      N.B.If the converter has been configured to with one or more patterns (using setPatterns()), then the first pattern will be used to format the date into a String. Otherwise the default DateFormat for the default locale (and style if configured) will be used.

      Overrides:
      convertToString in class org.apache.commons.beanutils.converters.AbstractConverter
      Parameters:
      value - The input value to be converted
      Returns:
      the converted String value.
      Throws:
      Throwable - if an error occurs converting to a String
    • convertToType

      protected Object convertToType(Class targetType, Object value) throws Exception
      Convert the input object into a Date object of the specified type.

      This method handles conversions between the following types:

      • java.util.Date
      • java.util.Calendar
      • java.sql.Date
      • java.sql.Time
      • java.sql.Timestamp
      It also handles conversion from a String to any of the above types.

      For String conversion, if the converter has been configured with one or more patterns (using setPatterns()), then the conversion is attempted with each of the specified patterns. Otherwise the default DateFormat for the default locale (and style if configured) will be used.

      Specified by:
      convertToType in class org.apache.commons.beanutils.converters.AbstractConverter
      Parameters:
      targetType - Data type to which this value should be converted.
      value - The input value to be converted.
      Returns:
      The converted value.
      Throws:
      Exception - if conversion cannot be performed successfully
    • getFormat

      protected DateFormat getFormat(Locale locale, TimeZone timeZone)
      Return a DateFormat for the Locale.
      Parameters:
      locale - The Locale to create the Format with (may be null)
      timeZone - The Time Zone create the Format with (may be null)
      Returns:
      A Date Format.
    • toString

      public String toString()
      Provide a String representation of this date/time converter.
      Overrides:
      toString in class org.apache.commons.beanutils.converters.AbstractConverter
      Returns:
      A String representation of this date/time converter