Package org.refcodes.tabular
Class DateColumnImpl
- java.lang.Object
-
- org.refcodes.tabular.AbstractColumn<java.util.Date>
-
- org.refcodes.tabular.DateColumnImpl
-
- All Implemented Interfaces:
java.lang.Cloneable
,org.refcodes.mixin.KeyAccessor<java.lang.String>
,org.refcodes.mixin.TypeAccessor<java.util.Date>
,Column<java.util.Date>
public class DateColumnImpl extends AbstractColumn<java.util.Date> implements java.lang.Cloneable
DateColumnImpl
implements theColumn
with support for theDate
type and various default or custom date formats.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.refcodes.mixin.KeyAccessor
org.refcodes.mixin.KeyAccessor.KeyBuilder<K extends java.lang.Object,B extends org.refcodes.mixin.KeyAccessor.KeyBuilder<K,B>>, org.refcodes.mixin.KeyAccessor.KeyMutator<K extends java.lang.Object>, org.refcodes.mixin.KeyAccessor.KeyProperty<K extends java.lang.Object>
-
-
Constructor Summary
Constructors Constructor Description DateColumnImpl(java.lang.String aKey)
Constructor of theDateColumnImpl
with support for the defaultSimpleDateFormat
instances as defined in theDateFormats.DEFAULT_DATE_FORMATS
.DateColumnImpl(java.lang.String aKey, java.time.format.DateTimeFormatter[] aDateFormats)
Constructor of theDateColumnImpl
with support for the providedSimpleDateFormat
instances.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
clone()
java.util.Date
fromStorageStrings(java.lang.String[] aStringValues)
AColumn
implementation can provide its own text exchange format for the given objects.java.lang.String
toPrintable(java.util.Date aValue)
AColumn
implementation can provide its own printable format of the given objects; for example a human readable text representation of the value (or in very specialized cases even enriched with ANSI escape codes).java.lang.String[]
toStorageStrings(java.util.Date aValue)
AColumn
implementation can provide its own text exchange format for the given objects.-
Methods inherited from class org.refcodes.tabular.AbstractColumn
contains, fromStorageString, get, getKey, getType, remove, toStorageString
-
-
-
-
Constructor Detail
-
DateColumnImpl
public DateColumnImpl(java.lang.String aKey)
Constructor of theDateColumnImpl
with support for the defaultSimpleDateFormat
instances as defined in theDateFormats.DEFAULT_DATE_FORMATS
.- Parameters:
aKey
- The key to be used.
-
DateColumnImpl
public DateColumnImpl(java.lang.String aKey, java.time.format.DateTimeFormatter[] aDateFormats)
Constructor of theDateColumnImpl
with support for the providedSimpleDateFormat
instances.- Parameters:
aKey
- The key to be used.aDateFormats
- TheSimpleDateFormat
instances used for parsing date strings.
-
-
Method Detail
-
toStorageStrings
public java.lang.String[] toStorageStrings(java.util.Date aValue)
AColumn
implementation can provide its own text exchange format for the given objects. This method enables theColumn
to convert a value of the given type to aString
array and viaColumn.fromStorageStrings(String[])
back to the value (bijective). This method supports data sinks (such as Amazon's SimpleDb) which provide dedicated support for multiple values in a row's entry: In case T is an array type, then the storageString
representations of the elements in that array may be placed in dedicated entries of the returnedString
array. In case T is not an array type then the returnedString
array may contain just one value. In case data sinks (such as relational databases) are to be addressed which allow only a single value in a row's entry, then the methodColumn.toStorageString(Object)
may be used instead.- Specified by:
toStorageStrings
in interfaceColumn<java.util.Date>
- Parameters:
aValue
- the element to be converted to aString
array.- Returns:
- The
String
array representation of the value.
-
fromStorageStrings
public java.util.Date fromStorageStrings(java.lang.String[] aStringValues) throws java.text.ParseException
AColumn
implementation can provide its own text exchange format for the given objects. This method enables theColumn
to convert aString
array value to a value of the given type and viaColumn.toStorageStrings(Object)
back to theString
array (bijective). This method supports data sinks (such as Amazon's SimpleDb) which provide dedicated support for multiple values in a row's entry: In case T is an array type, then the storageString
representations of the elements in that array may be placed in dedicated entries of the providedString
array. In case T is not an array type then the passedString
array may contain just one value. In case data sinks (such as relational databases) are to be addressed which allow only a single value in a row's entry, then the methodColumn.fromStorageString(String)
may be used instead.- Specified by:
fromStorageStrings
in interfaceColumn<java.util.Date>
- Parameters:
aStringValues
- The value to be converted to a type instance.- Returns:
- The type representation of the value.
- Throws:
java.text.ParseException
- in case parsing theString
was not possible
-
toPrintable
public java.lang.String toPrintable(java.util.Date aValue)
AColumn
implementation can provide its own printable format of the given objects; for example a human readable text representation of the value (or in very specialized cases even enriched with ANSI escape codes). This method enables theColumn
to convert a value of the given type to a human readable text. The human readable text, in comparison to the methodObject.toString()
(orColumn.toStorageString(Object)
) is not intended to be converted back to the actual value (not bijective). This method may be used aHeader
instance's methodHeaderTemplate.toPrintable(Record)
.- Specified by:
toPrintable
in interfaceColumn<java.util.Date>
- Overrides:
toPrintable
in classAbstractColumn<java.util.Date>
- Parameters:
aValue
- the element to be converted to a human readable text.- Returns:
- The human readable representation of the value.
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
- Overrides:
clone
in classAbstractColumn<java.util.Date>
- Throws:
java.lang.CloneNotSupportedException
-
-