This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sis.git

commit a546a473a81dd710c674ceed6db2a5cdbd914586
Merge: 3362ae7b9b 1beb63780c
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Wed Aug 10 17:04:47 2022 +0200

    Merge branch 'geoapi-3.1'

 .../org/apache/sis/gui/map/ValuesUnderCursor.java  |   6 +-
 .../apache/sis/internal/gui/DataStoreOpener.java   |  14 +-
 .../sis/internal/gui/control/SyncWindowList.java   |  34 +--
 .../sis/internal/gui/control/ValueColorMapper.java |   2 +-
 .../org/apache/sis/openoffice/TransformerTest.java |   2 +-
 .../util/resources/IndexedResourceCompiler.java    |   2 +-
 .../org/apache/sis/coverage/BandedCoverage.java    |  32 ++-
 .../java/org/apache/sis/coverage/Category.java     |   2 +-
 .../org/apache/sis/coverage/SampleDimension.java   |   2 +-
 .../sis/coverage/grid/BufferedGridCoverage.java    |   8 +-
 .../sis/coverage/grid/ConvertedGridCoverage.java   |  87 ++------
 .../{GridEvaluator.java => DefaultEvaluator.java}  |  75 ++++---
 .../sis/coverage/grid/DerivedGridCoverage.java     |   9 +-
 .../apache/sis/coverage/grid/EvaluatorWrapper.java | 126 +++++++++++
 .../coverage/grid/FractionalGridCoordinates.java   |   6 +-
 .../org/apache/sis/coverage/grid/GridCoverage.java |  86 +++++++-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |   8 +-
 .../org/apache/sis/coverage/grid/GridExtent.java   |  10 +-
 .../org/apache/sis/coverage/grid/GridGeometry.java |   6 +-
 .../apache/sis/coverage/grid/ImageRenderer.java    |   2 +-
 .../apache/sis/feature/AbstractIdentifiedType.java |   2 +-
 .../org/apache/sis/filter/BinarySpatialFilter.java |   2 +-
 .../apache/sis/filter/DefaultFilterFactory.java    |   2 +-
 .../java/org/apache/sis/filter/PropertyValue.java  |   5 +-
 .../src/main/java/org/apache/sis/filter/XPath.java |  86 ++++++++
 .../sis/coverage/grid/GridCoverage2DTest.java      |  13 +-
 .../sis/coverage/grid/GridDerivationTest.java      |   2 +-
 .../org/apache/sis/feature/FeatureTestCase.java    |   2 +-
 .../java/org/apache/sis/filter/XPathTest.java}     |  22 +-
 .../org/apache/sis/image/InterpolationTest.java    |   2 +-
 .../org/apache/sis/image/PixelIteratorTest.java    |   2 +-
 .../apache/sis/test/suite/FeatureTestSuite.java    |   1 +
 .../java/org/apache/sis/internal/jaxb/Context.java |   4 +-
 .../sis/internal/jaxb/lan/LocaleAndCharset.java    |   2 +-
 .../java/org/apache/sis/metadata/TreeNode.java     |   2 +-
 .../DefaultRepresentativeFraction.java             |   4 +-
 .../apache/sis/metadata/sql/MetadataWriter.java    |   2 +-
 .../java/org/apache/sis/util/iso/AbstractName.java |  15 +-
 .../apache/sis/util/iso/DefaultNameFactory.java    |   9 +-
 .../org/apache/sis/util/iso/DefaultNameSpace.java  |  33 ++-
 .../org/apache/sis/util/iso/DefaultRecordType.java |   6 +-
 .../java/org/apache/sis/util/iso/package-info.java |   2 +-
 .../java/org/apache/sis/xml/ValueConverter.java    |  47 ++++-
 .../main/java/org/apache/sis/xml}/XPointer.java    |  52 ++++-
 .../main/java/org/apache/sis/xml/package-info.java |   2 +-
 .../internal/jaxb/ModifiableIdentifierMapTest.java |   2 +-
 .../org/apache/sis/metadata/SpecialCasesTest.java  |   8 +-
 .../extent/DefaultGeographicBoundingBoxTest.java   |   2 +-
 .../sis/metadata/iso/extent/ExtentsTest.java       |   2 +-
 .../java/org/apache/sis/test/MetadataAssert.java   |   4 +-
 .../apache/sis/test/suite/MetadataTestSuite.java   |   3 +-
 .../sis/test/xml/AnnotationConsistencyCheck.java   |   2 +-
 .../apache/sis/test/xml/DocumentComparator.java    |   2 +-
 .../java/org/apache/sis/test/xml/TestCase.java     |   6 +-
 .../org/apache/sis/xml/ValueConverterTest.java     |  18 +-
 .../java/org/apache/sis/xml}/XPointerTest.java     |  18 +-
 .../sis/geometry/AbstractDirectPosition.java       |   2 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  |  18 +-
 .../org/apache/sis/geometry/CoordinateFormat.java  |   2 +-
 .../java/org/apache/sis/geometry/Envelopes.java    |   2 +-
 .../referencing/GeodeticObjectBuilder.java         |  18 +-
 .../internal/referencing/ReferencingUtilities.java |  39 ++--
 .../referencing/provider/AbridgedMolodensky.java   |  12 +-
 .../referencing/provider/AbstractLambert.java      |  14 +-
 .../referencing/provider/AbstractMercator.java     |  14 +-
 .../referencing/provider/AbstractProvider.java     | 113 ++++++----
 .../provider/AbstractStereographic.java            |  14 +-
 .../referencing/provider/AlbersEqualArea.java      |  14 +-
 .../referencing/provider/AxisOrderReversal.java    |  23 +-
 .../referencing/provider/AxisOrderReversal3D.java  |   4 +-
 .../provider/AzimuthalEquidistantSpherical.java    |  12 +-
 .../referencing/provider/CassiniSoldner.java       |   7 +-
 .../provider/CoordinateFrameRotation.java          |  12 +-
 .../provider/CoordinateFrameRotation2D.java        |  12 +-
 .../provider/CoordinateFrameRotation3D.java        |  12 +-
 .../referencing/provider/Equirectangular.java      |  31 +--
 .../provider/FranceGeocentricInterpolation.java    |  21 +-
 .../referencing/provider/GeocentricAffine.java     |  56 +++--
 .../GeocentricAffineBetweenGeographic.java         |  35 +--
 .../provider/GeocentricToGeographic.java           |  29 +--
 .../provider/GeocentricToTopocentric.java          | 234 +++++++++++++++++++++
 .../provider/GeocentricTranslation.java            |  12 +-
 .../provider/GeocentricTranslation2D.java          |  12 +-
 .../provider/GeocentricTranslation3D.java          |  12 +-
 .../referencing/provider/GeodeticOperation.java    |  45 ++--
 .../referencing/provider/Geographic2Dto3D.java     |   4 +-
 .../referencing/provider/Geographic3Dto2D.java     |   4 +-
 .../referencing/provider/GeographicOffsets.java    |  12 +-
 .../provider/GeographicRedimension.java            |  25 +--
 .../provider/GeographicToGeocentric.java           |  27 +--
 .../provider/GeographicToTopocentric.java          | 149 +++++++++++++
 .../referencing/provider/Interpolation1D.java      |  17 +-
 .../provider/LambertAzimuthalEqualArea.java        |  16 +-
 .../provider/LambertCylindricalEqualArea.java      |  14 +-
 .../LambertCylindricalEqualAreaSpherical.java      |  14 +-
 .../referencing/provider/MapProjection.java        |  45 ++--
 .../referencing/provider/MapProjection3D.java      |  26 +--
 .../provider/ModifiedAzimuthalEquidistant.java     |  12 +-
 .../internal/referencing/provider/Mollweide.java   |   5 +-
 .../internal/referencing/provider/Molodensky.java  |  12 +-
 .../sis/internal/referencing/provider/NADCON.java  |  17 +-
 .../sis/internal/referencing/provider/NTv1.java    |  17 +-
 .../sis/internal/referencing/provider/NTv2.java    |  17 +-
 .../referencing/provider/NorthPoleRotation.java    |  17 +-
 .../referencing/provider/Orthographic.java         |  14 +-
 .../internal/referencing/provider/Polyconic.java   |  14 +-
 .../referencing/provider/PositionVector7Param.java |  10 +-
 .../provider/PositionVector7Param2D.java           |  12 +-
 .../provider/PositionVector7Param3D.java           |  12 +-
 .../referencing/provider/PseudoPlateCarree.java    |  18 +-
 ...sOrderReversal3D.java => PseudoSinusoidal.java} |  35 +--
 .../referencing/provider/SatelliteTracking.java    |   5 +-
 .../internal/referencing/provider/Sinusoidal.java  |  25 ++-
 .../referencing/provider/SouthPoleRotation.java    |  17 +-
 .../referencing/provider/VerticalOffset.java       |  14 +-
 .../internal/referencing/provider/Wraparound.java  |  17 +-
 .../provider/ZonedTransverseMercator.java          |  31 +--
 .../referencing/provider/package-info.java         |   2 +-
 .../apache/sis/io/wkt/GeodeticObjectParser.java    |  71 ++++---
 .../main/java/org/apache/sis/io/wkt/Symbols.java   |   2 +-
 .../java/org/apache/sis/io/wkt/WKTDictionary.java  |   2 +-
 .../java/org/apache/sis/io/wkt/package-info.java   |   2 +-
 .../sis/parameter/AbstractParameterDescriptor.java |   4 +-
 .../org/apache/sis/parameter/ParameterBuilder.java |  12 +-
 .../java/org/apache/sis/parameter/Parameters.java  |  37 +++-
 .../org/apache/sis/parameter/TensorParameters.java |   2 +-
 .../java/org/apache/sis/referencing/Builder.java   |   6 +-
 .../main/java/org/apache/sis/referencing/CRS.java  |   4 +-
 .../sis/referencing/crs/DefaultDerivedCRS.java     |  34 +--
 .../sis/referencing/crs/DefaultProjectedCRS.java   |  85 +-------
 .../sis/referencing/crs/ExplicitParameters.java    | 133 ++++++++++++
 .../sis/referencing/cs/CoordinateSystems.java      |  15 ++
 .../sis/referencing/datum/BursaWolfParameters.java |   2 +-
 .../factory/IdentifiedObjectFinder.java            |   2 +-
 .../referencing/factory/IdentifiedObjectSet.java   |   2 +-
 .../referencing/factory/sql/EPSGDataAccess.java    |   6 +
 .../sis/referencing/factory/sql/SQLTranslator.java |   2 +-
 .../operation/CoordinateOperationFinder.java       |   5 +-
 .../operation/CoordinateOperationRegistry.java     |   4 +-
 .../referencing/operation/DefaultConversion.java   |   6 +-
 .../DefaultCoordinateOperationFactory.java         |   2 +-
 .../operation/MathTransformContext.java            |   2 +-
 .../operation/projection/AlbersEqualArea.java      |   4 +-
 .../operation/projection/AuthalicMercator.java     |   6 +-
 .../operation/projection/AzimuthalEquidistant.java |   4 +-
 .../operation/projection/CassiniSoldner.java       |   3 +-
 .../operation/projection/CylindricalEqualArea.java |   6 +-
 .../projection/LambertAzimuthalEqualArea.java      |   3 +-
 .../projection/LambertConicConformal.java          |   4 +-
 .../referencing/operation/projection/Mercator.java |   5 +-
 .../projection/ModifiedAzimuthalEquidistant.java   |   4 +-
 .../operation/projection/Mollweide.java            |   3 +-
 .../operation/projection/NormalizedProjection.java |   6 +-
 .../operation/projection/ObliqueMercator.java      |   3 +-
 .../operation/projection/ObliqueStereographic.java |   8 +-
 .../operation/projection/Orthographic.java         |   3 +-
 .../operation/projection/PolarStereographic.java   |   3 +-
 .../operation/projection/Polyconic.java            |   6 +-
 .../operation/projection/SatelliteTracking.java    |   3 +-
 .../operation/projection/Sinusoidal.java           |  70 +++++-
 .../operation/projection/TransverseMercator.java   |   3 +-
 .../operation/projection/ZonedGridSystem.java      |   2 +-
 .../operation/projection/package-info.java         |   2 +-
 .../operation/transform/AbstractMathTransform.java |   2 +-
 .../transform/DefaultMathTransformFactory.java     | 116 +++++++---
 .../transform/EllipsoidToCentricTransform.java     |   7 +-
 .../operation/transform/MathTransforms.java        |   4 +-
 .../operation/transform/MolodenskyTransform.java   |  13 +-
 ...g.opengis.referencing.operation.OperationMethod |   3 +
 .../org/apache/sis/geometry/EnvelopesTest.java     |   2 +-
 .../apache/sis/geometry/GeneralEnvelopeTest.java   |   6 +-
 .../java/org/apache/sis/geometry/Shapes2DTest.java |   2 +-
 .../org/apache/sis/geometry/TransformTestCase.java |   2 +-
 .../referencing/j2d/ShapeUtilitiesTest.java        |   4 +-
 .../referencing/provider/ProviderMock.java         |  14 +-
 .../referencing/provider/ProvidersTest.java        |   5 +-
 .../referencing/provider/SeismicBinGridMock.java   |   2 +-
 .../provider/TopocentricConversionMock.java        |  63 ------
 .../sis/io/wkt/GeodeticObjectParserTest.java       |  50 ++++-
 .../org/apache/sis/io/wkt/TransliteratorTest.java  |   4 +-
 .../org/apache/sis/parameter/TensorValuesTest.java |   2 +-
 .../java/org/apache/sis/referencing/CRSTest.java   |   2 +
 .../sis/referencing/GeodeticCalculatorTest.java    |   2 +-
 .../sis/referencing/crs/DefaultDerivedCRSTest.java |   8 +-
 .../sis/referencing/cs/CoordinateSystemsTest.java  |   4 +-
 .../factory/IdentifiedObjectFinderTest.java        |   2 +-
 .../operation/matrix/MatrixTestCase.java           |   6 +-
 .../operation/transform/MathTransformTestCase.java |   2 +-
 .../transform/TransformResultComparator.java       |  10 +-
 .../sis/referencing/report/HTMLGenerator.java      |   2 +-
 .../org/apache/sis/test/ReferencingAssert.java     |   2 +-
 .../sis/test/integration/ConsistencyTest.java      |   2 +-
 .../integration/CoordinateReferenceSystemTest.java |  38 +++-
 .../apache/sis/test/integration/package-info.java  |   2 +-
 .../apache/sis/test/widget/SwingAssertions.java    |   2 +-
 ...g.opengis.referencing.operation.OperationMethod |   1 -
 .../org/apache/sis/referencing/crs/DerivedCRS.xml  |   2 +-
 .../sis/internal/converter/ConverterRegistry.java  |   2 +-
 .../apache/sis/internal/util/DefinitionURI.java    | 144 +++++--------
 .../org/apache/sis/internal/util/DoubleDouble.java |   6 +-
 .../apache/sis/internal/util/SetOfUnknownSize.java |   6 +-
 .../java/org/apache/sis/internal/util/XPaths.java  | 182 ----------------
 .../main/java/org/apache/sis/math/ArrayVector.java |  12 +-
 .../main/java/org/apache/sis/math/Fraction.java    |   4 +-
 .../java/org/apache/sis/math/MathFunctions.java    |   6 +-
 .../src/main/java/org/apache/sis/math/Vector.java  |   2 +-
 .../java/org/apache/sis/measure/AbstractUnit.java  |   6 +-
 .../java/org/apache/sis/measure/Quantities.java    |  38 ++--
 .../org/apache/sis/measure/QuantityFormat.java     |  34 +--
 .../main/java/org/apache/sis/measure/Range.java    |   2 +-
 .../java/org/apache/sis/measure/RangeFormat.java   |   2 +-
 .../apache/sis/measure/SexagesimalConverter.java   |  14 +-
 .../java/org/apache/sis/measure/SystemUnit.java    |   2 +-
 .../java/org/apache/sis/measure/UnitFormat.java    |  89 +++-----
 .../java/org/apache/sis/measure/UnitServices.java  |   2 +-
 .../main/java/org/apache/sis/measure/Units.java    |  19 +-
 .../java/org/apache/sis/util/ArgumentChecks.java   |   4 +-
 .../java/org/apache/sis/util/CharSequences.java    |   4 +-
 .../main/java/org/apache/sis/util/Emptiable.java   |   2 +-
 .../org/apache/sis/util/collection/RangeSet.java   |   2 +-
 .../org/apache/sis/util/collection/TreeTable.java  |   4 +-
 .../apache/sis/util/collection/WeakHashSet.java    |   2 +-
 .../java/org/apache/sis/util/resources/Errors.java |  22 +-
 .../apache/sis/util/resources/Errors.properties    |   4 +-
 .../apache/sis/util/resources/Errors_fr.properties |   4 +-
 .../org/apache/sis/util/resources/Vocabulary.java  |   5 +
 .../sis/util/resources/Vocabulary.properties       |   1 +
 .../sis/util/resources/Vocabulary_fr.properties    |   1 +
 .../sis/internal/util/DefinitionURITest.java       |  29 ++-
 .../org/apache/sis/internal/util/XPathsTest.java   |  58 -----
 .../java/org/apache/sis/io/AppenderTestCase.java   |   2 +-
 .../sis/measure/SexagesimalConverterTest.java      |  18 +-
 .../org/apache/sis/measure/UnitFormatTest.java     |   4 +-
 .../java/org/apache/sis/measure/UnitsTest.java     |  23 +-
 .../src/test/java/org/apache/sis/test/Assert.java  |   2 +-
 .../apache/sis/test/suite/UtilityTestSuite.java    |   4 +-
 pom.xml                                            |  18 +-
 .../apache/sis/internal/earth/netcdf/GCOM_C.java   |   6 +-
 .../sis/internal/earth/netcdf/package-info.java    |   2 +-
 src/main/javadoc/sis.css                           |  34 ---
 .../apache/sis/storage/geotiff/GeoTiffStore.java   |  56 +++--
 .../sis/storage/geotiff/ImageFileDirectory.java    |  11 +-
 .../sis/storage/geotiff/ImageMetadataBuilder.java  |   8 +-
 .../sis/storage/geotiff/SelfConsistencyTest.java   |  37 +++-
 .../org/apache/sis/internal/netcdf/CRSBuilder.java |   1 +
 .../org/apache/sis/internal/netcdf/CRSMerger.java  |  76 +++++++
 .../org/apache/sis/internal/netcdf/Convention.java |   4 +
 .../java/org/apache/sis/internal/netcdf/Grid.java  |  31 ++-
 .../apache/sis/internal/netcdf/GridMapping.java    | 193 ++++++++++-------
 .../org/apache/sis/internal/netcdf/Variable.java   |  10 +-
 .../apache/sis/internal/netcdf/impl/GridInfo.java  |  19 +-
 .../sis/internal/netcdf/impl/package-info.java     |   2 +-
 .../sis/internal/netcdf/ucar/GridWrapper.java      |  29 +--
 .../apache/sis/storage/netcdf/MetadataReader.java  |  21 +-
 .../org/apache/sis/internal/netcdf/GridTest.java   |   6 +-
 .../org/apache/sis/internal/netcdf/TestCase.java   |   6 +-
 .../sis/internal/netcdf/impl/GridInfoTest.java     |   4 +-
 .../apache/sis/internal/sql/feature/Database.java  |   2 +-
 .../sis/internal/storage/StoreUtilities.java       |  13 +-
 .../internal/storage/csv/MovingFeatureBuilder.java |   4 +-
 .../org/apache/sis/internal/storage/csv/Store.java |   2 +-
 .../internal/storage/image/WorldFileResource.java  |   9 +-
 .../sis/internal/storage/io/ChannelDataOutput.java |   2 +-
 .../apache/sis/internal/storage/package-info.java  |   2 +-
 .../internal/storage/image/WorldFileStoreTest.java |   4 +-
 .../internal/storage/io/ChannelDataOutputTest.java |   2 +-
 .../sis/internal/storage/gpx/ReaderTest.java       |   2 +-
 267 files changed, 2723 insertions(+), 2055 deletions(-)

diff --cc 
core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
index a05ee9fc55,b3f2b6d9aa..3644a3b020
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
@@@ -31,9 -30,11 +30,11 @@@ import org.apache.sis.coverage.SampleDi
  import org.apache.sis.measure.MeasurementRange;
  import org.apache.sis.measure.NumberRange;
  import org.apache.sis.image.DataType;
- import org.apache.sis.coverage.CannotEvaluateException;
  import org.apache.sis.image.ImageProcessor;
  
+ // Branch-dependent imports
 -import org.opengis.coverage.CannotEvaluateException;
++import org.apache.sis.coverage.CannotEvaluateException;
+ 
  
  /**
   * Decorates a {@link GridCoverage} in order to convert sample values on the 
fly.
diff --cc 
core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java
index 02026ff6d5,aede5d3ed7..ac85973a5b
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java
@@@ -49,11 -49,13 +49,13 @@@ import org.apache.sis.util.logging.Logg
  
  import static java.util.logging.Logger.getLogger;
  
+ // Branch-dependent imports
 -import org.opengis.coverage.CannotEvaluateException;
 -import org.opengis.coverage.PointOutsideCoverageException;
++import org.apache.sis.coverage.CannotEvaluateException;
++import org.apache.sis.coverage.PointOutsideCoverageException;
+ 
  
  /**
-  * Computes or interpolates values of sample dimensions at given positions.
+  * Default implementation of {@link GridCoverage.Evaluator} for interpolating 
values at given positions.
   * Values are computed by calls to {@link #apply(DirectPosition)} and are 
returned as {@code double[]}.
   *
   * <h2>Multi-threading</h2>
diff --cc 
core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java
index 0000000000,014335bcb7..1d685fae23
mode 000000,100644..100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java
@@@ -1,0 -1,126 +1,126 @@@
+ /*
+  * Licensed to the Apache Software Foundation (ASF) under one or more
+  * contributor license agreements.  See the NOTICE file distributed with
+  * this work for additional information regarding copyright ownership.
+  * The ASF licenses this file to You under the Apache License, Version 2.0
+  * (the "License"); you may not use this file except in compliance with
+  * the License.  You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package org.apache.sis.coverage.grid;
+ 
+ import java.util.Map;
+ import org.opengis.geometry.DirectPosition;
+ import org.opengis.referencing.operation.TransformException;
+ 
+ // Branch-dependent imports
 -import org.opengis.coverage.CannotEvaluateException;
++import org.apache.sis.coverage.CannotEvaluateException;
+ 
+ 
+ /**
+  * An evaluator which delegates all operations to another evaluator.
+  * The default implementation of all methods except {@link #getCoverage()} 
delegates to the source evaluator.
+  *
+  * @author  Martin Desruisseaux (Geomatys)
+  * @version 1.3
+  * @since   1.3
+  * @module
+  */
+ abstract class EvaluatorWrapper implements GridCoverage.Evaluator {
+     /**
+      * The evaluator provided by source coverage.
+      * This is where all operations are delegated.
+      */
+     private final GridCoverage.Evaluator source;
+ 
+     /**
+      * Creates a new evaluator wrapper.
+      *
+      * @param  source  the evaluator to wrap.
+      */
+     EvaluatorWrapper(final GridCoverage.Evaluator source) {
+         this.source = source;
+     }
+ 
+     /**
+      * Returns whether to return {@code null} instead of throwing an 
exception if a point is outside coverage bounds.
+      */
+     @Override
+     public boolean isNullIfOutside() {
+         return source.isNullIfOutside();
+     }
+ 
+     /**
+      * Specifies whether to return {@code null} instead of throwing an 
exception if a point is outside coverage bounds.
+      */
+     @Override
+     public void setNullIfOutside(final boolean flag) {
+         source.setNullIfOutside(flag);
+     }
+ 
+     /**
+      * Returns {@code true} if this evaluator is allowed to wraparound 
coordinates that are outside the grid.
+      */
+     @Override
+     public boolean isWraparoundEnabled() {
+         return source.isWraparoundEnabled();
+     }
+ 
+     /**
+      * Specifies whether this evaluator is allowed to wraparound coordinates 
that are outside the grid.
+      */
+     @Override
+     public void setWraparoundEnabled(final boolean allow) {
+         source.setWraparoundEnabled(allow);
+     }
+ 
+     /**
+      * Returns the default slice where to perform evaluation, or an empty map 
if unspecified.
+      * This method should be overridden if this evaluator has been created 
for a coverage
+      * with a different grid geometry than the coverage of the wrapped 
evaluator.
+      */
+     @Override
+     public Map<Integer,Long> getDefaultSlice() {
+         return source.getDefaultSlice();
+     }
+ 
+     /**
+      * Sets the default slice where to perform evaluation when the points do 
not have enough dimensions.
+      * This method should be overridden if this evaluator has been created 
for a coverage
+      * with a different grid geometry than the coverage of the wrapped 
evaluator.
+      */
+     @Override
+     public void setDefaultSlice(Map<Integer,Long> slice) {
+         source.setDefaultSlice(slice);
+     }
+ 
+     /**
+      * Converts the specified geospatial position to grid coordinates.
+      * This method should be overridden if this evaluator has been created 
for a coverage
+      * with a different grid geometry than the coverage of the wrapped 
evaluator.
+      */
+     @Override
+     public FractionalGridCoordinates toGridCoordinates(final DirectPosition 
point) throws TransformException {
+         return source.toGridCoordinates(point);
+     }
+ 
+     /**
+      * Returns a sequence of double values for a given point in the coverage.
+      * This method should be overridden if this evaluator is for a coverage
+      * doing some on-the-fly conversion of sample values.
+      *
+      * @param  point  the coordinate point where to evaluate.
+      * @throws CannotEvaluateException if the values can not be computed.
+      */
+     @Override
+     public double[] apply(final DirectPosition point) throws 
CannotEvaluateException {
+         return source.apply(point);
+     }
+ }
diff --cc 
core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
index 90091c73fc,e71d284659..727897c3b5
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
@@@ -675,9 -715,10 +675,9 @@@ public class GridExtent implements Seri
       *
       * @param  index  the dimension for which to obtain the coordinate value.
       * @return the low coordinate value at the given dimension, inclusive.
-      * @throws IndexOutOfBoundsException if the given index is negative or is 
equals or greater
+      * @throws IndexOutOfBoundsException if the given index is negative or is 
equal or greater
       *         than the {@linkplain #getDimension() grid dimension}.
       *
 -     * @see #getLow()
       * @see #getHigh(int)
       * @see #withRange(int, long, long)
       */
@@@ -691,9 -733,10 +691,9 @@@
       *
       * @param  index  the dimension for which to obtain the coordinate value.
       * @return the high coordinate value at the given dimension, 
<strong>inclusive</strong>.
-      * @throws IndexOutOfBoundsException if the given index is negative or is 
equals or greater
+      * @throws IndexOutOfBoundsException if the given index is negative or is 
equal or greater
       *         than the {@linkplain #getDimension() grid dimension}.
       *
 -     * @see #getHigh()
       * @see #getLow(int)
       * @see #withRange(int, long, long)
       */
diff --cc 
core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
index 7649a25e7e,ae9d2fc759..b70ac7460c
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
@@@ -29,17 -29,16 +29,16 @@@ import org.apache.sis.feature.builder.F
  import org.apache.sis.feature.builder.PropertyTypeBuilder;
  import org.apache.sis.feature.builder.AttributeTypeBuilder;
  import org.apache.sis.util.resources.Errors;
- import org.apache.sis.internal.util.XPaths;
  
  // Branch-dependent imports
 -import org.opengis.feature.Feature;
 -import org.opengis.feature.FeatureType;
 -import org.opengis.feature.PropertyType;
 -import org.opengis.feature.AttributeType;
 -import org.opengis.feature.IdentifiedType;
 -import org.opengis.feature.Operation;
 -import org.opengis.feature.PropertyNotFoundException;
 -import org.opengis.filter.ValueReference;
 +import org.opengis.util.ScopedName;
 +import org.apache.sis.feature.AbstractFeature;
 +import org.apache.sis.feature.AbstractIdentifiedType;
 +import org.apache.sis.feature.AbstractOperation;
 +import org.apache.sis.feature.DefaultAttributeType;
 +import org.apache.sis.feature.DefaultFeatureType;
 +import org.apache.sis.internal.geoapi.filter.Name;
 +import org.apache.sis.internal.geoapi.filter.ValueReference;
  
  
  /**
@@@ -108,9 -102,9 +107,9 @@@ abstract class PropertyValue<V> extend
       * @throws IllegalArgumentException if the given XPath is not supported.
       */
      @SuppressWarnings("unchecked")
 -    static <V> ValueReference<Feature,V> create(String xpath, final Class<V> 
type) {
 +    static <V> ValueReference<AbstractFeature,V> create(String xpath, final 
Class<V> type) {
          boolean isVirtual = false;
-         List<String> path = XPaths.split(xpath);
+         List<String> path = XPath.split(xpath);
  split:  if (path != null) {
              /*
               * If the XPath is like "/∗/property" where the root "/" is the 
feature instance,
diff --cc 
core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
index fa897c6f2f,db88eca51d..e22cba941f
--- 
a/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
@@@ -50,6 -50,8 +50,7 @@@ import org.junit.runners.Suite
      org.apache.sis.feature.FeatureOperationsTest.class,
      org.apache.sis.feature.FeatureFormatTest.class,
      org.apache.sis.feature.FeaturesTest.class,
+     org.apache.sis.filter.XPathTest.class,
 -    org.apache.sis.filter.CapabilitiesTest.class,
      org.apache.sis.filter.LeafExpressionTest.class,
      org.apache.sis.filter.LogicalFilterTest.class,
      org.apache.sis.filter.IdentifierFilterTest.class,
diff --cc 
core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
index fb6a77b17f,052bf08b4d..4f258bd584
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@@ -75,7 -74,7 +75,8 @@@ import org.apache.sis.metadata.iso.exte
  import org.apache.sis.metadata.iso.extent.DefaultTemporalExtent;
  import org.apache.sis.internal.metadata.AxisNames;
  import org.apache.sis.internal.metadata.TransformationAccuracy;
 +import org.apache.sis.internal.referencing.ServicesForMetadata;
+ import org.apache.sis.internal.referencing.provider.AbstractProvider;
  import org.apache.sis.internal.referencing.ReferencingFactoryContainer;
  import org.apache.sis.internal.referencing.EllipsoidalHeightCombiner;
  import org.apache.sis.internal.referencing.VerticalDatumTypes;
diff --cc 
core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
index 9e8e0e5936,f8e57daec4..4f4b1f09f3
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultDerivedCRS.java
@@@ -55,14 -54,13 +54,12 @@@ import org.apache.sis.internal.referenc
  import org.apache.sis.internal.referencing.WKTUtilities;
  import org.apache.sis.internal.referencing.WKTKeywords;
  import org.apache.sis.io.wkt.Convention;
- import org.apache.sis.io.wkt.FormattableObject;
  import org.apache.sis.io.wkt.Formatter;
  import org.apache.sis.util.ComparisonMode;
- import org.apache.sis.util.Classes;
  
  // Branch-dependent imports
 -import org.opengis.referencing.cs.ParametricCS;
 -import org.opengis.referencing.crs.ParametricCRS;
 -import org.opengis.referencing.datum.ParametricDatum;
 +import org.apache.sis.referencing.cs.DefaultParametricCS;
 +import org.apache.sis.referencing.datum.DefaultParametricDatum;
  
  
  /**

Reply via email to