Package io.guise.framework.converter
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
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
-
Field Summary
Fields inherited from class com.globalmentor.beans.BoundPropertyObject
NO_PROPERTY_CHANGE_LISTENERS, NO_VETOABLE_CHANGE_LISTENERS
Fields inherited from interface io.guise.framework.converter.Converter
INVALID_VALUE_MESSAGE_PROPERTY
-
Constructor Summary
ConstructorDescriptionAbstractDateStringLiteralConverter
(DateStringLiteralStyle dateStyle, TimeStringLiteralStyle timeStyle) Date style and time style constructor. -
Method Summary
Modifier and TypeMethodDescriptionprotected Date
convertDateLiteral
(String literal) Converts a literal representation of a value from the lexical space into a date value in the date value space.protected String
convertDateValue
(Date value) Converts a value from a date value space to a literal value in the lexical space.static DateFormat
createDateFormat
(DateStringLiteralStyle dateStyle, TimeStringLiteralStyle timeStyle, Locale locale, TimeZone timeZone) Creates a new date format object for the indicated styles and locale.protected DateFormat
Determines a date format object appropriate for the session's current locale and time zone.Methods inherited from class io.guise.framework.converter.AbstractConverter
getInvalidValueMessage, isEquivalent, isValidLiteral, setInvalidValueMessage
Methods inherited from class io.guise.framework.event.GuiseBoundPropertyObject
getSession
Methods inherited from class com.globalmentor.beans.BoundPropertyObject
addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, addVetoableChangeListener, createPostponedPropertyChangeEvent, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, fireVetoableChange, getForwardPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, getPropertyChangeSupport, getRepeatPropertyChangeListener, getRepeatVetoableChangeListener, getVetoableChangeListeners, getVetoableChangeListeners, getVetoableChangeSupport, hasPropertyChangeListeners, hasVetoableChangeListeners, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, removeVetoableChangeListener
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.guise.framework.converter.Converter
convertLiteral, convertValue, getSession
Methods inherited from interface com.globalmentor.beans.PropertyBindable
addPropertyChangeListener, addPropertyChangeListener, getPropertyChangeListeners, getPropertyChangeListeners, hasPropertyChangeListeners, removePropertyChangeListener, removePropertyChangeListener
-
Constructor Details
-
AbstractDateStringLiteralConverter
public AbstractDateStringLiteralConverter(DateStringLiteralStyle dateStyle, TimeStringLiteralStyle timeStyle) Date style and time style constructor.- Parameters:
dateStyle
- The date representation style, ornull
if the date should not be represented.timeStyle
- The time representation style, ornull
if the time should not be represented.- Throws:
NullPointerException
- if both the given date style and time style arenull
.
-
-
Method Details
-
getDateStyle
- Returns:
- The date representation style, or
null
if the date should not be represented.
-
getTimeStyle
- Returns:
- The time representation style, or
null
if the time should not be represented.
-
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, ornull
if the date should not be represented.timeStyle
- The date representation style, ornull
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 isnull
, or if the locale and/or time zone isnull
.IllegalArgumentException
- if both date style and time style is given and one of the styles specifies other than short/medium/long/full format.
-
convertDateValue
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 theDateFormat
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 isnull
.. - Throws:
ConversionException
- if the value cannot be converted.- See Also:
-
convertDateLiteral
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 anull
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 isnull
. - Throws:
ConversionException
- if the literal value cannot be converted.
-