Class AbstractDateStringLiteralConverter<V>

java.lang.Object
com.globalmentor.beans.BoundPropertyObject
io.guise.framework.event.GuiseBoundPropertyObject
io.guise.framework.converter.AbstractConverter<V,String>
io.guise.framework.converter.AbstractDateStringLiteralConverter<V>
Type Parameters:
V - The value type this converter supports.
All Implemented Interfaces:
com.globalmentor.beans.PropertyBindable, com.globalmentor.beans.PropertyConstrainable, Converter<V,String>
Direct Known Subclasses:
CalendarStringLiteralConverter, DateStringLiteralConverter

public abstract class AbstractDateStringLiteralConverter<V> extends AbstractConverter<V,String>
An object that can convert a date object from and to a string. This implementation caches a date format and only creates a new one if the locale has changed. This implementation synchronizes all conversions on the DateFormat object. This implementation ensures that all date formats use the "yyyy" rather than "yy" year format if possible.
Author:
Garret Wilson
  • Constructor Details

    • AbstractDateStringLiteralConverter

      public AbstractDateStringLiteralConverter(DateStringLiteralStyle dateStyle, TimeStringLiteralStyle timeStyle)
      Date style and time style constructor.
      Parameters:
      dateStyle - The date representation style, or null if the date should not be represented.
      timeStyle - The time representation style, or null if the time should not be represented.
      Throws:
      NullPointerException - if both the given date style and time style are null.
  • Method Details

    • getDateStyle

      public DateStringLiteralStyle getDateStyle()
      Returns:
      The date representation style, or null if the date should not be represented.
    • getTimeStyle

      public TimeStringLiteralStyle getTimeStyle()
      Returns:
      The time representation style, or null if the time should not be represented.
    • getDateFormat

      protected DateFormat getDateFormat()
      Determines a date format object appropriate for the session's current locale and time zone.
      Returns:
      A date format object appropriate for the session's current locale.
      See Also:
    • createDateFormat

      public static DateFormat createDateFormat(DateStringLiteralStyle dateStyle, TimeStringLiteralStyle timeStyle, Locale locale, TimeZone timeZone)
      Creates a new date format object for the indicated styles and locale. This implementation does not allow both date and time styles to be specified if one of the styles specifies other than short/medium/long/full format.
      Parameters:
      dateStyle - The date representation style, or null if the date should not be represented.
      timeStyle - The date representation style, or null if the date should not be represented.
      locale - The locale for which a date format should be created.
      timeZone - The time zone for which a date format should be created.
      Returns:
      A date format object appropriate for the given locale.
      Throws:
      NullPointerException - if the both the date style and time style is null, or if the locale and/or time zone is null.
      IllegalArgumentException - if both date style and time style is given and one of the styles specifies other than short/medium/long/full format.
    • convertDateValue

      protected String convertDateValue(Date value) throws ConversionException
      Converts a value from a date value space to a literal value in the lexical space. This implementation converts the value using the date format object. This implementation synchronizes on the DateFormat instance.
      Parameters:
      value - The value in the value space to convert.
      Returns:
      The converted value in the lexical space, or null if the given literal is null..
      Throws:
      ConversionException - if the value cannot be converted.
      See Also:
    • convertDateLiteral

      protected Date convertDateLiteral(String literal) throws ConversionException
      Converts a literal representation of a value from the lexical space into a date value in the date value space. This implementation converts the empty string to a null value.
      Parameters:
      literal - The literal value in the lexical space to convert.
      Returns:
      The converted value in the value space, or null if the given literal is null.
      Throws:
      ConversionException - if the literal value cannot be converted.