public abstract class TimeMapper extends java.lang.Object implements DomainMapper
Modifier and Type | Field and Description |
---|---|
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 |
JD
Mapper for numeric values in Julian Day.
|
static TimeMapper |
MJD
Mapper for numeric values in Modified Julian Date.
|
static TimeMapper |
UNIX_SECONDS
Mapper for numeric values (already) in unix seconds.
|
Modifier | Constructor and Description |
---|---|
protected |
TimeMapper(java.lang.Class<?> sourceClass,
java.lang.String sourceName,
java.lang.String sourceDescription)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Class<?> |
getSourceClass()
Returns the type of values from which this mapper instance can
convert.
|
java.lang.String |
getSourceDescription()
Returns a description of the type of source values which this mapper
can convert from.
|
java.lang.String |
getSourceName()
Returns a short name for the type of source values which this mapper
can convert from.
|
TimeDomain |
getTargetDomain()
Returns
TimeDomain.INSTANCE . |
static TimeMapper[] |
getTimeMappers()
Returns a selection of time mapper instances.
|
abstract double |
toUnixSeconds(java.lang.Object sourceValue)
Maps a source value to time in seconds since the Unix epoch
(1970-01-01T00:00:00).
|
public static final TimeMapper DECIMAL_YEAR
public static final TimeMapper MJD
public static final TimeMapper JD
public static final TimeMapper UNIX_SECONDS
public static final TimeMapper ISO_8601
protected TimeMapper(java.lang.Class<?> sourceClass, java.lang.String sourceName, java.lang.String sourceDescription)
sourceClass
- source classsourceName
- source type namesourceDescription
- source type descriptionpublic TimeDomain getTargetDomain()
TimeDomain.INSTANCE
.getTargetDomain
in interface DomainMapper
public java.lang.Class<?> getSourceClass()
DomainMapper
Object.class
.getSourceClass
in interface DomainMapper
public java.lang.String getSourceName()
DomainMapper
getSourceName
in interface DomainMapper
public java.lang.String getSourceDescription()
DomainMapper
getSourceDescription
in interface DomainMapper
public abstract double toUnixSeconds(java.lang.Object sourceValue)
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:
sourceValue
- value in source domainpublic static TimeMapper[] getTimeMappers()