This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
new 38a53c45ac Fix parameter aliases for making them compliant with EPSG
definitions.
38a53c45ac is described below
commit 38a53c45ac5401cc71c64b7289935dc0d2abda36
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Thu Sep 11 11:05:07 2025 +0200
Fix parameter aliases for making them compliant with EPSG definitions.
---
.../sis/metadata/xml/SchemaComplianceTest.java | 4 +-
.../operation/provider/AbstractLambert.java | 2 +
.../operation/provider/AbstractMercator.java | 2 +
.../operation/provider/AbstractStereographic.java | 2 +
.../operation/provider/CassiniSoldner.java | 4 ++
.../operation/provider/Equirectangular.java | 8 +++
.../provider/FranceGeocentricInterpolation.java | 4 --
.../operation/provider/GeocentricAffine.java | 31 ++++++---
.../operation/provider/GeographicOffsets.java | 3 +-
.../provider/LambertAzimuthalEqualArea.java | 4 ++
.../operation/provider/LambertConformal1SP.java | 2 +
.../provider/LambertConformalMichigan.java | 4 +-
.../operation/provider/LambertConformalWest.java | 1 +
.../provider/LambertCylindricalEqualArea.java | 4 ++
.../operation/provider/MapProjection.java | 16 +++--
.../operation/provider/Mercator1SP.java | 2 +
.../provider/ModifiedAzimuthalEquidistant.java | 4 ++
.../operation/provider/ObliqueStereographic.java | 2 +
.../operation/provider/Orthographic.java | 4 ++
.../operation/provider/PolarStereographicA.java | 2 +
.../referencing/operation/provider/Polyconic.java | 4 ++
.../operation/provider/TransverseMercator.java | 2 +
.../provider/ParameterNameTableGenerator.java | 2 +-
.../operation/provider/ProvidersTest.java | 36 +++++++---
.../org/apache/sis/test/ProjectDirectories.java | 79 ++++++----------------
25 files changed, 135 insertions(+), 93 deletions(-)
diff --git
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/xml/SchemaComplianceTest.java
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/xml/SchemaComplianceTest.java
index ae14e73538..fd401dc92f 100644
---
a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/xml/SchemaComplianceTest.java
+++
b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/xml/SchemaComplianceTest.java
@@ -61,8 +61,8 @@ public final class SchemaComplianceTest extends TestCase {
* Locate the root of metadata class directory. In a Maven build:
* "core/sis-metadata/target/classes/org/apache/sis/metadata/iso"
*/
- final ProjectDirectories dir = new
ProjectDirectories(ISOMetadata.class);
- final SchemaCompliance checker = new
SchemaCompliance(dir.classesRootDirectory, directory);
+ final var dir = new ProjectDirectories(ISOMetadata.class);
+ final var checker = new SchemaCompliance(dir.classesRootDirectory,
directory);
checker.loadDefaultSchemas();
checker.verify(dir.classesPackageDirectory);
}
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractLambert.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractLambert.java
index cf1d00d4c6..4988725c30 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractLambert.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractLambert.java
@@ -44,6 +44,7 @@ class AbstractLambert extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -61,6 +62,7 @@ class AbstractLambert extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractMercator.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractMercator.java
index 8f504819aa..fe749a2e1b 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractMercator.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractMercator.java
@@ -46,6 +46,7 @@ class AbstractMercator extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -63,6 +64,7 @@ class AbstractMercator extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractStereographic.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractStereographic.java
index 1d2acc3ff5..44874032fc 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractStereographic.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/AbstractStereographic.java
@@ -44,6 +44,7 @@ abstract class AbstractStereographic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -61,6 +62,7 @@ abstract class AbstractStereographic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/CassiniSoldner.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/CassiniSoldner.java
index d2dd6df3a7..0a23ed2345 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/CassiniSoldner.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/CassiniSoldner.java
@@ -71,6 +71,8 @@ public class CassiniSoldner extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_central_meridian </td></tr>
@@ -106,6 +108,7 @@ public class CassiniSoldner extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -123,6 +126,7 @@ public class CassiniSoldner extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Equirectangular.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Equirectangular.java
index 7a70dae255..d8eca86aea 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Equirectangular.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Equirectangular.java
@@ -138,6 +138,8 @@ public final class Equirectangular extends AbstractProvider
{
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
@@ -155,6 +157,7 @@ public final class Equirectangular extends AbstractProvider
{
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -172,6 +175,7 @@ public final class Equirectangular extends AbstractProvider
{
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
@@ -202,6 +206,8 @@ public final class Equirectangular extends AbstractProvider
{
.addIdentifier("8802")
.addIdentifier(Citations.GEOTIFF, "3088")
.addName("Longitude of natural origin")
+ .addName("Central Meridian")
+ .addName("CM")
.addName(Citations.OGC, Constants.CENTRAL_MERIDIAN)
.addName(Citations.ESRI, "Central_Meridian")
.addName(Citations.NETCDF, "longitude_of_projection_origin")
@@ -212,6 +218,7 @@ public final class Equirectangular extends AbstractProvider
{
.addIdentifier("8806")
.addIdentifier(Citations.GEOTIFF, "3082")
.addName("False easting")
+ .addName("False westing")
.addName(Citations.OGC, Constants.FALSE_EASTING)
.addName(Citations.ESRI, "False_Easting")
.addName(Citations.NETCDF, Constants.FALSE_EASTING)
@@ -222,6 +229,7 @@ public final class Equirectangular extends AbstractProvider
{
.addIdentifier("8807")
.addIdentifier(Citations.GEOTIFF, "3083")
.addName("False northing")
+ .addName("False southing")
.addName(Citations.OGC, Constants.FALSE_NORTHING)
.addName(Citations.ESRI, "False_Northing")
.addName(Citations.NETCDF, Constants.FALSE_NORTHING)
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/FranceGeocentricInterpolation.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/FranceGeocentricInterpolation.java
index 031ad2931d..920230ff01 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/FranceGeocentricInterpolation.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/FranceGeocentricInterpolation.java
@@ -153,7 +153,6 @@ public final class FranceGeocentricInterpolation extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> EPSG code for Interpolation CRS </td></tr>
- * <tr><td> EPSG: </td><td> Interpolation CRS code </td></tr>
* </table>
* <b>Notes:</b>
* <ul>
@@ -169,7 +168,6 @@ public final class FranceGeocentricInterpolation extends
AbstractProvider {
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> EPSG code for standard transformation T0
</td></tr>
* <tr><td> EPSG: </td><td> EPSG code for "standard" CT </td></tr>
- * <tr><td> EPSG: </td><td> Standard CT code </td></tr>
* </table>
* <b>Notes:</b>
* <ul>
@@ -193,13 +191,11 @@ public final class FranceGeocentricInterpolation extends
AbstractProvider {
INTERPOLATION_CRS = builder
.addIdentifier("1048")
.addName("EPSG code for Interpolation CRS")
- .addName("Interpolation CRS code")
.create(Integer.class, null);
STANDARD_CT = builder
.addIdentifier("1062")
.addName("EPSG code for standard transformation T0")
.addName("EPSG code for \"standard\" CT")
- .addName("Standard CT code")
.create(Integer.class, null);
PARAMETERS = builder
.addIdentifier("1087").addName("Geocentric translation by Grid
Interpolation (IGN)")
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeocentricAffine.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeocentricAffine.java
index 74ab1935d1..514499ad91 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeocentricAffine.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeocentricAffine.java
@@ -91,6 +91,7 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> X-axis translation </td></tr>
+ * <tr><td> EPSG: </td><td> tX </td></tr>
* <tr><td> OGC: </td><td> dx </td></tr>
* </table>
*/
@@ -105,6 +106,7 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Y-axis translation </td></tr>
+ * <tr><td> EPSG: </td><td> tY </td></tr>
* <tr><td> OGC: </td><td> dy </td></tr>
* </table>
*/
@@ -119,6 +121,7 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Z-axis translation </td></tr>
+ * <tr><td> EPSG: </td><td> tZ </td></tr>
* <tr><td> OGC: </td><td> dz </td></tr>
* </table>
*/
@@ -133,6 +136,7 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> X-axis rotation </td></tr>
+ * <tr><td> EPSG: </td><td> rX </td></tr>
* <tr><td> OGC: </td><td> ex </td></tr>
* </table>
* <b>Notes:</b>
@@ -151,6 +155,7 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Y-axis rotation </td></tr>
+ * <tr><td> EPSG: </td><td> rY </td></tr>
* <tr><td> OGC: </td><td> ey </td></tr>
* </table>
* <b>Notes:</b>
@@ -169,6 +174,7 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Z-axis rotation </td></tr>
+ * <tr><td> EPSG: </td><td> rZ </td></tr>
* <tr><td> OGC: </td><td> ez </td></tr>
* </table>
* <b>Notes:</b>
@@ -188,26 +194,33 @@ public abstract class GeocentricAffine extends
AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Scale difference </td></tr>
+ * <tr><td> EPSG: </td><td> dS </td></tr>
* <tr><td> OGC: </td><td> ppm </td></tr>
* </table>
*/
static final ParameterDescriptor<Double> DS;
static {
final ParameterBuilder builder = builder();
- TX = createShift(builder.addIdentifier("8605").addName("X-axis
translation").addName(Citations.OGC, "dx"));
- TY = createShift(builder.addIdentifier("8606").addName("Y-axis
translation").addName(Citations.OGC, "dy"));
- TZ = createShift(builder.addIdentifier("8607").addName("Z-axis
translation").addName(Citations.OGC, "dz"));
- RX = createRotation(builder.addIdentifier("8608"), "X-axis rotation",
"ex");
- RY = createRotation(builder.addIdentifier("8609"), "Y-axis rotation",
"ey");
- RZ = createRotation(builder.addIdentifier("8610"), "Z-axis rotation",
"ez");
- DS = builder.addIdentifier("8611").addName("Scale
difference").addName(Citations.OGC, "ppm").create(0, Units.PPM);
+ TX = createShift(builder.addIdentifier("8605").addName("X-axis
translation").addName("tX").addName(Citations.OGC, "dx"));
+ TY = createShift(builder.addIdentifier("8606").addName("Y-axis
translation").addName("tY").addName(Citations.OGC, "dy"));
+ TZ = createShift(builder.addIdentifier("8607").addName("Z-axis
translation").addName("tZ").addName(Citations.OGC, "dz"));
+ RX = createRotation(builder, "8608", "X-axis rotation", "rX", "ex");
+ RY = createRotation(builder, "8609", "Y-axis rotation", "rY", "ey");
+ RZ = createRotation(builder, "8610", "Z-axis rotation", "rZ", "ez");
+ DS = builder.addIdentifier("8611").addName("Scale
difference").addName("dS").addName(Citations.OGC, "ppm").create(0, Units.PPM);
}
/**
* Convenience method for building the rotation parameters.
*/
- private static ParameterDescriptor<Double> createRotation(final
ParameterBuilder builder, final String name, final String alias) {
- return builder.addName(name).addName(Citations.OGC,
alias).createBounded(-180*60*60, 180*60*60, 0, Units.ARC_SECOND);
+ private static ParameterDescriptor<Double> createRotation(final
ParameterBuilder builder, final String identifier,
+ final String name, final String alias, final String ogc)
+ {
+ return builder.addIdentifier(identifier)
+ .addName(name)
+ .addName(alias)
+ .addName(Citations.OGC, ogc)
+ .createBounded(-180*60*60, 180*60*60, 0, Units.ARC_SECOND);
}
/**
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeographicOffsets.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeographicOffsets.java
index 3ea2c8bc32..522b6ab792 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeographicOffsets.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/GeographicOffsets.java
@@ -50,6 +50,7 @@ public class GeographicOffsets extends AbstractProvider {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude offset </td></tr>
+ * <tr><td> EPSG: </td><td> Longitude rotation </td></tr>
* </table>
*/
static final ParameterDescriptor<Double> TX;
@@ -83,7 +84,7 @@ public class GeographicOffsets extends AbstractProvider {
static {
final ParameterBuilder builder = builder();
TY = builder.addIdentifier("8601").addName("Latitude offset")
.create(0, Units.DEGREE);
- TX = builder.addIdentifier("8602").addName("Longitude
offset").create(0, Units.DEGREE);
+ TX = builder.addIdentifier("8602").addName("Longitude
offset").addName("Longitude rotation").create(0, Units.DEGREE);
TZ = builder.addIdentifier("8603").addName("Vertical Offset")
.create(0, Units.METRE);
PARAMETERS = builder.addIdentifier("9660").addName("Geographic3D
offsets").createGroup(TY, TX, TZ);
}
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertAzimuthalEqualArea.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertAzimuthalEqualArea.java
index f9c873777a..df11bb7404 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertAzimuthalEqualArea.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertAzimuthalEqualArea.java
@@ -71,6 +71,8 @@ public class LambertAzimuthalEqualArea extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> longitude_of_center </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
@@ -88,6 +90,7 @@ public class LambertAzimuthalEqualArea extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -105,6 +108,7 @@ public class LambertAzimuthalEqualArea extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformal1SP.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformal1SP.java
index 57444bca81..e98d2ffa80 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformal1SP.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformal1SP.java
@@ -72,6 +72,8 @@ public final class LambertConformal1SP extends
AbstractLambert {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalMichigan.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalMichigan.java
index 293d3df310..af543b8a05 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalMichigan.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalMichigan.java
@@ -48,6 +48,7 @@ public final class LambertConformalMichigan extends
AbstractLambert {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Ellipsoid scaling factor </td></tr>
+ * <tr><td> EPSG: </td><td> K </td></tr>
* </table>
* <b>Notes:</b>
* <ul>
@@ -63,8 +64,9 @@ public final class LambertConformalMichigan extends
AbstractLambert {
static {
final ParameterBuilder builder = builder();
SCALE_FACTOR = builder
- .addIdentifier("1051")
+ .addIdentifier("1038")
.addName("Ellipsoid scaling factor")
+ .addName("K")
.createStrictlyPositive(Double.NaN, Units.UNITY);
PARAMETERS = builder
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalWest.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalWest.java
index a933357d7c..bfd4e0fe5f 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalWest.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertConformalWest.java
@@ -59,6 +59,7 @@ public final class LambertConformalWest extends
AbstractLambert {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertCylindricalEqualArea.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertCylindricalEqualArea.java
index e8b7758039..bcc6b89407 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertCylindricalEqualArea.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/LambertCylindricalEqualArea.java
@@ -73,6 +73,8 @@ public final class LambertCylindricalEqualArea extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
@@ -108,6 +110,7 @@ public final class LambertCylindricalEqualArea extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -125,6 +128,7 @@ public final class LambertCylindricalEqualArea extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/MapProjection.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/MapProjection.java
index 12431785d6..66ed6f2265 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/MapProjection.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/MapProjection.java
@@ -377,13 +377,15 @@ public abstract class MapProjection extends
AbstractProvider {
newCodes[i] = IdentifiedObjects.getIdentifier(replacement[i],
toRename[i]);
}
for (GenericName alias : template.getAlias()) {
- final Citation authority = ((Identifier) alias).getAuthority();
- for (int i=0; i<toRename.length; i++) {
- if (authority == toRename[i]) {
- if (newNames[i] == null) continue;
- alias = newNames[i];
- newNames[i] = null;
- break;
+ if (alias instanceof Identifier) {
+ final Citation authority = ((Identifier) alias).getAuthority();
+ for (int i=0; i<toRename.length; i++) {
+ if (authority == toRename[i]) {
+ if (newNames[i] == null) continue;
+ alias = newNames[i];
+ newNames[i] = null;
+ break;
+ }
}
}
builder.addName(alias);
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Mercator1SP.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Mercator1SP.java
index b46d138e33..a6750c3f00 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Mercator1SP.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Mercator1SP.java
@@ -80,6 +80,8 @@ public final class Mercator1SP extends AbstractMercator {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ModifiedAzimuthalEquidistant.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ModifiedAzimuthalEquidistant.java
index 416ac66be3..13dd6aff06 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ModifiedAzimuthalEquidistant.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ModifiedAzimuthalEquidistant.java
@@ -70,6 +70,8 @@ public final class ModifiedAzimuthalEquidistant extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> GeoTIFF: </td><td> CenterLong </td></tr>
* <tr><td> Proj4: </td><td> lon_0 </td></tr>
@@ -85,6 +87,7 @@ public final class ModifiedAzimuthalEquidistant extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> GeoTIFF: </td><td> FalseEasting </td></tr>
* <tr><td> Proj4: </td><td> x_0 </td></tr>
@@ -100,6 +103,7 @@ public final class ModifiedAzimuthalEquidistant extends
MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> GeoTIFF: </td><td> FalseNorthing </td></tr>
* <tr><td> Proj4: </td><td> y_0 </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ObliqueStereographic.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ObliqueStereographic.java
index b8cbe12fcc..75851c8e05 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ObliqueStereographic.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/ObliqueStereographic.java
@@ -64,6 +64,8 @@ public final class ObliqueStereographic extends
AbstractStereographic {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Orthographic.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Orthographic.java
index 2ec2db59d7..fb2462d50c 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Orthographic.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Orthographic.java
@@ -66,6 +66,8 @@ public class Orthographic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Longitude_Of_Center </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
@@ -101,6 +103,7 @@ public class Orthographic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -118,6 +121,7 @@ public class Orthographic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/PolarStereographicA.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/PolarStereographicA.java
index e2de3ea7fa..907e08c923 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/PolarStereographicA.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/PolarStereographicA.java
@@ -85,6 +85,8 @@ public final class PolarStereographicA extends
AbstractStereographic {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_projection_origin </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Polyconic.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Polyconic.java
index c0e60d3470..40174b17dd 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Polyconic.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/Polyconic.java
@@ -64,6 +64,8 @@ public class Polyconic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_central_meridian </td></tr>
@@ -81,6 +83,7 @@ public class Polyconic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False easting </td></tr>
+ * <tr><td> EPSG: </td><td> False westing </td></tr>
* <tr><td> OGC: </td><td> false_easting </td></tr>
* <tr><td> ESRI: </td><td> False_Easting </td></tr>
* <tr><td> NetCDF: </td><td> false_easting </td></tr>
@@ -98,6 +101,7 @@ public class Polyconic extends MapProjection {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> False northing </td></tr>
+ * <tr><td> EPSG: </td><td> False southing </td></tr>
* <tr><td> OGC: </td><td> false_northing </td></tr>
* <tr><td> ESRI: </td><td> False_Northing </td></tr>
* <tr><td> NetCDF: </td><td> false_northing </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/TransverseMercator.java
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/TransverseMercator.java
index 749c22e34e..8964d4cb0b 100644
---
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/TransverseMercator.java
+++
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/operation/provider/TransverseMercator.java
@@ -77,6 +77,8 @@ public final class TransverseMercator extends
AbstractMercator {
* <table class="sis">
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude of natural origin </td></tr>
+ * <tr><td> EPSG: </td><td> Central Meridian </td></tr>
+ * <tr><td> EPSG: </td><td> CM </td></tr>
* <tr><td> OGC: </td><td> central_meridian </td></tr>
* <tr><td> ESRI: </td><td> Central_Meridian </td></tr>
* <tr><td> NetCDF: </td><td> longitude_of_central_meridian </td></tr>
diff --git
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ParameterNameTableGenerator.java
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ParameterNameTableGenerator.java
index d37068740d..cde607ddb8 100644
---
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ParameterNameTableGenerator.java
+++
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ParameterNameTableGenerator.java
@@ -88,7 +88,7 @@ public final class ParameterNameTableGenerator extends
SimpleFileVisitor<Path> {
* For {@link #main(String[])} only.
*/
private ParameterNameTableGenerator() {
- directory = new
ProjectDirectories(getClass()).getSourcesPackageDirectory("core/sis-referencing");
+ directory = new
ProjectDirectories(getClass()).getSourcesPackageDirectory();
toSearch =
Pattern.compile(".*\\s+static\\s+.*ParameterDescriptor<\\w+>\\s*(\\w+)\\s*[=;].*");
buffer = new StringBuilder();
}
diff --git
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ProvidersTest.java
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ProvidersTest.java
index 19ba3a4126..f1c4f1e982 100644
---
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ProvidersTest.java
+++
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/operation/provider/ProvidersTest.java
@@ -271,9 +271,9 @@ public final class ProvidersTest extends TestCase {
final var aliasUsageCount = new HashMap<String, Integer>(256);
for (final Class<?> c : methods()) {
final AbstractProvider method = instance(c);
- final Identifier identifier =
IdentifiedObjects.getIdentifier(method, Citations.EPSG);
+ final String identifier = getCodeEPSG(method);
if (identifier != null) {
- final OperationMethod authoritative =
factory.createOperationMethod(identifier.getCode());
+ final OperationMethod authoritative =
factory.createOperationMethod(identifier);
final String[] aliases = getAliases(authoritative);
for (final String alias : aliases) {
aliasUsageCount.merge(alias, 1, Math::addExact);
@@ -296,10 +296,23 @@ public final class ProvidersTest extends TestCase {
GeneralParameterDescriptor parameter;
do {
if (index >= parameters.size()) {
- fail("Parameter \"" + name + "\" not found or not
in expected order in " + classe);
+ fail("Parameter \"" + name + "\" not found or not
in expected order in class " + classe);
}
parameter = parameters.get(index++);
} while (!name.equals(parameter.getName().getCode()));
+ /*
+ * Found a match. The EPSG code must be identical.
+ * Check also the aliases, ignoring the deprecated ones.
+ */
+ assertEquals(getCodeEPSG(expected),
getCodeEPSG(parameter), name);
+ final var hardCoded = new
HashSet<String>(Arrays.asList(getAliases(parameter)));
+ for (final String alias : getAliases(expected)) {
+ assertTrue(hardCoded.remove(alias),
+ () -> "Alias \"" + alias + "\" not found in
parameter \"" + name + "\" of class " + classe);
+ }
+ assertTrue(hardCoded.isEmpty(),
+ () -> "Unexpected alias \"" +
hardCoded.iterator().next()
+ + "\" in parameter \"" + name + "\" of
class " + classe);
}
}
}
@@ -313,17 +326,22 @@ public final class ProvidersTest extends TestCase {
final var hardCoded = new
HashSet<String>(Arrays.asList(getAliases(method)));
for (final String alias : entry.getValue()) {
if (aliasUsageCount.get(alias) == 1) {
- if (!hardCoded.remove(alias)) {
- fail("Alias \"" + alias + "\" not found or not in
expected order in " + classe);
- }
+ assertTrue(hardCoded.remove(alias), () -> "Alias \"" +
alias + "\" not found in class " + classe);
}
}
- if (!hardCoded.isEmpty()) {
- fail("Unexpected alias \"" + hardCoded.iterator().next() + "\"
in " + classe);
- }
+ assertTrue(hardCoded.isEmpty(),
+ () -> "Unexpected alias \"" + hardCoded.iterator().next()
+ "\" in " + classe);
}
}
+ /**
+ * Returns the identifier code in <abbr>EPSG</abbr> namespace for the
given object, or {@code null} if none.
+ */
+ private static String getCodeEPSG(final IdentifiedObject object) {
+ Identifier identifier = IdentifiedObjects.getIdentifier(object,
Citations.EPSG);
+ return (identifier != null) ? identifier.getCode() : null;
+ }
+
/**
* Returns the collection of <abbr>EPSG</abbr> aliases or abbreviations
for the given object.
*/
diff --git
a/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/ProjectDirectories.java
b/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/ProjectDirectories.java
index 97ae0de8d7..78cb1185d3 100644
---
a/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/ProjectDirectories.java
+++
b/endorsed/src/org.apache.sis.util/test/org/apache/sis/test/ProjectDirectories.java
@@ -28,25 +28,23 @@ import static org.junit.jupiter.api.Assertions.*;
/**
* Provides methods that depend on assumption on the project directory layout.
- * We currently use Maven conventions, but this class provide a central place
- * to revisit if we want to change convention in the future.
+ * This class provideS a central place to revisit when the layout changes.
*
* @author Martin Desruisseaux (Geomatys)
*/
public final class ProjectDirectories {
/**
* The directory where are stored the compiled Java classes for the
package of the given class.
- * The constructor used the given class as a sample member for getting
this package directory.
+ * The constructor uses the given class as a sample member for getting
this package directory.
*/
public final Path classesPackageDirectory;
/**
- * The root directory where are stored the compiled Java classes.
- * The constructor used the given class as a sample member for getting
this directory.
- *
- * <p>If we are running the tests from another environment than Maven
(e.g. from NetBeans project),
- * then this directory may contain all modules instead of only the module
of the class given to
- * the constructor.</p>
+ * The root directory where are stored the compiled Java classes in the
module.
+ * The constructor uses the given class as a sample member for getting
this directory.
+ * This is the directory of the package hierarchy. For example, if the
class is in the
+ * {@code org.apache.sis.referencing} module, then the filename (tip) of
this directory
+ * is that module name.
*/
public final Path classesRootDirectory;
@@ -87,34 +85,13 @@ public final class ProjectDirectories {
/**
* Returns the root directory of source Java code.
*
- * @param module module name, e.g. {@code "core/sis-referencing"}.
- * Used only if the project is not a Maven project.
* @return root directory of source Java files.
*/
- public Path getSourcesRootDirectory(final String module) {
- Path dir = getMavenModule();
- if (dir == null) {
- /*
- * This block is executed only if the compiled class file was not
found in the location
- * that we would have expected for a Maven project. Maybe the
class is in the NetBeans
- * build directory instead.
- */
- dir = classesRootDirectory;
- do {
- if (dir == null) {
- throw new AssertionError("No more parent directory.");
- }
- dir = dir.getParent();
- } while (!Files.exists(dir.resolve("pom.xml")));
- dir = dir.resolve(module.replace('/', File.separatorChar));
- }
- /*
- * At this point `dir` is the root of the Maven module
- * which contains the class given to the constructor.
- */
- dir = dir.resolve("src").resolve("main").resolve("java");
+ public Path getSourcesRootDirectory() {
+ Path dir = getProjectDirectory();
+ dir =
dir.resolve("src").resolve(classesRootDirectory.getFileName()).resolve("main");
if (!Files.isDirectory(dir)) {
- throw new AssertionError("Not a directory: " + dir);
+ throw new RuntimeException("Not a directory: " + dir);
}
return dir;
}
@@ -122,39 +99,23 @@ public final class ProjectDirectories {
/**
* Returns the directory of source code for the package of the class given
at construction time.
*
- * @param module module name, e.g. {@code "core/sis-referencing"}.
- * Used only if the project is not a Maven project.
* @return package directory of source Java files.
*/
- public Path getSourcesPackageDirectory(final String module) {
- return
getSourcesRootDirectory(module).resolve(packageName.replace('.',
File.separatorChar));
- }
-
- /**
- * Returns whether the {@link #classesRootDirectory} is the sub-directory
of a tree following Maven conventions.
- * This method verifies that the parent directories are {@code
"target/*classes"} and that the parent directory
- * contains a {@code pom.xml} file.
- *
- * @return whether we are in a Maven module.
- */
- public boolean isMavenModule() {
- return getMavenModule() != null;
+ public Path getSourcesPackageDirectory() {
+ return getSourcesRootDirectory().resolve(packageName.replace('.',
File.separatorChar));
}
/**
- * Returns the path to Maven module, or {@code null} if none.
+ * Returns the path to the sub-project.
*/
- private Path getMavenModule() {
+ private Path getProjectDirectory() {
Path dir = classesRootDirectory;
- if (dir.getFileName().toString().endsWith("classes")) {
- dir = dir.getParent();
- if (dir != null && dir.getFileName().toString().equals("target")) {
- dir = dir.getParent();
- if (dir != null &&
Files.isRegularFile(dir.resolve("pom.xml"))) {
- return dir;
- }
+ while ((dir = dir.getParent()) != null) {
+ Path p = dir.resolve("endorsed");
+ if (Files.exists(p)) {
+ return p;
}
}
- return null;
+ throw new RuntimeException("Directory not found.");
}
}