Skip to content

Commit

Permalink
Preparation for upgrade from ISO 19111:2007 to ISO 19111:2019:
Browse files Browse the repository at this point in the history
Increase the default version number of Specification.ISO_19111
and add an explicit `version=2007` on existing interfaces.

This annotation change will help us to keep a trace of which
interfaces are done and which ones still need to be upgraded.

#72
  • Loading branch information
desruisseaux committed Aug 10, 2023
1 parent ba6fa69 commit 7a08723
Show file tree
Hide file tree
Showing 53 changed files with 89 additions and 81 deletions.
63 changes: 37 additions & 26 deletions geoapi/src/main/java/org/opengis/annotation/Specification.java
Original file line number Diff line number Diff line change
Expand Up @@ -148,46 +148,57 @@ public enum Specification {
ISO_19109((short) 2013),

/**
* ISO 19111, Spatial Referencing by Coordinates
* ISO 19111, Referencing by coordinates
* (<a href="http://www.opengeospatial.org/standards/as">OGC Topic 2</a>).
* This is the specification for package {@link org.opengis.referencing} and sub-packages.
*
* <p><b>ISO abstract:</b></p>
* <div class="note">
* <p>Defines the conceptual schema for the description of spatial referencing by
* coordinates, optionally extended to spatio-temporal referencing. It describes the minimum
* data required to define one-, two- and three-dimensional spatial coordinate reference systems
* with an extension to merged spatial-temporal reference systems. It allows additional descriptive
* information to be provided. It also describes the information required to change coordinates
* from one coordinate reference system to another.</p>
*
* <p>In ISO 19111, a coordinate reference system does not change with time.
* For coordinate reference systems defined on moving platforms such as cars, ships, aircraft and
* spacecraft, the transformation to an Earth-fixed coordinate reference system can include a time
* element.</p>
*
* <p>ISO 19111 is applicable to producers and users of geographic information.
* Although it is applicable to digital geographic data, its principles can be extended to many
* other forms of geographic data such as maps, charts and text documents.</p>
*
* <p>The schema described can be applied to the combination of horizontal
* position with a third non-spatial parameter which varies monotonically with height or depth.
* This extension to non-spatial data is beyond the scope of ISO 19111 but can be implemented
* through profiles.</p>
* <p>Defines the conceptual schema for the description of referencing by coordinates.
* It describes the minimum data required to define coordinate reference systems.
* This document supports the definition of:</p>
* <ul>
* <li>spatial coordinate reference systems where coordinate values do not change with time. The system may:
* <ul>
* <li>be geodetic and apply on a national or regional basis, or</li>
* <li>apply locally such as for a building or construction site, or</li>
* <li>apply locally to an image or image sensor;</li>
* <li>be referenced to a moving platform such as a car, a ship, an aircraft or a spacecraft.
* Such a coordinate reference system can be related to a second coordinate reference system
* which is referenced to the Earth through a transformation that includes a time element;</li>
* </ul>
* </li>
* <li>spatial coordinate reference systems in which coordinate values of points on or near the surface
* of the earth change with time due to tectonic plate motion or other crustal deformation.
* Such dynamic systems include time evolution, however they remain spatial in nature;</li>
* <li>parametric coordinate reference systems which use a non-spatial parameter that varies monotonically
* with height or depth;</li>
* <li>temporal coordinate reference systems which use dateTime, temporal count or temporal measure quantities
* that vary monotonically with time;</li>
* <li>mixed spatial, parametric or temporal coordinate reference systems.</li>
* </ul>
* <p>The definition of a coordinate reference system does not change with time,
* although in some cases some of the defining parameters can include a rate of change of the parameter.
* The coordinate values within a dynamic and in a temporal coordinate reference system can change with time.</p>
*
* <p>This document also describes the conceptual schema for defining the information required to describe
* operations that change coordinate values. In addition to the minimum data required for the definition of
* the coordinate reference system or coordinate operation, the conceptual schema allows additional descriptive
* information – coordinate reference system metadata – to be provided.</p>
* </div>
*
* <p><b>Version numbers used in GeoAPI:</b></p>
* <ul>
* <li><b>2003:</b> OGC 03-073r1</li>
* <li><b>2007:</b> ISO 19111:2007   ({@linkplain #defaultVersion() default version})</li>
* <li><b>2019:</b> ISO 19111:2019
* <li><b>2007:</b> ISO 19111:2007</li>
* <li><b>2019:</b> ISO 19111:2019   ({@linkplain #defaultVersion() default version})</li>
* </ul>
*
* @see #OGC_01009
* @see <a href="https://www.iso.org/standard/41126.html">ISO 19111:2007 on standards catalogue</a>
* @see <a href="http://portal.opengeospatial.org/files/?artifact_id=39049">Download from OGC</a>
* @see <a href="https://www.iso.org/standard/74039.html">ISO 19111:2019 on standards catalogue</a>
* @see <a href="https://portal.ogc.org/files/18-005r5">Download from OGC</a>
*/
ISO_19111((short) 2007),
ISO_19111((short) 2019),

/**
* ISO 19111-2, Part 2: Extension for parametric values
Expand Down
3 changes: 0 additions & 3 deletions geoapi/src/main/java/org/opengis/annotation/UML.java
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,6 @@
* <ul>
* <li>{@linkplain Specification#ISO_19115 ISO 19115}:2003 defined {@code PT_Locale} in a way closer
* to the {@link java.util.Locale java.util.Locale} model than the newer ISO 19115:2014.</li>
* <li>An {@linkplain Specification#ISO_19111 ISO 19111} revision by OGC defined geographic and geocentric CRS
* in a more type-safe way than ISO 19111:2007. The later model requires C/C++ {@code union} construct for
* type-safety, which does not exist in the Java language.</li>
* </ul>
*
* @return the specification version, or 0 for the default (usually latest) specification.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
* interface appears in the source code as:
*
* {@snippet lang="java" :
* @UML(identifier = "SC_ProjectedCRS", specification = ISO_19111)
* @UML(identifier = "ProjectedCRS", specification = ISO_19111)
* }
*
* These annotations are available at runtime by Java introspection. This is useful, for example,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@
* @see GeneralParameterValue
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="CC_GeneralOperationParameter", specification=ISO_19111)
@UML(identifier="CC_GeneralOperationParameter", specification=ISO_19111, version=2007)
public interface GeneralParameterDescriptor extends IdentifiedObject {
/**
* The name, as used by the service or operation for this parameter.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
* @see GeneralParameterDescriptor
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="CC_GeneralParameterValue", specification=ISO_19111)
@UML(identifier="CC_GeneralParameterValue", specification=ISO_19111, version=2007)
public interface GeneralParameterValue {
/**
* Returns the abstract definition of this parameter or group of parameters.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@
* @see ParameterValue
* @see ParameterDescriptorGroup
*/
@UML(identifier="CC_OperationParameter", specification=ISO_19111)
@UML(identifier="CC_OperationParameter", specification=ISO_19111, version=2007)
public interface ParameterDescriptor<T> extends GeneralParameterDescriptor {
/**
* Returns the name that describes the type of parameter values.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
* @see ParameterValueGroup
* @see ParameterDescriptor
*/
@UML(identifier="CC_OperationParameterGroup", specification=ISO_19111)
@UML(identifier="CC_OperationParameterGroup", specification=ISO_19111, version=2007)
public interface ParameterDescriptorGroup extends GeneralParameterDescriptor {
/**
* Returns the parameters in this group.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
* @see ParameterValueGroup
*/
@Classifier(Stereotype.UNION)
@UML(identifier="CC_ParameterValue", specification=ISO_19111)
@UML(identifier="CC_ParameterValue", specification=ISO_19111, version=2007)
public interface ParameterValue<T> extends GeneralParameterValue {
/**
* Returns the abstract definition of this parameter value.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
* @see ParameterDescriptorGroup
* @see ParameterValue
*/
@UML(identifier="CC_ParameterValueGroup", specification=ISO_19111)
@UML(identifier="CC_ParameterValueGroup", specification=ISO_19111, version=2007)
public interface ParameterValueGroup extends GeneralParameterValue {
/**
* The abstract definition of this group of parameters.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
* @since 2.0
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="IO_IdentifiedObject", specification=ISO_19111)
@UML(identifier="IO_IdentifiedObject", specification=ISO_19111, version=2007)
public interface IdentifiedObject {
/**
* Key for the <code>{@value}</code> property to be given to the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public interface ReferenceSystem extends IdentifiedObject {
* collection. The singleton has been preserved in GeoAPI for historical reasons,
* and also because the {@code Extent} attributes already allow collections.
*/
@UML(identifier="domainOfValidity", obligation=OPTIONAL, specification=ISO_19111)
@UML(identifier="domainOfValidity", obligation=OPTIONAL, specification=ISO_19111, version=2007)
default Extent getDomainOfValidity() {
return null;
}
Expand All @@ -125,7 +125,7 @@ default Extent getDomainOfValidity() {
* GeoAPI keeps the singleton type for historical reasons.</li>
* </ul>
*/
@UML(identifier="SC_CRS.scope", obligation=OPTIONAL, specification=ISO_19111)
@UML(identifier="SC_CRS.scope", obligation=OPTIONAL, specification=ISO_19111, version=2007)
default InternationalString getScope() {
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
* @see CRSAuthorityFactory#createCompoundCRS(String)
* @see CRSFactory#createCompoundCRS(Map, CoordinateReferenceSystem[])
*/
@UML(identifier="SC_CompoundCRS", specification=ISO_19111)
@UML(identifier="SC_CompoundCRS", specification=ISO_19111, version=2007)
public interface CompoundCRS extends CoordinateReferenceSystem {
/**
* The ordered list of coordinate reference systems.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
* @since 1.0
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="SC_CRS", specification=ISO_19111)
@UML(identifier="SC_CRS", specification=ISO_19111, version=2007)
public interface CoordinateReferenceSystem extends ReferenceSystem {
/**
* Returns the coordinate system of a single CRS, or a view over all coordinate systems of a compound CRS.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,6 @@
* @see CRSAuthorityFactory#createDerivedCRS(String)
* @see CRSFactory#createDerivedCRS(Map, CoordinateReferenceSystem, Conversion, CoordinateSystem)
*/
@UML(identifier="SC_DerivedCRS", specification=ISO_19111)
@UML(identifier="SC_DerivedCRS", specification=ISO_19111, version=2007)
public interface DerivedCRS extends GeneralDerivedCRS {
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@
* @see CRSAuthorityFactory#createEngineeringCRS(String)
* @see CRSFactory#createEngineeringCRS(Map, EngineeringDatum, CoordinateSystem)
*/
@UML(identifier="SC_EngineeringCRS", specification=ISO_19111)
@UML(identifier="SC_EngineeringCRS", specification=ISO_19111, version=2007)
public interface EngineeringCRS extends SingleCRS {
/**
* Returns the datum, which shall be an engineering one.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
* @since 1.0
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="SC_GeneralDerivedCRS", specification=ISO_19111)
@UML(identifier="SC_GeneralDerivedCRS", specification=ISO_19111, version=2007)
public interface GeneralDerivedCRS extends SingleCRS {
/**
* Returns the base coordinate reference system.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
* @version 3.0
* @since 2.1
*/
@UML(identifier="SC_GeodeticCRS", specification=ISO_19111)
@UML(identifier="SC_GeodeticCRS", specification=ISO_19111, version=2007)
public interface GeodeticCRS extends SingleCRS {
/**
* Returns the datum, which shall be geodetic.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
* @see CRSAuthorityFactory#createImageCRS(String)
* @see CRSFactory#createImageCRS(Map, ImageDatum, AffineCS)
*/
@UML(identifier="SC_ImageCRS", specification=ISO_19111)
@UML(identifier="SC_ImageCRS", specification=ISO_19111, version=2007)
public interface ImageCRS extends SingleCRS {
/**
* Returns the affine coordinate system, which shall be {@linkplain AffineCS affine} or
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
* @see CRSAuthorityFactory#createProjectedCRS(String)
* @see CRSFactory#createProjectedCRS(Map, GeographicCRS, Conversion, CartesianCS)
*/
@UML(identifier="SC_ProjectedCRS", specification=ISO_19111)
@UML(identifier="SC_ProjectedCRS", specification=ISO_19111, version=2007)
public interface ProjectedCRS extends GeneralDerivedCRS {
/**
* Returns the base coordinate reference system, which must be geographic.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
* @see org.opengis.referencing.datum.Datum
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="SC_SingleCRS", specification=ISO_19111)
@UML(identifier="SC_SingleCRS", specification=ISO_19111, version=2007)
public interface SingleCRS extends CoordinateReferenceSystem {
/**
* Returns the coordinate system associated to this CRS.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
* @see CRSAuthorityFactory#createVerticalCRS(String)
* @see CRSFactory#createVerticalCRS(Map, VerticalDatum, VerticalCS)
*/
@UML(identifier="SC_VerticalCRS", specification=ISO_19111)
@UML(identifier="SC_VerticalCRS", specification=ISO_19111, version=2007)
public interface VerticalCRS extends SingleCRS {
/**
* Returns the coordinate system, which shall be vertical.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,6 @@
* @see CSFactory#createAffineCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
* @see CSFactory#createAffineCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_AffineCS", specification=ISO_19111)
@UML(identifier="CS_AffineCS", specification=ISO_19111, version=2007)
public interface AffineCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
*
* @see CoordinateSystemAxis#getDirection()
*/
@UML(identifier="CS_AxisDirection", specification=ISO_19111)
@UML(identifier="CS_AxisDirection", specification=ISO_19111, version=2007)
public final class AxisDirection extends CodeList<AxisDirection> {
/**
* Serial number for compatibility with different versions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,6 @@
* @see CSFactory#createCartesianCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
* @see CSFactory#createCartesianCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_CartesianCS", specification=ISO_19111)
@UML(identifier="CS_CartesianCS", specification=ISO_19111, version=2007)
public interface CartesianCS extends AffineCS {
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
* @see org.opengis.referencing.crs.CoordinateReferenceSystem
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="CS_CoordinateSystem", specification=ISO_19111)
@UML(identifier="CS_CoordinateSystem", specification=ISO_19111, version=2007)
public interface CoordinateSystem extends IdentifiedObject {
/**
* Returns the dimension of the coordinate system.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@
* @see CSAuthorityFactory#createCoordinateSystemAxis(String)
* @see CSFactory#createCoordinateSystemAxis(Map, String, AxisDirection, Unit)
*/
@UML(identifier="CS_CoordinateSystemAxis", specification=ISO_19111)
@UML(identifier="CS_CoordinateSystemAxis", specification=ISO_19111, version=2007)
public interface CoordinateSystemAxis extends IdentifiedObject {
/**
* Returns the abbreviation used for this coordinate system axes.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@
* @see CSAuthorityFactory#createCylindricalCS(String)
* @see CSFactory#createCylindricalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_CylindricalCS", specification=ISO_19111)
@UML(identifier="CS_CylindricalCS", specification=ISO_19111, version=2007)
public interface CylindricalCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,6 @@
* @see CSFactory#createEllipsoidalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
* @see CSFactory#createEllipsoidalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_EllipsoidalCS", specification=ISO_19111)
@UML(identifier="CS_EllipsoidalCS", specification=ISO_19111, version=2007)
public interface EllipsoidalCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@
*
* @see CSFactory#createLinearCS(Map, CoordinateSystemAxis)
*/
@UML(identifier="CS_LinearCS", specification=ISO_19111)
@UML(identifier="CS_LinearCS", specification=ISO_19111, version=2007)
public interface LinearCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,6 @@
* @see CSAuthorityFactory#createPolarCS(String)
* @see CSFactory#createPolarCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_PolarCS", specification=ISO_19111)
@UML(identifier="CS_PolarCS", specification=ISO_19111, version=2007)
public interface PolarCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
*
* @see CoordinateSystemAxis#getRangeMeaning()
*/
@UML(identifier="CS_RangeMeaning", specification=ISO_19111)
@UML(identifier="CS_RangeMeaning", specification=ISO_19111, version=2007)
public final class RangeMeaning extends CodeList<RangeMeaning> {
/**
* Serial number for compatibility with different versions.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,6 @@
* @see CSAuthorityFactory#createSphericalCS(String)
* @see CSFactory#createSphericalCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_SphericalCS", specification=ISO_19111)
@UML(identifier="CS_SphericalCS", specification=ISO_19111, version=2007)
public interface SphericalCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,6 @@
* @see CSAuthorityFactory#createTimeCS(String)
* @see CSFactory#createTimeCS(Map, CoordinateSystemAxis)
*/
@UML(identifier="CS_TimeCS", specification=ISO_19111)
@UML(identifier="CS_TimeCS", specification=ISO_19111, version=2007)
public interface TimeCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,6 @@
* @see CSFactory#createUserDefinedCS(Map, CoordinateSystemAxis, CoordinateSystemAxis)
* @see CSFactory#createUserDefinedCS(Map, CoordinateSystemAxis, CoordinateSystemAxis, CoordinateSystemAxis)
*/
@UML(identifier="CS_UserDefinedCS", specification=ISO_19111)
@UML(identifier="CS_UserDefinedCS", specification=ISO_19111, version=2007)
public interface UserDefinedCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,6 @@
* @see CSAuthorityFactory#createVerticalCS(String)
* @see CSFactory#createVerticalCS(Map, CoordinateSystemAxis)
*/
@UML(identifier="CS_VerticalCS", specification=ISO_19111)
@UML(identifier="CS_VerticalCS", specification=ISO_19111, version=2007)
public interface VerticalCS extends CoordinateSystem {
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
* @see org.opengis.referencing.crs.CoordinateReferenceSystem
*/
@Classifier(Stereotype.ABSTRACT)
@UML(identifier="CD_Datum", specification=ISO_19111)
@UML(identifier="CD_Datum", specification=ISO_19111, version=2007)
public interface Datum extends IdentifiedObject {
/**
* Key for the <code>{@value}</code> property to be given to the
Expand Down
Loading

0 comments on commit 7a08723

Please sign in to comment.