uk.ac.starlink.table
Class TimeMapper

java.lang.Object
  extended by uk.ac.starlink.table.TimeMapper
All Implemented Interfaces:
DomainMapper

public abstract class TimeMapper
extends Object
implements DomainMapper

DomainMapper for mapping values to epochs in a common time scale. The target domain is doubles giving the number of seconds since the Unix epoch (1970-01-01T00:00:00). The time scale is generally assumed to be UTC, though conversions may not always be performed, for instance for values in which the intended time scale is not obvious.

A java (IEEE 754) double has 52+1 bits of precision, which I make 52*ln(2)/ln(10)=15.65 decimal places, and a year contains 3.15e7 seconds, which gives you the following precisions:

It should be OK for most purposes.

Since:
12 Aug 2013

Field Summary
static TimeMapper DECIMAL_YEAR
          Mapper for numeric values in decimal year (since 0 AD).
static TimeMapper ISO_8601
          Mapper for ISO-8601 strings.
static TimeMapper MJD
          Mapper for numeric values in Modified Julian Date.
static String TARGET_NAME
          Returns target domain name ("Time").
static TimeMapper UNIX_SECONDS
          Mapper for numeric values (already) in unix seconds.
 
Constructor Summary
protected TimeMapper(Class sourceClass, String sourceName, String sourceDescription)
          Constructor.
 
Method Summary
 Class getSourceClass()
          Returns the type of values from which this mapper instance can convert.
 String getSourceDescription()
          Returns a description of the type of source values which this mapper can convert from.
 String getSourceName()
          Returns a short name for the type of source values which this mapper can convert from.
 String getTargetName()
          Returns TARGET_NAME.
static TimeMapper[] getTimeMappers()
          Returns a selection of time mapper instances.
abstract  double toUnixSeconds(Object sourceValue)
          Maps a source value to time in seconds since the Unix epoch.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

TARGET_NAME

public static final String TARGET_NAME
Returns target domain name ("Time").

See Also:
Constant Field Values

DECIMAL_YEAR

public static final TimeMapper DECIMAL_YEAR
Mapper for numeric values in decimal year (since 0 AD).


MJD

public static final TimeMapper MJD
Mapper for numeric values in Modified Julian Date.


UNIX_SECONDS

public static final TimeMapper UNIX_SECONDS
Mapper for numeric values (already) in unix seconds.


ISO_8601

public static final TimeMapper ISO_8601
Mapper for ISO-8601 strings.

Constructor Detail

TimeMapper

protected TimeMapper(Class sourceClass,
                     String sourceName,
                     String sourceDescription)
Constructor.

Parameters:
sourceClass -
sourceName - source type name
sourceDescription - source type description
Method Detail

getTargetName

public final String getTargetName()
Returns TARGET_NAME.

Specified by:
getTargetName in interface DomainMapper
Returns:
domain identifier

getSourceClass

public Class getSourceClass()
Description copied from interface: DomainMapper
Returns the type of values from which this mapper instance can convert.

Specified by:
getSourceClass in interface DomainMapper
Returns:
class of mapper source objects to which this mapper can be applied

getSourceName

public String getSourceName()
Description copied from interface: DomainMapper
Returns a short name for the type of source values which this mapper can convert from.

Specified by:
getSourceName in interface DomainMapper
Returns:
mapper source type name

getSourceDescription

public String getSourceDescription()
Description copied from interface: DomainMapper
Returns a description of the type of source values which this mapper can convert from.

Specified by:
getSourceDescription in interface DomainMapper
Returns:
mapper source type description

toUnixSeconds

public abstract double toUnixSeconds(Object sourceValue)
Maps a source value to time in seconds since the Unix epoch.

Parameters:
sourceValue - value in source domain
Returns:
number of seconds since midnight 1 Jan 1970

getTimeMappers

public static TimeMapper[] getTimeMappers()
Returns a selection of time mapper instances.


Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.