Enum CommonCRS.Temporal

java.lang.Object
java.lang.Enum<CommonCRS.Temporal>
org.apache.sis.referencing.CommonCRS.Temporal
All Implemented Interfaces:
Serializable, Comparable<CommonCRS.Temporal>, java.lang.constant.Constable
Enclosing class:
CommonCRS

public static enum CommonCRS.Temporal extends Enum<CommonCRS.Temporal>
Frequently-used temporal CRS and datum that are guaranteed to be available in SIS.

Referencing objects are cached after creation. Invoking the same method on the same Temporal instance twice will return the same IdentifiedObject instance, unless the internal cache has been cleared (e.g. the application is running in a container environment and some modules have been installed or uninstalled).

Example: the following code fetches a temporal Coordinate Reference System using the Julian calendar:

Below is an alphabetical list of object names available in this enumeration. Note that the namespace of identifiers ("OGC" versus "SIS") may change in any future version.
Temporal objects accessible by enumeration constants
Name or alias Identifier Object type Enumeration value
Dublin Julian SIS:DublinJulian CRS, Datum DUBLIN_JULIAN
Java time SIS:JavaTime CRS JAVA
Julian OGC:JulianDate CRS, Datum JULIAN
Modified Julian SIS:ModifiedJulianDate CRS, Datum MODIFIED_JULIAN
Truncated Julian OGC:TruncatedJulianDate CRS, Datum TRUNCATED_JULIAN
Unix/POSIX time OGC:UnixTime CRS, Datum UNIX
Since:
0.4
Version:
1.3
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class java.lang.Enum

    Enum.EnumDesc<E extends Enum<E>>
  • Enum Constant Summary

    Enum Constants
    Enum Constant
    Description
    Time measured as days since December 31, 1899 at 12:00 UTC.
    Time measured as milliseconds since January 1st, 1970 at 00:00 UTC.
    Time measured as days since January 1st, 4713 BC at 12:00 UTC in proleptic Julian calendar.
    Time measured as days since November 17, 1858 at 00:00 UTC.
    Time measured as days since May 24, 1968 at 00:00 UTC.
    Time measured as seconds since January 1st, 1970 at 00:00 UTC.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private org.opengis.referencing.IdentifiedObject
    The cached object.
    private final long
    The date and time origin of this temporal datum.
    private final String
    Identifier in OGC or SIS namespace.
    private final boolean
    Whether the identifier is in OGC namespace.
    private final short
    The resource keys for the name as one of the Vocabulary.Keys constants.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
    Temporal(short name, long epoch, String identifier, boolean isOGC)
    Creates a new enumeration value of the given name with time counted since the given epoch.
  • Method Summary

    Modifier and Type
    Method
    Description
    (package private) final void
    Invoked by when the cache needs to be cleared after a classpath change.
    org.opengis.referencing.crs.TemporalCRS
    crs()
    Returns the coordinate reference system associated to this temporal object.
    private static org.opengis.referencing.crs.TemporalCRS
    crs(org.opengis.referencing.IdentifiedObject object)
    Returns the temporal CRS associated to the given object, or null if none.
    private org.opengis.referencing.cs.TimeCS
    cs()
    Creates the coordinate system associated to this temporal object.
    org.opengis.referencing.datum.TemporalDatum
    Returns the datum associated to this temporal object.
    private static org.opengis.referencing.datum.TemporalDatum
    datum(org.opengis.referencing.IdentifiedObject object)
    Returns the datum associated to the given object, or null if none.
    Returns the enumeration value for the given epoch, or null if none.
    forIdentifier(String identifier, boolean onlyOGC)
    Returns the enumeration value for the given identifier (without namespace).
    Returns the enum constant of this type with the specified name.
    Returns an array containing the constants of this enum type, in the order they are declared.

    Methods inherited from class java.lang.Object

    getClass, notify, notifyAll, wait, wait, wait
  • Enum Constant Details

    • JULIAN

      public static final CommonCRS.Temporal JULIAN
      Time measured as days since January 1st, 4713 BC at 12:00 UTC in proleptic Julian calendar. This epoch is equivalent to November 24, 4714 BC when expressed in the proleptic Gregorian calendar instead of the Julian one.

      Note on dates formatting: the legacy date/time formatting classes in the java.text package uses the proleptic Julian calendar for dates before October 15, 1582, while the new date/time formatting classes in the java.time.format package use the ISO-8601 calendar system, which is equivalent to the proleptic Gregorian calendar for every dates. For parsing and formatting of Julian days, the SimpleDateFormat class is closer to the common practice (but not ISO 8601 compliant).

    • MODIFIED_JULIAN

      public static final CommonCRS.Temporal MODIFIED_JULIAN
      Time measured as days since November 17, 1858 at 00:00 UTC. A Modified Julian day (MJD) is defined relative to Julian day (JD) as MJD = JD − 2400000.5.
    • TRUNCATED_JULIAN

      public static final CommonCRS.Temporal TRUNCATED_JULIAN
      Time measured as days since May 24, 1968 at 00:00 UTC. This epoch was introduced by NASA for the space program. A Truncated Julian day (TJD) is defined relative to Julian day (JD) as TJD = JD − 2440000.5.
    • DUBLIN_JULIAN

      public static final CommonCRS.Temporal DUBLIN_JULIAN
      Time measured as days since December 31, 1899 at 12:00 UTC. A Dublin Julian day (DJD) is defined relative to Julian day (JD) as DJD = JD − 2415020.
    • UNIX

      public static final CommonCRS.Temporal UNIX
      Time measured as seconds since January 1st, 1970 at 00:00 UTC.
    • JAVA

      public static final CommonCRS.Temporal JAVA
      Time measured as milliseconds since January 1st, 1970 at 00:00 UTC.
  • Field Details

    • key

      private final short key
      The resource keys for the name as one of the Vocabulary.Keys constants.
    • epoch

      private final long epoch
      The date and time origin of this temporal datum.
    • identifier

      private final String identifier
      Identifier in OGC or SIS namespace.
      See Also:
    • isOGC

      private final boolean isOGC
      Whether the identifier is in OGC namespace.
    • cached

      private transient volatile org.opengis.referencing.IdentifiedObject cached
      The cached object. This is initially null, then set to various kinds of objects depending on which method has been invoked. The kind of object stored in this field may change during the application execution.
  • Constructor Details

    • Temporal

      private Temporal(short name, long epoch, String identifier, boolean isOGC)
      Creates a new enumeration value of the given name with time counted since the given epoch.
  • Method Details

    • values

      public static CommonCRS.Temporal[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static CommonCRS.Temporal valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • clear

      final void clear()
      Invoked by when the cache needs to be cleared after a classpath change.
    • forIdentifier

      public static CommonCRS.Temporal forIdentifier(String identifier, boolean onlyOGC)
      Returns the enumeration value for the given identifier (without namespace). Identifiers in OGC namespace are "JulianDate", "TruncatedJulianDate" and "UnixTime". Identifiers in SIS namespace are "ModifiedJulianDate", "DublinJulian" and "JavaTime". Note that the content of OGC and SIS namespaces may change in any future version.
      Parameters:
      identifier - case-insensitive identifier of the desired temporal CRS, without namespace.
      onlyOGC - whether to return the CRS only if its identifier is in OGC namespace.
      Returns:
      the enumeration value for the given identifier.
      Throws:
      IllegalArgumentException - if the given identifier is not recognized.
      Since:
      1.3
      See Also:
    • forEpoch

      @OptionalCandidate public static CommonCRS.Temporal forEpoch(Instant epoch)
      Returns the enumeration value for the given epoch, or null if none. If the epoch is January 1st, 1970, then this method returns UNIX.
      Parameters:
      epoch - the epoch for which to get an enumeration value, or null.
      Returns:
      the enumeration value for the given epoch, or null if none.
      Since:
      1.0
    • crs

      public org.opengis.referencing.crs.TemporalCRS crs()
      Returns the coordinate reference system associated to this temporal object. The following table summarizes the CRS known to this class, together with an enumeration value that can be used for fetching that CRS:
      Commonly used temporal CRS
      Name or alias Enum
      Dublin Julian DUBLIN_JULIAN
      Julian JULIAN
      Modified Julian MODIFIED_JULIAN
      Truncated Julian TRUNCATED_JULIAN
      Unix/POSIX UNIX
      Java Date JAVA
      Returns:
      the CRS associated to this enum.
      See Also:
    • cs

      private org.opengis.referencing.cs.TimeCS cs()
      Creates the coordinate system associated to this temporal object. This method does not cache the coordinate system.
    • datum

      public org.opengis.referencing.datum.TemporalDatum datum()
      Returns the datum associated to this temporal object. The following table summarizes the datum known to this class, together with an enumeration value that can be used for fetching that datum:
      Commonly used temporal datum
      Name or alias Enum
      Dublin Julian DUBLIN_JULIAN
      Julian JULIAN
      Modified Julian MODIFIED_JULIAN
      Truncated Julian TRUNCATED_JULIAN
      Unix/POSIX or Java UNIX
      Returns:
      the datum associated to this enum.
      See Also:
    • crs

      private static org.opengis.referencing.crs.TemporalCRS crs(org.opengis.referencing.IdentifiedObject object)
      Returns the temporal CRS associated to the given object, or null if none.
    • datum

      private static org.opengis.referencing.datum.TemporalDatum datum(org.opengis.referencing.IdentifiedObject object)
      Returns the datum associated to the given object, or null if none.