Add additional information about parameter: value domain, default value, whether it is optional.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java
index 10a6944..4ee8e02 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/AlbersEqualArea.java
@@ -94,6 +94,10 @@
* <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
* <tr><td> Proj4: </td><td> lat_1 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL_1;
@@ -111,6 +115,10 @@
* <tr><td> GeoTIFF: </td><td> StdParallel2 </td></tr>
* <tr><td> Proj4: </td><td> lat_2 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL_2;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
index 3e74abd..8469aec 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Equirectangular.java
@@ -102,6 +102,11 @@
* <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
* <tr><td> Proj4: </td><td> lat_ts </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (-90.0 … 90.0)°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL;
@@ -122,6 +127,12 @@
* <tr><td> GeoTIFF: </td><td> CenterLat </td></tr>
* <tr><td> Proj4: </td><td> lat_0 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value restricted to 0</li>
+ * <li>No default value</li>
+ * <li>Optional</li>
+ * </ul>
*/
static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
index 4e6f4af..453fa3c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/FranceGeocentricInterpolation.java
@@ -144,6 +144,10 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Geocentric translation file </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Default value: {@code gr3df97a.txt}</li>
+ * </ul>
*/
public static final ParameterDescriptor<Path> FILE;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
index 6329809..032ecd2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffine.java
@@ -128,6 +128,11 @@
* <tr><td> EPSG: </td><td> X-axis rotation </td></tr>
* <tr><td> OGC: </td><td> ex </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [-648000.0 … 648000.0]″</li>
+ * <li>No default value</li>
+ * </ul>
*/
static final ParameterDescriptor<Double> RX;
@@ -142,6 +147,11 @@
* <tr><td> EPSG: </td><td> Y-axis rotation </td></tr>
* <tr><td> OGC: </td><td> ey </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [-648000.0 … 648000.0]″</li>
+ * <li>No default value</li>
+ * </ul>
*/
static final ParameterDescriptor<Double> RY;
@@ -156,6 +166,11 @@
* <tr><td> EPSG: </td><td> Z-axis rotation </td></tr>
* <tr><td> OGC: </td><td> ez </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [-648000.0 … 648000.0]″</li>
+ * <li>No default value</li>
+ * </ul>
*/
static final ParameterDescriptor<Double> RZ;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
index f6cf1a2..5c9d580 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeocentricAffineBetweenGeographic.java
@@ -70,6 +70,12 @@
* <caption>Parameter names</caption>
* <tr><td> OGC: </td><td> dim </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [2…3]</li>
+ * <li>No default value</li>
+ * <li>Optional</li>
+ * </ul>
*/
public static final ParameterDescriptor<Integer> DIMENSION;
@@ -82,6 +88,11 @@
* <caption>Parameter names</caption>
* <tr><td> OGC: </td><td> src_semi_major </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) m</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SRC_SEMI_MAJOR;
@@ -94,6 +105,11 @@
* <caption>Parameter names</caption>
* <tr><td> OGC: </td><td> src_semi_minor </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) m</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SRC_SEMI_MINOR;
@@ -106,6 +122,11 @@
* <caption>Parameter names</caption>
* <tr><td> OGC: </td><td> tgt_semi_major </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) m</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> TGT_SEMI_MAJOR;
@@ -118,6 +139,11 @@
* <caption>Parameter names</caption>
* <tr><td> OGC: </td><td> tgt_semi_minor </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) m</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> TGT_SEMI_MINOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java
index 26b1fb2..97c283e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/GeographicToGeocentric.java
@@ -76,6 +76,12 @@
* <caption>Parameter names</caption>
* <tr><td> SIS: </td><td> dim </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [2…3]</li>
+ * <li>Default value: 3</li>
+ * <li>Optional</li>
+ * </ul>
*/
public static final ParameterDescriptor<Integer> DIMENSION;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java
index c7db3c0..1c8f138 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal1SP.java
@@ -61,6 +61,10 @@
* <tr><td> GeoTIFF: </td><td> NatOriginLat </td></tr>
* <tr><td> Proj4: </td><td> lat_0 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN;
@@ -95,6 +99,11 @@
* <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR = Mercator1SP.SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
index 159fbac..2b7f8eb 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformal2SP.java
@@ -97,6 +97,10 @@
* <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
* <tr><td> Proj4: </td><td> lat_1 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL_1;
@@ -114,6 +118,10 @@
* <tr><td> GeoTIFF: </td><td> StdParallel2 </td></tr>
* <tr><td> Proj4: </td><td> lat_2 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL_2;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java
index 90d3ca6..8143960 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertConformalMichigan.java
@@ -52,6 +52,11 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Ellipsoid scaling factor </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java
index 92e2a63..8cedc5d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/LambertCylindricalEqualArea.java
@@ -58,6 +58,11 @@
* <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
* <tr><td> Proj4: </td><td> lat_ts </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (-90.0 … 90.0)°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL = Equirectangular.STANDARD_PARALLEL;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
index ee072ae..d1675b6 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
@@ -85,6 +85,11 @@
* <tr><td> GeoTIFF: </td><td> SemiMajorAxis </td></tr>
* <tr><td> Proj4: </td><td> a </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) m</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final DefaultParameterDescriptor<Double> SEMI_MAJOR;
@@ -103,6 +108,11 @@
* <tr><td> GeoTIFF: </td><td> SemiMinorAxis </td></tr>
* <tr><td> Proj4: </td><td> b </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) m</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final DefaultParameterDescriptor<Double> SEMI_MINOR;
@@ -115,6 +125,11 @@
* <caption>Parameter names</caption>
* <tr><td> SIS: </td><td> eccentricity </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [0.0 … 1.0]</li>
+ * <li>No default value</li>
+ * </ul>
*/
@Debug
public static final DefaultParameterDescriptor<Double> ECCENTRICITY;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
index 70fe4d4..0552b71 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator1SP.java
@@ -59,6 +59,11 @@
* <tr><td> GeoTIFF: </td><td> NatOriginLat </td></tr>
* <tr><td> Proj4: </td><td> lat_0 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value restricted to 0</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN;
@@ -93,6 +98,11 @@
* <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
index 48cfce7..9569b39 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Mercator2SP.java
@@ -64,6 +64,11 @@
* <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
* <tr><td> Proj4: </td><td> lat_ts </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (-90.0 … 90.0)°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL = Equirectangular.STANDARD_PARALLEL;
@@ -83,6 +88,12 @@
* <tr><td> ESRI: </td><td> Scale_Factor </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * <li>Optional</li>
+ * </ul>
*/
static final ParameterDescriptor<Double> SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
index 73cc0b0..7bb3083 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Molodensky.java
@@ -83,6 +83,10 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Semi-major axis length difference </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> AXIS_LENGTH_DIFFERENCE;
@@ -96,6 +100,11 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Flattening difference </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [-1.0 … 1.0]</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> FLATTENING_DIFFERENCE;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java
index a132655..67e9823 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NADCON.java
@@ -79,6 +79,10 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Latitude difference file </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Default value: {@code conus.las}</li>
+ * </ul>
*/
private static final ParameterDescriptor<Path> LATITUDE;
@@ -91,6 +95,10 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Longitude difference file </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Default value: {@code conus.los}</li>
+ * </ul>
*/
private static final ParameterDescriptor<Path> LONGITUDE;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java
index 883a641..c65afec 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/NTv2.java
@@ -81,6 +81,10 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Latitude and longitude difference file </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
private static final ParameterDescriptor<Path> FILE;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java
index bd1253b..3031495 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueMercator.java
@@ -67,6 +67,11 @@
* <tr><td> Proj4: </td><td> lat_0 </td></tr>
* <tr><td> ESRI: </td><td> Latitude_Of_Center </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (-90.0 … 90.0)°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> LATITUDE_OF_CENTRE;
@@ -100,6 +105,11 @@
* <tr><td> GeoTIFF: </td><td> AzimuthAngle </td></tr>
* <tr><td> Proj4: </td><td> alpha </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [-360.0 … 360.0]°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> AZIMUTH;
@@ -116,6 +126,11 @@
* <tr><td> GeoTIFF: </td><td> RectifiedGridAngle </td></tr>
* <tr><td> Proj4: </td><td> gamma </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: [-360.0 … 360.0]°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> RECTIFIED_GRID_ANGLE;
@@ -132,6 +147,11 @@
* <tr><td> GeoTIFF: </td><td> ScaleAtCenter </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java
index c453bd6..d689450 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ObliqueStereographic.java
@@ -92,6 +92,11 @@
* <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR = Mercator1SP.SCALE_FACTOR; // Same as PolarStereographicA.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
index 44d60a7..db375a9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicA.java
@@ -73,6 +73,10 @@
* <tr><td> GeoTIFF: </td><td> NatOriginLat </td></tr>
* <tr><td> Proj4: </td><td> lat_0 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> LATITUDE_OF_ORIGIN = LambertConformal1SP.LATITUDE_OF_ORIGIN;
@@ -107,6 +111,11 @@
* <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR = Mercator1SP.SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
index 689cc8c..50e47b0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/PolarStereographicB.java
@@ -77,6 +77,10 @@
* <tr><td> GeoTIFF: </td><td> StdParallel1 </td></tr>
* <tr><td> Proj4: </td><td> lat_ts </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> STANDARD_PARALLEL;
@@ -96,6 +100,11 @@
* <tr><td> ESRI: </td><td> Scale_Factor </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
static final ParameterDescriptor<Double> SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
index d82a5a0..e2c39d0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/RegionalMercator.java
@@ -63,6 +63,11 @@
* <tr><td> GeoTIFF: </td><td> FalseOriginLat </td></tr>
* <tr><td> Proj4: </td><td> lat_0 </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (-90.0 … 90.0)°</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> LATITUDE_OF_FALSE_ORIGIN;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java
index 4b53854..a6c4093 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/SatelliteTracking.java
@@ -127,6 +127,11 @@
* <caption>Parameter names</caption>
* <tr><td> SIS: </td><td> satellite_orbital_period </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) d</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SATELLITE_ORBITAL_PERIOD;
@@ -141,6 +146,11 @@
* <caption>Parameter names</caption>
* <tr><td> SIS: </td><td> ascending_node_period </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞) d</li>
+ * <li>No default value</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> ASCENDING_NODE_PERIOD;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java
index 6b440b9..3be6f8b 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/TransverseMercator.java
@@ -104,6 +104,11 @@
* <tr><td> GeoTIFF: </td><td> ScaleAtNatOrigin </td></tr>
* <tr><td> Proj4: </td><td> k </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)</li>
+ * <li>Default value: 1</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> SCALE_FACTOR;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java
index b92d25b..facccde 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/ZonedTransverseMercator.java
@@ -55,6 +55,10 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Initial longitude </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Default value: -180°</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> INITIAL_LONGITUDE;
@@ -66,6 +70,11 @@
* <caption>Parameter names</caption>
* <tr><td> EPSG: </td><td> Zone width </td></tr>
* </table>
+ * <b>Notes:</b>
+ * <ul>
+ * <li>Value domain: (0.0 … ∞)°</li>
+ * <li>Default value: 6°</li>
+ * </ul>
*/
public static final ParameterDescriptor<Double> ZONE_WIDTH;
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java
index 7dccd5c..6f8d309 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/internal/referencing/provider/ParameterNameTableGenerator.java
@@ -26,18 +26,27 @@
import java.nio.file.FileVisitResult;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
+import javax.measure.Unit;
import org.opengis.util.GenericName;
import org.opengis.metadata.Identifier;
-import org.opengis.parameter.ParameterDescriptor;
+import org.apache.sis.parameter.DefaultParameterDescriptor;
import org.apache.sis.test.ProjectDirectories;
import org.apache.sis.internal.jdk9.JDK9;
+import org.apache.sis.measure.Angle;
+import org.apache.sis.measure.Latitude;
+import org.apache.sis.measure.Longitude;
import org.apache.sis.util.CharSequences;
+import org.apache.sis.util.StringBuilders;
+import org.apache.sis.measure.Range;
import static org.junit.Assert.*;
/**
* Inserts comments with parameter names in the javadoc of parameters.
+ * This class needs to be run explicitly; it is not part of JUnit tests.
+ * After execution, files in the provider packages may be overwritten.
+ * Developer should execute {@code "git diff"} and inspect the changes.
*
* @author Martin Desruisseaux (Geomatys)
* @version 1.1
@@ -46,6 +55,16 @@
*/
public final class ParameterNameTableGenerator extends SimpleFileVisitor<Path> {
/**
+ * Value as the kind of object expected in {@link DefaultParameterDescriptor}.
+ */
+ private static final Double POSITIVE_ZERO = +0d,
+ NEGATIVE_ZERO = -0d,
+ MIN_LONGITUDE = Longitude.MIN_VALUE,
+ MAX_LONGITUDE = Longitude.MAX_VALUE,
+ MIN_LATITUDE = Latitude.MIN_VALUE,
+ MAX_LATITUDE = Latitude.MAX_VALUE;
+
+ /**
* The directory of Java source code to scan.
*/
private final Path directory;
@@ -135,15 +154,15 @@
for (int i=lines.size(); --i >= 0;) {
final String line = lines.get(i);
if (matcher.reset(line).matches()) {
- final String name = matcher.group(1);
- final ParameterDescriptor<?> descriptor;
+ final String fieldName = matcher.group(1);
+ final DefaultParameterDescriptor<?> descriptor;
try {
if (classe == null) {
classe = getClass(file);
}
- final Field field = classe.getDeclaredField(name);
+ final Field field = classe.getDeclaredField(fieldName);
field.setAccessible(true);
- descriptor = (ParameterDescriptor<?>) field.get(null);
+ descriptor = (DefaultParameterDescriptor<?>) field.get(null);
} catch (ReflectiveOperationException e) {
throw new AssertionError(e);
}
@@ -177,14 +196,90 @@
/*
* Format a HTML table in the comment with the name and aliases of each parameter.
*/
- write("<!-- Generated by ParameterNameTableGenerator -->", insertAt++);
- write("<table class=\"sis\">", insertAt++);
- write(" <caption>Parameter names</caption>", insertAt++);
- write(descriptor.getName(), insertAt++);
+ write(insertAt++, "<!-- Generated by ParameterNameTableGenerator -->");
+ write(insertAt++, "<table class=\"sis\">");
+ write(insertAt++, " <caption>Parameter names</caption>");
+ write(insertAt++, descriptor.getName());
for (final GenericName alias : descriptor.getAlias()) {
- write((Identifier) alias, insertAt++);
+ write(insertAt++, (Identifier) alias);
}
- write("</table>", insertAt);
+ write(insertAt++, "</table>");
+ /*
+ * Format other information: default value, value domain, whether the value is mandatory, etc.
+ * Default value of zero are omitted (i.e. unless otherwise specified, default values are zero
+ * in the tables that we format). Range of values of [-90 … 90]° for latitude or [-180 … 180]°
+ * for longitude are also omitted. In other words, we report only "unusual" things in the notes.
+ */
+ Object defaultValue = descriptor.getDefaultValue();
+ Range<?> valueDomain = descriptor.getValueDomain();
+ boolean isOptional = descriptor.getMinimumOccurs() == 0;
+ boolean noDefault = (defaultValue == null);
+ Object minValue = null;
+ Object maxValue = null;
+ if (valueDomain != null) {
+ minValue = valueDomain.getMinValue();
+ maxValue = valueDomain.getMaxValue();
+ final boolean inclusive = valueDomain.isMinIncluded() && valueDomain.isMaxIncluded();
+ if (fieldName.contains("LATITUDE") || fieldName.contains("PARALLEL")) {
+ if (inclusive && MIN_LATITUDE.equals(minValue) && MAX_LATITUDE.equals(maxValue)) {
+ valueDomain = null;
+ }
+ } else if (fieldName.contains("LONGITUDE") || fieldName.contains("MERIDIAN")) {
+ if (inclusive && MIN_LONGITUDE.equals(minValue) && MAX_LONGITUDE.equals(maxValue)) {
+ valueDomain = null;
+ }
+ } else if (minValue == null && maxValue == null) {
+ valueDomain = null;
+ }
+ }
+ if (POSITIVE_ZERO.equals(defaultValue)) {
+ defaultValue = null;
+ }
+ if (defaultValue != null || valueDomain != null || isOptional || noDefault) {
+ write(insertAt++, "<b>Notes:</b>");
+ write(insertAt++, "<ul>");
+ if (valueDomain != null) {
+ final int p = buffer.length();
+ buffer.append(" <li>");
+ if ((minValue != null && minValue.equals(maxValue)) ||
+ (NEGATIVE_ZERO.equals(minValue) && POSITIVE_ZERO.equals(maxValue)))
+ {
+ buffer.append("Value restricted to ").append(maxValue);
+ StringBuilders.trimFractionalPart(buffer);
+ } else {
+ buffer.append("Value domain: ").append(valueDomain);
+ }
+ lines.add(insertAt++, buffer.append("</li>").toString());
+ buffer.setLength(p);
+ }
+ if (defaultValue != null) {
+ final int p = buffer.length();
+ final boolean isText = !(defaultValue instanceof Number || defaultValue instanceof Angle);
+ buffer.append(" <li>").append("Default value: ");
+ if (isText) buffer.append("{@code ");
+ buffer.append(defaultValue);
+ if (isText) buffer.append('}');
+ StringBuilders.trimFractionalPart(buffer);
+ final Unit<?> unit = descriptor.getUnit();
+ if (unit != null) {
+ final String symbol = unit.getSymbol();
+ if (!symbol.isEmpty()) {
+ if (Character.isLetterOrDigit(symbol.charAt(0))) {
+ buffer.append(' ');
+ }
+ buffer.append(symbol);
+ }
+ }
+ lines.add(insertAt++, buffer.append("</li>").toString());
+ buffer.setLength(p);
+ } else {
+ write(insertAt++, " <li>No default value</li>");
+ }
+ if (isOptional) {
+ write(insertAt++, " <li>Optional</li>");
+ }
+ write(insertAt++, "</ul>");
+ }
}
}
/*
@@ -200,9 +295,11 @@
* Appends the given line at the given position. This method writes the margin
* (typically spaces followed by {@code '*'} and a single space) before the line.
*/
- private void write(final String line, final int insertAt) {
+ private void write(final int insertAt, final String line) {
final int p = buffer.length();
- buffer.append(' ').append(line);
+ if (!line.isEmpty()) {
+ buffer.append(' ').append(line);
+ }
lines.add(insertAt, buffer.toString());
buffer.setLength(p);
}
@@ -211,7 +308,7 @@
* Appends the given authority and name at the given position. This method writes the margin
* (typically spaces followed by {@code '*'} and a single space) before the line.
*/
- private void write(final Identifier id, final int insertAt) {
+ private void write(final int insertAt, final Identifier id) {
final int p = buffer.length();
final String authority = id.getCodeSpace();
buffer.append(" <tr><td> ").append(authority).append(':')