Class DateColumnImpl

java.lang.Object
org.refcodes.tabular.AbstractColumn<Date>
org.refcodes.tabular.DateColumnImpl
All Implemented Interfaces:
Cloneable, org.refcodes.mixin.KeyAccessor<String>, org.refcodes.mixin.TypeAccessor<Date>, Column<Date>

public class DateColumnImpl
extends AbstractColumn<Date>
implements Cloneable
DateColumnImpl implements the Column with support for the Date type and various default or custom date formats.
  • Constructor Details

    • DateColumnImpl

      public DateColumnImpl​(String aKey)
      Constructor of the DateColumnImpl with support for the default SimpleDateFormat instances as defined in the DateFormats.DEFAULT_DATE_FORMATS.
      Parameters:
      aKey - The key to be used.
    • DateColumnImpl

      public DateColumnImpl​(String aKey, DateTimeFormatter[] aDateFormats)
      Constructor of the DateColumnImpl with support for the provided SimpleDateFormat instances.
      Parameters:
      aKey - The key to be used.
      aDateFormats - The SimpleDateFormat instances used for parsing date strings.
  • Method Details

    • toStorageStrings

      public String[] toStorageStrings​(Date aValue)
      A Column implementation can provide its own text exchange format for the given objects. This method enables the Column to convert a value of the given type to a String array and via Column.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 storage String representations of the elements in that array may be placed in dedicated entries of the returned String array. In case T is not an array type then the returned String 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 method Column.toStorageString(Object) may be used instead.
      Specified by:
      toStorageStrings in interface Column<Date>
      Parameters:
      aValue - the element to be converted to a String array.
      Returns:
      The String array representation of the value.
    • fromStorageStrings

      public Date fromStorageStrings​(String[] aStringValues) throws ParseException
      A Column implementation can provide its own text exchange format for the given objects. This method enables the Column to convert a String array value to a value of the given type and via Column.toStorageStrings(Object) back to the String 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 storage String representations of the elements in that array may be placed in dedicated entries of the provided String array. In case T is not an array type then the passed String 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 method Column.fromStorageString(String) may be used instead.
      Specified by:
      fromStorageStrings in interface Column<Date>
      Parameters:
      aStringValues - The value to be converted to a type instance.
      Returns:
      The type representation of the value.
      Throws:
      ParseException - in case parsing the String was not possible
    • toPrintable

      public String toPrintable​(Date aValue)
      A Column 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 the Column to convert a value of the given type to a human readable text. The human readable text, in comparison to the method Object.toString() (or Column.toStorageString(Object)) is not intended to be converted back to the actual value (not bijective). This method may be used a Header instance's method HeaderRow.toPrintable(Record).
      Specified by:
      toPrintable in interface Column<Date>
      Overrides:
      toPrintable in class AbstractColumn<Date>
      Parameters:
      aValue - the element to be converted to a human readable text.
      Returns:
      The human readable representation of the value.
    • clone

      public Object clone() throws CloneNotSupportedException
      Overrides:
      clone in class AbstractColumn<Date>
      Throws:
      CloneNotSupportedException