All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opengis.temporal.Calendar Maven / Gradle / Ivy

There is a newer version: 24.2-oss84-1
Show newest version
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2011, Open Source Geospatial Foundation (OSGeo)
 *    (C) 2005, Open Geospatial Consortium Inc.
 *
 *    All Rights Reserved. http://www.opengis.org/legal/
 */
package org.opengis.temporal;

import static org.opengis.annotation.Obligation.*;
import static org.opengis.annotation.Specification.*;

import java.util.Collection;
import org.opengis.annotation.UML;

/**
 * A discrete temporal reference system that provides a basis for defining temporal position to a
 * resolution of one day.
 *
 * @author Alexander Petkov
 */
@UML(identifier = "TM_Calendar", specification = ISO_19108)
public interface Calendar extends TemporalReferenceSystem {
    /**
     * Converts a {@linkplain CalendarDate date} in this calendar to a {@linkplain JulianDate julian
     * date}.
     */
    @UML(identifier = "dateTrans", obligation = MANDATORY, specification = ISO_19108)
    JulianDate dateTrans(CalendarDate date, ClockTime time);

    /**
     * Converts a {@linkplain JulianDate julian date} to a {@linkplain CalendarDate date} in this
     * calendar.
     */
    @UML(identifier = "julTrans", obligation = MANDATORY, specification = ISO_19108)
    CalendarDate julTrans(JulianDate julian);

    /**
     * links this calendar to the {@linkplain CalendarEra calendar eras} that it uses as a reference
     * for dating.
     *
     * @todo The original version of this class returned {@code TemporalCalendarEra}, which doesn't
     *     exists in the provided sources. I assumed that it was a typo and that the actual class
     *     was {@link CalendarEra}.
     */
    @UML(identifier = "Basis", specification = ISO_19108)
    Collection getBasis();

    /**
     * Links this calendar to the {@linkplain Clock clock} that is used for specifying temporal
     * positions within the smallest calendar interval.
     *
     * @todo Method name doesn't match the UML identifier.
     */
    @UML(identifier = "Resolution", specification = ISO_19108)
    Clock getClock();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy