/** * Contains components that can be used to describe an arbitrary real-world time scale. * * <p/> * * The primary class in this package is the {@link au.gov.ga.earthsci.core.temporal.timescale.ITimeScale}, * which represents an arbitrary real-world time scale. * * Examples of real-world timescales include: * <ul> * <li>Geologic time scale (Eons, Eras, Periods, Epochs etc.) * <li>Human history time scale (Middle ages, Renaissance, Modern history etc.) * <li>Gregorian calendar time scale (A single span that uses days, months and years) * </ul> * * An {@link au.gov.ga.earthsci.core.temporal.timescale.ITimeScale} is composed of a hierarchy of * {@link au.gov.ga.earthsci.core.temporal.timescale.ITimePeriod}s, which exist at a number of defined * {@link au.gov.ga.earthsci.core.temporal.timescale.ITimeScaleLevel}s. * * <p/> * * {@link au.gov.ga.earthsci.core.temporal.timescale.ITimePeriod}s may overlap within a time scale - * in this case it may be up to the client to apply a heuristic to resolve multiple periods into * a single instance when attempting to choose a period for a time instant. * The default {@link au.gov.ga.earthsci.core.temporal.timescale.BasicTimePeriod} implementation * includes a pluggable filter mechanism that allows heuristics to be built into the * time scale itself - for example it might make sense to always choose the period that * 'most contains' the given time instant. * * <p/> * * A common use of the {@link au.gov.ga.earthsci.core.temporal.timescale.ITimeScale} is to retrieve * a human-readable label for a given time instant <em>in the context of a particular time scale</em>. * For example - it might make sense to use a Gregorian Calendar time scale to get a date-based label * for a time instant, and a Human History time scale to get a label that represents the period * in human history in which that time instant falls. * */ package au.gov.ga.earthsci.core.temporal.timescale;