Class DateFieldHandler
- All Implemented Interfaces:
ConfigurableFieldHandler
,FieldHandler
- Version:
- $Revision: 7306 $ $Date: 2005-02-09 13:04:19 -0700 (Wed, 09 Feb 2005) $
- Author:
- Keith Visco
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
A class for controlling the parse options. -
Field Summary
Fields inherited from class org.exolab.castor.mapping.AbstractFieldHandler
_properties
-
Constructor Summary
ConstructorsConstructorDescriptionDateFieldHandler
(FieldHandler fieldHandler) Creates a new DateFieldHandler using the given FieldHandler for delegation. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns true if the given object is an XMLFieldHandler that is equivalent to the delegated handler.protected static String
Returns the given date in a String format, using the ISO8601 format as specified in the W3C XML Schema 1.0 Recommendation (Part 2: Datatypes) for dateTime.Returns the value of the field associated with this descriptor from the given target object.newInstance
(Object parent) Creates a new instance of the object described by this field.protected static Date
Parses the given string, which must be in the following format: CCYY-MM-DDThh:mm:ss or CCYY-MM-DDThh:mm:ss.sss where "CC" represents the century, "YY" the year, "MM" the month and "DD" the day.protected static Date
parse
(String dateTime, DateFieldHandler.ParseOptions options) Parses the given string, which must be in the following format: CCYY-MM-DDThh:mm:ss or CCYY-MM-DDThh:mm:ss.sss where "CC" represents the century, "YY" the year, "MM" the month and "DD" the day.void
resetValue
(Object target) Sets the value of the field to a default value.static void
setAllowTimeZoneSuppression
(boolean allowTimeZoneSuppression) Sets whether or not the time zone should always be displayed when marshaling xsd:dateTime values.static void
setDefaultTimeZone
(TimeZone timeZone) Sets the default TimeZone used for comparing dates when marshaling xsd:dateTime values using this handler.static void
setSuppressMillis
(boolean suppressMillis) Sets a flag indicating whether or not Milliseconds should be suppressed upon formatting a dateTime as a String.void
setUseSQLDate
(boolean useSQLDate) Specifies that this DateFieldHandler should use java.sql.Date when creating new Date instances.void
Sets the value of the field associated with this descriptor.Methods inherited from class org.exolab.castor.xml.XMLFieldHandler
newInstance
Methods inherited from class org.exolab.castor.mapping.AbstractFieldHandler
getFieldDescriptor, hasValue, setConfiguration, setFieldDescriptor
Methods inherited from class org.exolab.castor.mapping.ExtendedFieldHandler
checkValidity
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.exolab.castor.mapping.FieldHandler
checkValidity
-
Constructor Details
-
DateFieldHandler
Creates a new DateFieldHandler using the given FieldHandler for delegation.- Parameters:
fieldHandler
- the fieldHandler for delegation.
-
-
Method Details
-
getValue
Returns the value of the field associated with this descriptor from the given target object.- Specified by:
getValue
in interfaceFieldHandler
- Overrides:
getValue
in classXMLFieldHandler
- Parameters:
target
- the object to get the value from- Returns:
- the value of the field associated with this descriptor from the given target object.
-
setValue
Sets the value of the field associated with this descriptor.- Specified by:
setValue
in interfaceFieldHandler
- Overrides:
setValue
in classXMLFieldHandler
- Parameters:
target
- the object in which to set the valuevalue
- the value of the field- Throws:
IllegalStateException
- if the value provided cannot be parsed into a legal date/time.
-
resetValue
Sets the value of the field to a default value.- Specified by:
resetValue
in interfaceFieldHandler
- Overrides:
resetValue
in classXMLFieldHandler
- Parameters:
target
- The object- Throws:
IllegalStateException
- The Java object has changed and is no longer supported by this handler, or the handler is not compatiable with the Java object
-
newInstance
Creates a new instance of the object described by this field.- Specified by:
newInstance
in interfaceFieldHandler
- Overrides:
newInstance
in classXMLFieldHandler
- Parameters:
parent
- The object for which the field is created- Returns:
- A new instance of the field's value
- Throws:
IllegalStateException
- This field is a simple type and cannot be instantiated
-
equals
Returns true if the given object is an XMLFieldHandler that is equivalent to the delegated handler. An equivalent XMLFieldHandler is an XMLFieldHandler that is an instances of the same class.- Overrides:
equals
in classXMLFieldHandler
- Parameters:
obj
- The object to compare againstthis
- Returns:
- true if the given object is an XMLFieldHandler that is equivalent to this one.
-
setAllowTimeZoneSuppression
public static void setAllowTimeZoneSuppression(boolean allowTimeZoneSuppression) Sets whether or not the time zone should always be displayed when marshaling xsd:dateTime values. If true, then the time zone will not be displayed if the time zone is the current local time zone.- Parameters:
allowTimeZoneSuppression
- if true, the time zone will not be displayed if it is the current local time zone.
-
setDefaultTimeZone
Sets the default TimeZone used for comparing dates when marshaling xsd:dateTime values using this handler. This is used when determining if the timezone can be omitted when marshaling. Default is JVM default returned by TimeZone.getDefault()- Parameters:
timeZone
- TimeZone to use instead of JVM default- See Also:
-
setSuppressMillis
public static void setSuppressMillis(boolean suppressMillis) Sets a flag indicating whether or not Milliseconds should be suppressed upon formatting a dateTime as a String.- Parameters:
suppressMillis
- a boolean when true indicates that millis should be suppressed during conversion of a dateTime to a String
-
setUseSQLDate
public void setUseSQLDate(boolean useSQLDate) Specifies that this DateFieldHandler should use java.sql.Date when creating new Date instances.- Parameters:
useSQLDate
- a boolean that when true indicates that java.sql.Date should be used instead of java.util.Date.
-
parse
Parses the given string, which must be in the following format: CCYY-MM-DDThh:mm:ss or CCYY-MM-DDThh:mm:ss.sss where "CC" represents the century, "YY" the year, "MM" the month and "DD" the day. The letter "T" is the date/time separator and "hh", "mm", "ss" represent hour, minute and second respectively.CCYY represents the Year and each 'C' and 'Y' must be a digit from 0-9. A minimum of 4 digits must be present.
MM represents the month and each 'M' must be a digit from 0-9, but together "MM" must not represent a value greater than 12. "MM" must be 2 digits, use of leading zero is required for all values less than 10.
DD represents the day of the month and each 'D' must be a digit from 0-9. DD must be 2 digits (use a leading zero if necessary) and must not be greater than 31.
'T' is the date/time separator and must exist!
hh represents the hour using 0-23. mm represents the minute using 0-59. ss represents the second using 0-60. (60 for leap second) sss represents the millisecond using 0-999.
- Parameters:
dateTime
- the string to convert to a Date- Returns:
- a new Date that represents the given string.
- Throws:
ParseException
- when the given string does not conform to the above string.
-
parse
protected static Date parse(String dateTime, DateFieldHandler.ParseOptions options) throws ParseException Parses the given string, which must be in the following format: CCYY-MM-DDThh:mm:ss or CCYY-MM-DDThh:mm:ss.sss where "CC" represents the century, "YY" the year, "MM" the month and "DD" the day. The letter "T" is the date/time separator and "hh", "mm", "ss" represent hour, minute and second respectively.CCYY represents the Year and each 'C' and 'Y' must be a digit from 0-9. A minimum of 4 digits must be present.
MM represents the month and each 'M' must be a digit from 0-9, but together "MM" must not represent a value greater than 12. "MM" must be 2 digits, use of leading zero is required for all values less than 10.
DD represents the day of the month and each 'D' must be a digit from 0-9. DD must be 2 digits (use a leading zero if necessary) and must not be greater than 31.
'T' is the date/time separator and must exist!
hh represents the hour using 0-23. mm represents the minute using 0-59. ss represents the second using 0-60. (60 for leap second) sss represents the millisecond using 0-999.
- Parameters:
dateTime
- the string to convert to a Dateoptions
- the parsing options to use- Returns:
- a new Date that represents the given string.
- Throws:
ParseException
- when the given string does not conform to the above string.
-
format
Returns the given date in a String format, using the ISO8601 format as specified in the W3C XML Schema 1.0 Recommendation (Part 2: Datatypes) for dateTime.- Parameters:
date
- the Date to format- Returns:
- the formatted string
-