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

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

commit 4cbb8b175fdfd0afb77ae92a2edcbb62ee44a440
Merge: 2a51813d48 9f95c712fa
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat Feb 3 11:59:13 2024 +0100

    Merge branch 'geoapi-3.1'.

 .../org/apache/sis/buildtools/book/Assembler.java  |   2 +-
 .../sis/buildtools/coding/ReorganizeImports.java   |  46 +-
 .../main/org/apache/sis/console/AboutCommand.java  |   8 +-
 .../main/org/apache/sis/console/CommandRunner.java |  19 +-
 .../apache/sis/console/FormattedOutputCommand.java |   4 +-
 .../main/org/apache/sis/console/HelpCommand.java   |   2 +-
 .../org/apache/sis/console/IdentifierCommand.java  |   2 +-
 .../main/org/apache/sis/console/InfoCommand.java   |   8 +-
 .../org/apache/sis/console/OperationParser.java    |  66 +++
 .../main/org/apache/sis/console/Option.java        |  12 +
 .../main/org/apache/sis/console/Options.properties |   2 +
 .../org/apache/sis/console/Options_fr.properties   |   2 +
 .../main/org/apache/sis/console/SIS.java           |  35 +-
 .../org/apache/sis/console/TransformCommand.java   | 184 +++++-
 .../org/apache/sis/coverage/BandedCoverage.java    |   2 +-
 .../org/apache/sis/coverage/SampleDimension.java   |   2 +-
 .../org/apache/sis/coverage/SampleRangeFormat.java |   2 +-
 .../apache/sis/coverage/grid/DefaultEvaluator.java |   4 +-
 .../sis/coverage/grid/DerivedGridCoverage.java     |   2 +-
 .../sis/coverage/grid/DimensionalityReduction.java |   2 +-
 .../org/apache/sis/coverage/grid/GridCoverage.java |   6 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |   4 +-
 .../sis/coverage/grid/GridCoverageProcessor.java   |   8 +-
 .../apache/sis/coverage/grid/GridDerivation.java   |  10 +-
 .../org/apache/sis/coverage/grid/GridExtent.java   |  31 +-
 .../apache/sis/coverage/grid/GridExtentCRS.java    |   4 +-
 .../org/apache/sis/coverage/grid/GridGeometry.java |   8 +-
 .../apache/sis/coverage/grid/ImageRenderer.java    |   6 +-
 .../sis/coverage/grid/ResampledGridCoverage.java   |   2 +-
 .../apache/sis/coverage/grid/ReshapedImage.java    |   4 +-
 .../apache/sis/coverage/grid/SliceGeometry.java    |   2 +-
 .../apache/sis/coverage/grid/j2d/ImageLayout.java  |   8 +-
 .../sis/coverage/grid/j2d/ImageUtilities.java      |   2 +-
 .../sis/coverage/grid/j2d/RasterFactory.java       |   2 +-
 .../sis/coverage/grid/j2d/ScaledColorModel.java    |   2 +-
 .../sis/coverage/grid/j2d/TileOpExecutor.java      |   2 +-
 .../apache/sis/feature/AbstractAssociation.java    |   2 +-
 .../org/apache/sis/feature/AbstractAttribute.java  |   2 +-
 .../org/apache/sis/feature/AbstractFeature.java    |   2 +-
 .../apache/sis/feature/AbstractIdentifiedType.java |   4 +-
 .../org/apache/sis/feature/AssociationView.java    |   2 +-
 .../main/org/apache/sis/feature/AttributeView.java |   2 +-
 .../apache/sis/feature/CharacteristicTypeMap.java  |   2 +-
 .../main/org/apache/sis/feature/DenseFeature.java  |   4 +-
 .../main/org/apache/sis/feature/FeatureFormat.java |   6 +-
 .../org/apache/sis/feature/FeatureOperations.java  |   2 +-
 .../main/org/apache/sis/feature/README.md          |   2 +-
 .../main/org/apache/sis/feature/SparseFeature.java |   4 +-
 .../apache/sis/feature/builder/TypeBuilder.java    |   4 +-
 .../sis/geometry/wrapper/GeometryWrapper.java      |  32 ++
 .../sis/geometry/wrapper/j2d/PathBuilder.java      |   2 +-
 .../apache/sis/geometry/wrapper/j2d/Wrapper.java   |   9 +
 .../wrapper/jts/GeometryCoordinateTransform.java   |   2 +-
 .../apache/sis/geometry/wrapper/jts/Wrapper.java   |  27 +
 .../main/org/apache/sis/image/AnnotatedImage.java  |   3 +-
 .../main/org/apache/sis/image/ComputedImage.java   |   2 +-
 .../main/org/apache/sis/image/ImageProcessor.java  |   2 +-
 .../main/org/apache/sis/image/MaskedImage.java     |   2 +-
 .../org/apache/sis/image/MultiSourceLayout.java    |   2 +-
 .../main/org/apache/sis/image/RecoloredImage.java  |   2 +-
 .../main/org/apache/sis/image/Visualization.java   |   2 +-
 .../sis/image/processing/isoline/Joiner.java       |   2 +-
 .../main/org/apache/sis/index/tree/PointTree.java  |   2 +-
 .../org/apache/sis/index/tree/PointTreeNode.java   |   2 +-
 .../sis/coverage/grid/GridDerivationTest.java      |   4 +-
 .../apache/sis/coverage/grid/GridExtentTest.java   |   2 +-
 .../org/apache/sis/image/BandSelectImageTest.java  |   2 +-
 .../org/apache/sis/image/InterpolationTest.java    |   2 +-
 .../org/apache/sis/metadata/MetadataStandard.java  |   2 +-
 .../org/apache/sis/metadata/internal/Merger.java   |   2 +-
 .../apache/sis/metadata/sql/CachedStatement.java   |   3 +-
 .../sis/metadata/sql/IdentifierGenerator.java      |   2 +-
 .../apache/sis/metadata/sql/MetadataSource.java    |   4 +-
 .../apache/sis/metadata/sql/MetadataWriter.java    |   2 +-
 .../apache/sis/metadata/sql/util/Initializer.java  |   6 +-
 .../apache/sis/metadata/sql/util/ScriptRunner.java |   2 +-
 .../org/apache/sis/util/iso/DefaultLocalName.java  |   2 +-
 .../main/org/apache/sis/util/iso/Types.java        |   6 +-
 .../org/apache/sis/xml/PooledUnmarshaller.java     |  43 +-
 .../main/org/apache/sis/xml/ReferenceResolver.java |  74 ++-
 .../main/org/apache/sis/xml/XLink.java             |   2 +-
 .../main/org/apache/sis/xml/XML.java               |  12 +-
 .../main/org/apache/sis/xml/bind/Context.java      |  55 +-
 .../org/apache/sis/xml/bind/gco/PropertyType.java  |   2 +-
 .../apache/sis/xml/bind/metadata/package-info.java |   2 +-
 .../apache/sis/xml/util/ExceptionSimplifier.java   | 150 +++++
 .../apache/sis/xml/util/ExternalLinkHandler.java   |  55 +-
 .../main/org/apache/sis/xml/util/URISource.java    |  49 +-
 .../main/org/apache/sis/openoffice/CalcAddins.java |   2 +-
 .../sis/openoffice/ReferencingFunctions.java       |   8 +-
 .../main/org/apache/sis/portrayal/Canvas.java      |   4 +-
 .../org/apache/sis/portrayal/CanvasFollower.java   |   2 +-
 .../apache/sis/portrayal/TransformChangeEvent.java |   2 +-
 .../org/apache/sis/style/se1/GraphicalSymbol.java  |   2 +-
 .../main/org/apache/sis/style/se1/Halo.java        |   4 +-
 .../sis/referencing/gazetteer/LocationFormat.java  |   2 +-
 .../gazetteer/MilitaryGridReferenceSystem.java     |  12 +-
 .../org/apache/sis/geometry/CoordinateFormat.java  |   2 +-
 .../apache/sis/geometry/WraparoundAdjustment.java  |   8 +-
 .../org/apache/sis/geometry/WraparoundMethod.java  |   4 +-
 .../main/org/apache/sis/io/wkt/AbstractParser.java |   2 +-
 .../main/org/apache/sis/io/wkt/Element.java        |   3 +-
 .../main/org/apache/sis/io/wkt/Formatter.java      | 100 ++--
 .../sis/io/wkt/UnparsableObjectException.java      |   2 +-
 .../main/org/apache/sis/io/wkt/WKTDictionary.java  |   6 +-
 .../main/org/apache/sis/io/wkt/WKTFormat.java      |  24 +-
 .../main/org/apache/sis/io/wkt/Warnings.java       |   8 +-
 .../sis/parameter/AbstractParameterDescriptor.java |   4 +-
 .../sis/parameter/DefaultParameterDescriptor.java  |   4 +-
 .../sis/parameter/DefaultParameterValue.java       |   4 +-
 .../org/apache/sis/parameter/ParameterFormat.java  |  10 +-
 .../org/apache/sis/parameter/TensorParameters.java |   2 +-
 .../org/apache/sis/parameter/TensorValues.java     |   4 +-
 .../main/org/apache/sis/parameter/Verifier.java    |   2 +-
 .../sis/referencing/AbstractIdentifiedObject.java  |   4 +-
 .../main/org/apache/sis/referencing/Builder.java   |   2 +-
 .../main/org/apache/sis/referencing/CRS.java       |   4 +-
 .../sis/referencing/GeodesicsOnEllipsoid.java      |   2 +-
 .../apache/sis/referencing/GeodeticCalculator.java |   4 +-
 .../sis/referencing/ImmutableIdentifier.java       |   4 +-
 .../sis/referencing/crs/AbstractDerivedCRS.java    |   2 +-
 .../sis/referencing/crs/DefaultCompoundCRS.java    |   2 +-
 .../sis/referencing/crs/DefaultTemporalCRS.java    |   4 +-
 .../org/apache/sis/referencing/cs/AbstractCS.java  |   2 +-
 .../org/apache/sis/referencing/cs/AxisName.java    |   2 +-
 .../cs/DefaultCoordinateSystemAxis.java            |   2 +-
 .../sis/referencing/cs/DirectionAlongMeridian.java |   2 +-
 .../sis/referencing/datum/DatumShiftGrid.java      |   4 +-
 .../referencing/factory/AuthorityFactoryProxy.java |   2 +-
 .../factory/ConcurrentAuthorityFactory.java        |  18 +-
 .../referencing/factory/GeodeticObjectFactory.java |   8 +-
 .../referencing/factory/IdentifiedObjectSet.java   |   2 +-
 .../factory/MultiAuthoritiesFactory.java           |   2 +-
 .../sis/referencing/factory/sql/BursaWolfInfo.java |   4 +-
 .../referencing/factory/sql/EPSGDataAccess.java    |  11 +-
 .../sis/referencing/factory/sql/EPSGFactory.java   |   2 +-
 .../sis/referencing/factory/sql/EPSGInstaller.java |   6 +-
 .../sis/referencing/factory/sql/EPSG_Finish.sql    |   2 +-
 .../factory/sql/InstallationScriptProvider.java    |   4 +-
 .../sis/referencing/factory/sql/SQLTranslator.java |   4 +-
 .../apache/sis/referencing/internal/Resources.java |   5 +
 .../sis/referencing/internal/Resources.properties  |   1 +
 .../referencing/internal/Resources_fr.properties   |   1 +
 .../referencing/internal/ServicesForMetadata.java  |   2 +-
 .../operation/AbstractCoordinateOperation.java     |   4 +-
 .../operation/DefaultConcatenatedOperation.java    |   2 +-
 .../DefaultCoordinateOperationFactory.java         |   2 +-
 .../operation/DefaultOperationMethod.java          |   4 +-
 .../operation/builder/LinearTransformBuilder.java  |   2 +-
 .../operation/builder/LocalizationGridBuilder.java |   2 +-
 .../referencing/operation/gridded/LoadedGrid.java  |   3 +-
 .../sis/referencing/operation/matrix/Matrices.java |  10 +-
 .../operation/matrix/NonSquareMatrix.java          |   4 +-
 .../operation/projection/AuthalicConversion.java   |   2 +-
 .../projection/LambertConicConformal.java          |   2 +-
 .../operation/projection/LongitudeWraparound.java  |   2 +-
 .../operation/projection/NormalizedProjection.java |   2 +-
 .../operation/projection/TransverseMercator.java   |   2 +-
 .../sis/referencing/operation/provider/Affine.java |   2 +-
 .../provider/FranceGeocentricInterpolation.java    |   3 +-
 .../sis/referencing/operation/provider/NTv2.java   |   2 +-
 .../operation/transform/AbstractMathTransform.java |   4 +-
 .../operation/transform/ContextualParameters.java  |   2 +-
 .../transform/SpecializableTransform.java          |   2 +-
 .../operation/transform/TransformSeparator.java    |   2 +-
 .../sis/referencing/util/ExtentSelector.java       |   4 +-
 .../referencing/util/GeodeticObjectBuilder.java    |   2 +-
 .../sis/referencing/util/ReferencingUtilities.java |   5 +-
 .../apache/sis/referencing/util/WKTUtilities.java  |  10 +-
 .../org/apache/sis/referencing/util/j2d/Tile.java  |   3 +-
 .../org/apache/sis/geometry/TransformTestCase.java |   2 +-
 .../org/apache/sis/io/wkt/ComparisonWithEPSG.java  |   2 +-
 .../test/org/apache/sis/io/wkt/ExtraCRS.txt        |   2 +-
 .../test/org/apache/sis/io/wkt/WKTFormatTest.java  |  20 +-
 .../sis/parameter/MapProjectionParametersTest.java |   2 +-
 .../org/apache/sis/referencing/Assertions.java     |   2 +-
 .../sis/referencing/GeodeticCalculatorTest.java    |   2 +-
 .../referencing/datum/VerticalDatum (GML 3.1).xml  |   2 +-
 .../referencing/factory/sql/EPSGFactoryTest.java   |   2 +-
 .../factory/sql/epsg/DataScriptFormatter.java      |   2 +-
 .../operation/ConcatenatedOperation.xml            |   2 +-
 .../operation/CoordinateOperationFinderTest.java   |   2 +-
 .../operation/CoordinateOperationRegistryTest.java |   2 +-
 .../DefaultCoordinateOperationFactoryTest.java     |   2 +-
 .../referencing/operation/PassThroughOperation.xml |   2 +-
 .../sis/test/integration/ConsistencyTest.java      |  12 +-
 .../sis/storage/landsat/LandsatStoreProvider.java  |   4 +-
 .../apache/sis/storage/landsat/MetadataReader.java |   4 +-
 .../org/apache/sis/storage/geotiff/DataSubset.java |   2 +-
 .../apache/sis/storage/geotiff/GeoTiffStore.java   |   7 +-
 .../sis/storage/geotiff/GeoTiffStoreProvider.java  |   6 +-
 .../org/apache/sis/storage/geotiff/IOBase.java     |   2 +-
 .../apache/sis/storage/geotiff/NativeMetadata.java |   2 +-
 .../geotiff/inflater/CompressionChannel.java       |   2 +-
 .../storage/geotiff/inflater/CopyFromBytes.java    |   2 +-
 .../sis/storage/geotiff/inflater/Inflater.java     |   2 +-
 .../apache/sis/storage/geotiff/inflater/LZW.java   |   2 +-
 .../sis/storage/geotiff/reader/CRSBuilder.java     |   2 +-
 .../sis/storage/geotiff/reader/GeoKeysLoader.java  |   2 +-
 .../geotiff/reader/ImageMetadataBuilder.java       |   2 +-
 .../apache/sis/storage/geotiff/reader/Type.java    |  14 +-
 .../sis/storage/geotiff/writer/GeoEncoder.java     |   2 +-
 .../apache/sis/storage/netcdf/MetadataReader.java  |   2 +-
 .../sis/storage/netcdf/NetcdfStoreProvider.java    |   8 +-
 .../org/apache/sis/storage/netcdf/base/Axis.java   |   2 +-
 .../sis/storage/netcdf/base/DiscreteSampling.java  |   2 +-
 .../sis/storage/netcdf/base/GridMapping.java       |   4 +-
 .../org/apache/sis/storage/netcdf/base/Node.java   |   2 +-
 .../sis/storage/netcdf/base/RasterResource.java    |   2 +-
 .../apache/sis/storage/netcdf/base/Variable.java   |   2 +-
 .../sis/storage/netcdf/classic/ChannelDecoder.java |   4 +-
 .../sis/storage/netcdf/classic/GridInfo.java       |   2 +-
 .../sis/storage/netcdf/classic/VariableInfo.java   |   2 +-
 .../org/apache/sis/storage/sql/feature/Column.java |   2 +-
 .../sis/storage/sql/feature/GeometryGetter.java    |   2 +-
 .../sis/storage/sql/feature/InfoStatements.java    |   2 +-
 .../sis/storage/sql/postgis/RasterGetter.java      |   2 +-
 .../sis/storage/sql/feature/ResultSetMock.java     |   2 +-
 .../sis/storage/xml/stream/FormattedWriter.java    |   4 +-
 .../sis/storage/xml/stream/StaxDataStore.java      |   2 +-
 .../sis/storage/xml/stream/StaxStreamIO.java       |   4 +-
 .../main/org/apache/sis/io/stream/ChannelData.java |   2 +-
 .../org/apache/sis/io/stream/ChannelDataInput.java |  18 +-
 .../apache/sis/io/stream/ChannelDataOutput.java    |   6 +-
 .../org/apache/sis/io/stream/ChannelFactory.java   |   5 +-
 .../sis/io/stream/ChannelImageInputStream.java     |   4 +-
 .../apache/sis/io/stream/FileCacheByteChannel.java |   4 +-
 .../main/org/apache/sis/io/stream/IOUtilities.java | 249 ++------
 .../org/apache/sis/io/stream/UpdatableWrite.java   |   2 +-
 .../org/apache/sis/storage/AbstractResource.java   |   2 +-
 .../main/org/apache/sis/storage/CoverageQuery.java |   4 +-
 .../org/apache/sis/storage/DataStoreProvider.java  |   4 +-
 .../main/org/apache/sis/storage/ProbeResult.java   |   2 +-
 .../main/org/apache/sis/storage/Query.java         |   2 +-
 .../org/apache/sis/storage/StorageConnector.java   |   4 +-
 .../aggregate/BandAggregateGridResource.java       |   2 +-
 .../sis/storage/aggregate/GroupByTransform.java    |   2 +-
 .../sis/storage/aggregate/MergeStrategy.java       |   4 +-
 .../apache/sis/storage/base/AuxiliaryContent.java  | 196 +++++++
 .../org/apache/sis/storage/base/Capability.java    |   4 +-
 .../sis/storage/base/DocumentedStoreProvider.java  |   2 +-
 .../apache/sis/storage/base/MetadataBuilder.java   |   5 +-
 .../org/apache/sis/storage/base/PRJDataStore.java  | 335 +++--------
 .../apache/sis/storage/base/TiledGridCoverage.java |   2 +-
 .../apache/sis/storage/base/TiledGridResource.java |   6 +-
 .../org/apache/sis/storage/base/URIDataStore.java  | 626 +++++++++++----------
 .../sis/storage/base/URIDataStoreProvider.java     | 236 ++++++++
 .../main/org/apache/sis/storage/csv/Store.java     |   6 +-
 .../org/apache/sis/storage/csv/StoreProvider.java  |   4 +-
 .../apache/sis/storage/esri/AsciiGridStore.java    |   4 +-
 .../org/apache/sis/storage/esri/RasterStore.java   |  33 +-
 .../apache/sis/storage/esri/RawRasterReader.java   |   2 +-
 .../apache/sis/storage/esri/RawRasterStore.java    |  19 +-
 .../apache/sis/storage/event/StoreListeners.java   |   3 +-
 .../apache/sis/storage/folder/StoreProvider.java   |  12 +-
 .../apache/sis/storage/image/WorldFileStore.java   |  51 +-
 .../apache/sis/storage/image/WritableResource.java |   3 +-
 .../apache/sis/storage/image/WritableStore.java    |   9 +-
 .../org/apache/sis/storage/internal/Resources.java |   2 +-
 .../sis/storage/internal/Resources.properties      |   2 +-
 .../main/org/apache/sis/storage/wkt/Store.java     |  26 +-
 .../org/apache/sis/storage/wkt/StoreFormat.java    |  41 +-
 .../org/apache/sis/storage/wkt/StoreProvider.java  |   8 +-
 .../apache/sis/storage/xml/AbstractProvider.java   |  20 +
 .../apache/sis/storage/xml/MimeTypeDetector.java   |   2 +-
 .../main/org/apache/sis/storage/xml/Store.java     |  19 +-
 .../org/apache/sis/storage/xml/StoreProvider.java  |   7 +-
 .../apache/sis/io/stream/ChannelDataInputTest.java |   2 +-
 .../apache/sis/io/stream/ChannelDataTestCase.java  |   2 +-
 .../org/apache/sis/io/stream/DripByteChannel.java  |   6 +-
 .../org/apache/sis/io/stream/IOUtilitiesTest.java  |  95 +---
 .../sis/io/stream/ImageInputStreamComparator.java  |   6 +-
 .../org/apache/sis/storage/DataStoresTest.java     |   2 +-
 .../apache/sis/storage/StorageConnectorTest.java   |   2 +-
 .../sis/storage/aggregate/JoinFeatureSetTest.java  |   4 +-
 .../test/org/apache/sis/storage/xml/StoreTest.java |   9 +-
 .../apache/sis/converter/ConverterRegistry.java    |   2 +-
 .../apache/sis/converter/FallbackConverter.java    |   2 +-
 .../main/org/apache/sis/io/CompoundFormat.java     |   1 +
 .../org/apache/sis/io/IdentifiedObjectFormat.java  |   2 +-
 .../main/org/apache/sis/io/LineAppender.java       | 120 ++--
 .../main/org/apache/sis/io/TableAppender.java      |   2 +-
 .../main/org/apache/sis/io/package-info.java       |   2 +-
 .../main/org/apache/sis/math/DecimalFunctions.java |   6 +-
 .../main/org/apache/sis/math/Fraction.java         |   2 +-
 .../main/org/apache/sis/math/MathFunctions.java    |   2 +-
 .../main/org/apache/sis/math/PackedVector.java     |   2 +-
 .../main/org/apache/sis/math/StatisticsFormat.java |   2 +-
 .../main/org/apache/sis/math/Vector.java           |   4 +-
 .../main/org/apache/sis/measure/AngleFormat.java   |   6 +-
 .../org/apache/sis/measure/UnitAliases.properties  |  16 +-
 .../org/apache/sis/measure/UnitNames.properties    |  14 +-
 .../apache/sis/measure/UnitNames_en_US.properties  |   4 +-
 .../org/apache/sis/measure/UnitNames_fr.properties |  36 +-
 .../main/org/apache/sis/measure/UnitRegistry.java  |   2 +-
 .../main/org/apache/sis/setup/About.java           |   4 +-
 .../apache/sis/setup/OptionalInstallations.java    |   4 +-
 .../main/org/apache/sis/system/DataDirectory.java  |   2 +-
 .../org/apache/sis/system/OptionalDependency.java  |   2 +-
 .../main/org/apache/sis/system/Semaphores.java     |   2 +-
 .../main/org/apache/sis/system/Supervisor.java     |   4 +-
 .../main/org/apache/sis/util/CharSequences.java    |   4 +-
 .../main/org/apache/sis/util/Classes.java          |   4 +-
 .../main/org/apache/sis/util/Exceptions.java       |  15 +-
 .../main/org/apache/sis/util/collection/Cache.java |   2 +-
 .../org/apache/sis/util/collection/Containers.java |   2 +-
 .../apache/sis/util/collection/IntegerList.java    |   2 +-
 .../org/apache/sis/util/collection/RangeSet.java   |   2 +-
 .../sis/util/collection/TreeTableFormat.java       |   2 +-
 .../org/apache/sis/util/collection/WeakEntry.java  |   2 +-
 .../org/apache/sis/util/internal/AbstractMap.java  |   2 +-
 .../sis/util/internal/AutoMessageFormat.java       |   2 +-
 .../org/apache/sis/util/internal/DoubleDouble.java |   2 +-
 .../sis/util/internal/LocalizedParseException.java |   2 +-
 .../org/apache/sis/util/internal/Numerics.java     |  12 +-
 .../apache/sis/util/internal/PropertyFormat.java   |   4 +-
 .../sis/util/internal/StandardDateFormat.java      |  81 +--
 .../main/org/apache/sis/util/internal/Strings.java |   4 +-
 .../apache/sis/util/logging/MonolineFormatter.java |   8 +-
 .../main/org/apache/sis/util/resources/Errors.java |  33 +-
 .../apache/sis/util/resources/Errors.properties    |   5 +-
 .../apache/sis/util/resources/Errors_fr.properties |   3 +-
 .../sis/util/resources/IndexedResourceBundle.java  |   2 +-
 .../org/apache/sis/util/resources/Messages.java    |  14 +-
 .../resources/ResourceInternationalString.java     |   4 +-
 .../org/apache/sis/util/resources/Vocabulary.java  |  10 +-
 .../apache/sis/util/resources/package-info.java    |   4 +-
 .../test/org/apache/sis/io/AppenderTestCase.java   |   4 +-
 .../test/org/apache/sis/io/EchoAppendable.java     |   2 +-
 .../test/org/apache/sis/io/LeftMarginTest.java     |   2 +-
 .../test/org/apache/sis/io/LineAppenderTest.java   |   4 +-
 .../test/org/apache/sis/io/TableAppenderTest.java  |   2 +-
 .../org/apache/sis/io/TabulationExpansionTest.java |   4 +-
 .../test/org/apache/sis/io/WordWrapTest.java       |  33 +-
 .../sis/io/WordWrapWithLineSeparatorTest.java      |   2 +-
 .../test/org/apache/sis/test/TestRunner.java       |   2 +-
 .../apache/sis/util/collection/LargeCodeList.java  |   2 +-
 .../util/resources/IndexedResourceBundleTest.java  |  58 +-
 .../coveragejson/CoverageJsonStoreProvider.java    |   4 +-
 .../sis/storage/shapefile/ShapefileStore.java      |   5 +-
 .../main/org/apache/sis/gui/AboutDialog.java       |   2 +-
 .../main/org/apache/sis/gui/DataViewer.java        |   2 +-
 .../main/org/apache/sis/gui/SystemMonitor.java     |   2 +-
 .../org/apache/sis/gui/controls/ColorCell.java     |   2 +-
 .../apache/sis/gui/controls/ValueColorMapper.java  |   3 +-
 .../apache/sis/gui/coverage/BandRangeTable.java    |   2 +-
 .../apache/sis/gui/coverage/CoverageControls.java  |   2 +-
 .../org/apache/sis/gui/coverage/GridControls.java  |   2 +-
 .../main/org/apache/sis/gui/coverage/GridRow.java  |   2 +-
 .../org/apache/sis/gui/coverage/GridRowSkin.java   |   2 +-
 .../apache/sis/gui/coverage/GridSliceSelector.java |   2 +-
 .../org/apache/sis/gui/coverage/GridViewSkin.java  |   6 +-
 .../sis/gui/coverage/ImagePropertyExplorer.java    |   2 +-
 .../sis/gui/coverage/InterpolationConverter.java   |   4 +-
 .../apache/sis/gui/coverage/IsolineRenderer.java   |   2 +-
 .../org/apache/sis/gui/dataset/FeatureTable.java   |   2 +-
 .../main/org/apache/sis/gui/dataset/LogViewer.java |   3 +-
 .../org/apache/sis/gui/dataset/PathAction.java     |   4 +-
 .../org/apache/sis/gui/dataset/ResourceCell.java   |   6 +-
 .../apache/sis/gui/dataset/ResourceExplorer.java   |   2 +-
 .../org/apache/sis/gui/dataset/WindowHandler.java  |   2 +-
 .../apache/sis/gui/internal/DataStoreOpener.java   |   2 +-
 .../org/apache/sis/gui/internal/PropertyView.java  |   4 +-
 .../apache/sis/gui/internal/io/FileAccessItem.java |   2 +-
 .../main/org/apache/sis/gui/map/StatusBar.java     |   2 +-
 .../org/apache/sis/gui/map/ValuesFormatter.java    |   4 +-
 .../apache/sis/gui/metadata/MetadataSummary.java   |   3 +-
 .../org/apache/sis/gui/metadata/MetadataTree.java  |   2 +-
 .../sis/gui/metadata/StandardMetadataTree.java     |   2 +-
 .../apache/sis/gui/referencing/AuthorityCodes.java |   4 +-
 .../org/apache/sis/gui/referencing/CRSChooser.java |   6 +-
 .../gui/referencing/RecentReferenceSystems.java    |   4 +-
 .../org/apache/sis/gui/referencing/WKTPane.java    |   2 +-
 .../sis/gui/controls/ValueColorMapperApp.java      |   3 +-
 .../sis/gui/coverage/CoverageStylingApp.java       |   3 +-
 375 files changed, 2685 insertions(+), 1856 deletions(-)

diff --cc 
endorsed/src/org.apache.sis.console/main/org/apache/sis/console/TransformCommand.java
index 142eb6cd41,057cfb13d4..215c1970a3
--- 
a/endorsed/src/org.apache.sis.console/main/org/apache/sis/console/TransformCommand.java
+++ 
b/endorsed/src/org.apache.sis.console/main/org/apache/sis/console/TransformCommand.java
@@@ -241,11 -350,11 +351,11 @@@ final class TransformCommand extends Fo
           */
          outHeader = new TableAppender(new LineAppender(out), " ");
          outHeader.setMultiLinesCells(true);
-         printHeader(Vocabulary.Keys.Source);      
printNameAndIdentifier(operation.getSourceCRS(), false);
-         printHeader(Vocabulary.Keys.Destination); 
printNameAndIdentifier(operation.getTargetCRS(), false);
-         printHeader(Vocabulary.Keys.Operations);  printOperations (operation, 
false);
+         printHeader(Vocabulary.Keys.Source);      
printNameAndIdentifier(getEffectiveCRS(false), false);
+         printHeader(Vocabulary.Keys.Destination); 
printNameAndIdentifier(getEffectiveCRS(true),  false);
+         printHeader(Vocabulary.Keys.Operations);  printOperations(operation, 
false);
          outHeader.nextLine();
 -        printDomainOfValidity(operation.getDomains());
 +        printDomainOfValidity(Legacy.getDomains(operation));
          printAccuracy(CRS.getLinearAccuracy(operation));
          if (options.containsKey(Option.VERBOSE)) {
              printDetails();
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/AbstractAssociation.java
index 081f3c301f,a8f9b286fb..bc38064fca
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/AbstractAssociation.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/AbstractAssociation.java
@@@ -154,11 -158,8 +154,11 @@@ public abstract class AbstractAssociati
      /**
       * Sets the associated feature.
       *
 +     * <div class="warning"><b>Warning:</b> In a future SIS version, the 
argument type may be changed
 +     * to {@code org.opengis.feature.Feature}. This change is pending GeoAPI 
revision.</div>
 +     *
       * <h4>Validation</h4>
-      * The amount of validation performed by this method is implementation 
dependent.
+      * The number of validations performed by this method is implementation 
dependent.
       * Usually, only the most basic constraints are verified. This is so for 
performance reasons
       * and also because some rules may be temporarily broken while 
constructing a feature.
       * A more exhaustive verification can be performed by invoking the {@link 
#quality()} method.
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/FeatureFormat.java
index eca393fd7d,22083db4b0..af0eebf569
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/FeatureFormat.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/feature/FeatureFormat.java
@@@ -298,16 -310,16 +298,16 @@@ public class FeatureFormat extends Tabu
          /*
           * Separate the Feature (optional) and the FeatureType (mandatory) 
instances.
           */
 -        final FeatureType featureType;
 -        final Feature feature;
 -        if (object instanceof Feature) {
 -            feature     = (Feature) object;
 +        final DefaultFeatureType featureType;
 +        final AbstractFeature feature;
 +        if (object instanceof AbstractFeature) {
 +            feature     = (AbstractFeature) object;
              featureType = feature.getType();
 -        } else if (object instanceof FeatureType) {
 -            featureType = (FeatureType) object;
 +        } else if (object instanceof DefaultFeatureType) {
 +            featureType = (DefaultFeatureType) object;
              feature     = null;
          } else {
-             throw new 
IllegalArgumentException(Errors.getResources(displayLocale)
+             throw new IllegalArgumentException(Errors.forLocale(displayLocale)
                      .getString(Errors.Keys.UnsupportedType_1, 
object.getClass()));
          }
          /*
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/GeometryWrapper.java
index d2737fd4cc,882fa1e96d..0d48b95aab
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/GeometryWrapper.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/GeometryWrapper.java
@@@ -27,6 -28,6 +28,7 @@@ import org.opengis.geometry.Geometry
  import org.opengis.geometry.DirectPosition;
  import org.opengis.referencing.crs.CoordinateReferenceSystem;
  import org.opengis.referencing.operation.CoordinateOperation;
++import org.opengis.referencing.operation.MathTransform;
  import org.opengis.referencing.operation.TransformException;
  import org.opengis.util.FactoryException;
  import org.apache.sis.geometry.GeneralEnvelope;
@@@ -513,6 -541,46 +532,19 @@@ public abstract class GeometryWrapper e
       */
      public abstract String formatWKT(double flatness);
  
+     /**
+      * Returns a Java2D shape made from this geometry.
+      * The returned shape may be a view backed by the {@linkplain 
#implementation() geometry implementation},
+      * or may be an internal object returned directly. Caller should not 
attempt to modify the returned shape.
+      * Changes in the geometry implementation may or may not be reflected in 
the returned Java2D shape.
+      *
+      * @return a view, copy or direct reference to the geometry as a Java2D 
shape.
+      * @throws UnsupportedOperationException if this operation is not 
supported for current implementation.
+      */
+     public Shape toJava2D() {
+         throw new 
UnsupportedOperationException(Geometries.unsupported("toJava2D"));
+     }
+ 
 -    /**
 -     * Methods from the {@link Geometry} interface. The {@link Override} 
annotation is intentionally omitted
 -     * for reducing the risk of compilation failures during the upcoming 
revision of GeoAPI interfaces since
 -     * some of those methods will be removed.
 -     */
 -    @Deprecated public final Geometry       getMbRegion()                     
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final DirectPosition getRepresentativePoint()          
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final Boundary       getBoundary()                     
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final Complex        getClosure()                      
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final boolean        isSimple()                        
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final boolean        isCycle()                         
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final double         distance(Geometry geometry)       
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final int            getDimension(DirectPosition 
point)        {throw new UnsupportedOperationException();}
 -    @Deprecated public final int            getCoordinateDimension()          
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final Set<Complex>   getMaximalComplex()               
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final Geometry       getConvexHull()                   
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final Geometry       getBuffer(double distance)        
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final Geometry       clone() throws 
CloneNotSupportedException {throw new CloneNotSupportedException();}
 -    @Deprecated public final boolean        contains(TransfiniteSet pointSet) 
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final boolean        contains(DirectPosition point)    
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final boolean        intersects(TransfiniteSet 
pointSet)       {throw new UnsupportedOperationException();}
 -    @Deprecated public final boolean        equals(TransfiniteSet pointSet)   
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final TransfiniteSet union(TransfiniteSet pointSet)    
        {throw new UnsupportedOperationException();}
 -    @Deprecated public final TransfiniteSet intersection(TransfiniteSet 
pointSet)     {throw new UnsupportedOperationException();}
 -    @Deprecated public final TransfiniteSet difference(TransfiniteSet 
pointSet)       {throw new UnsupportedOperationException();}
 -    @Deprecated public final TransfiniteSet 
symmetricDifference(TransfiniteSet ps)    {throw new 
UnsupportedOperationException();}
 -
      /**
       * Returns {@code true} if the given object is a wrapper of the same class
       * and the wrapped geometry implementations are equal.
diff --cc 
endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java
index 16caf64da0,aeede8b8a3..82569f20ad
--- 
a/endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java
+++ 
b/endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java
@@@ -44,6 -45,6 +45,7 @@@ import org.opengis.util.FactoryExceptio
  import org.opengis.geometry.DirectPosition;
  import org.opengis.referencing.crs.CoordinateReferenceSystem;
  import org.opengis.referencing.operation.CoordinateOperation;
++import org.opengis.referencing.operation.MathTransform;
  import org.opengis.referencing.operation.TransformException;
  import org.apache.sis.referencing.util.ReferencingUtilities;
  import org.apache.sis.geometry.DirectPosition2D;
diff --cc 
endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/LocationFormat.java
index bfc3b490c4,fd42702ca6..96449117bc
--- 
a/endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/LocationFormat.java
+++ 
b/endorsed/src/org.apache.sis.referencing.gazetteer/main/org/apache/sis/referencing/gazetteer/LocationFormat.java
@@@ -205,10 -202,10 +205,10 @@@ public class LocationFormat extends Tab
       */
      @Override
      @SuppressWarnings({"fallthrough", "null"})
 -    public void format(final Location location, final Appendable toAppendTo) 
throws IOException {
 +    public void format(final AbstractLocation location, final Appendable 
toAppendTo) throws IOException {
          ArgumentChecks.ensureNonNull("location", location);
          final Locale locale = getLocale(Locale.Category.DISPLAY);
-         final Vocabulary vocabulary = Vocabulary.getResources(locale);
+         final Vocabulary vocabulary = Vocabulary.forLocale(locale);
          final TableAppender table = new TableAppender(toAppendTo, "│ ", 
columnSeparator, " │");
          table.setMultiLinesCells(true);
          /*
diff --cc 
endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/JoinFeatureSetTest.java
index 2759c00f8d,e4e378e4eb..6b5d1358d6
--- 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/JoinFeatureSetTest.java
+++ 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/JoinFeatureSetTest.java
@@@ -174,14 -174,14 +174,14 @@@ public final class JoinFeatureSetTest e
                      case "fid_1_2 fid_2_3":  att1 = "str3"; join = 3; att4 = 
40; break;
                      default: fail("unexpected feature"); continue;
                  }
 -                final Feature c1 = (Feature) f.getPropertyValue("s1");
 -                final Feature c2 = (Feature) f.getPropertyValue("s2");
 -                assertEquals("att1", att1, c1.getProperty("att1").getValue());
 -                assertEquals("att2", join, c1.getProperty("att2").getValue());
 -                assertEquals("att3", join, c2.getProperty("att3").getValue());
 -                assertEquals("att4", att4, c2.getProperty("att4").getValue());
 +                final AbstractFeature c1 = (AbstractFeature) 
f.getPropertyValue("s1");
 +                final AbstractFeature c2 = (AbstractFeature) 
f.getPropertyValue("s2");
 +                assertEquals("att1", att1, ((AbstractAttribute) 
c1.getProperty("att1")).getValue());
 +                assertEquals("att2", join, ((AbstractAttribute) 
c1.getProperty("att2")).getValue());
 +                assertEquals("att3", join, ((AbstractAttribute) 
c2.getProperty("att3")).getValue());
 +                assertEquals("att4", att4, ((AbstractAttribute) 
c2.getProperty("att4")).getValue());
              }
-             assertEquals("Unexpected amount of features.", 4, count);
+             assertEquals("Unexpected number of features.", 4, count);
          }
      }
  
diff --cc 
endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/xml/StoreTest.java
index 2a26da58b9,5bdaf5f248..71df966410
--- 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/xml/StoreTest.java
+++ 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/xml/StoreTest.java
@@@ -101,17 -102,19 +102,17 @@@ public final class StoreTest extends Te
          final Metadata metadata;
          try (Store store = new Store(null, new StorageConnector(new 
StringReader(XML)))) {
              metadata = store.getMetadata();
-             assertSame("Expected cached value.", metadata, 
store.getMetadata());
+             assertSame(metadata, store.getMetadata(), "Expected cached 
value.");
          }
 -        final Responsibility resp     = getSingleton(metadata.getContacts());
 -        final Party          party    = getSingleton(resp.getParties());
 -        final Contact        contact  = getSingleton(party.getContactInfo());
 -        final OnlineResource resource = 
getSingleton(contact.getOnlineResources());
 +        final ResponsibleParty resp     = 
getSingleton(metadata.getContacts());
 +        final Contact          contact  = resp.getContactInfo();
 +        final OnlineResource   resource = contact.getOnlineResource();
  
 -        assertInstanceOf(Organisation.class, party, "party");
 -        assertEquals(Locale.ENGLISH,              
getSingleton(metadata.getLocalesAndCharsets().keySet()));
 -        assertEquals(StandardCharsets.UTF_8,      
getSingleton(metadata.getLocalesAndCharsets().values()));
 +        assertEquals(Locale.ENGLISH,              metadata.getLanguage());
 +        assertEquals(CharacterSet.UTF_8,          metadata.getCharacterSet());
          assertEquals(Role.PRINCIPAL_INVESTIGATOR, resp.getRole());
 -        assertEquals("Apache SIS",                
String.valueOf(party.getName()));
 -        assertEquals("https://sis.apache.org";,    
String.valueOf(resource.getLinkage()));
 +        assertEquals("Apache SIS",                
String.valueOf(resp.getOrganisationName()));
 +        assertEquals("http://sis.apache.org";,     
String.valueOf(resource.getLinkage()));
          assertEquals(OnLineFunction.INFORMATION,  resource.getFunction());
      }
  }
diff --cc 
endorsed/src/org.apache.sis.util/main/org/apache/sis/io/IdentifiedObjectFormat.java
index 19e6a970da,d639be2a9f..0e13bcb52b
--- 
a/endorsed/src/org.apache.sis.util/main/org/apache/sis/io/IdentifiedObjectFormat.java
+++ 
b/endorsed/src/org.apache.sis.util/main/org/apache/sis/io/IdentifiedObjectFormat.java
@@@ -60,9 -60,9 +60,9 @@@ final class IdentifiedObjectFormat exte
       */
      @Override
      public StringBuffer format(final Object obj, final StringBuffer 
toAppendTo, final FieldPosition pos) {
 -        final Identifier identifier = ((IdentifiedObject) obj).getName();
 +        final ReferenceIdentifier identifier = ((IdentifiedObject) 
obj).getName();
          if (identifier == null) {
-             return 
toAppendTo.append(Vocabulary.getResources(locale).getString(Vocabulary.Keys.Unnamed));
+             return 
toAppendTo.append(Vocabulary.forLocale(locale).getString(Vocabulary.Keys.Unnamed));
          }
          if (identifier instanceof GenericName) {
              // The toString() behavior is specified by the GenericName 
javadoc.
diff --cc 
endorsed/src/org.apache.sis.util/main/org/apache/sis/util/internal/PropertyFormat.java
index cc7e2af88b,d873c75f10..92df2230f8
--- 
a/endorsed/src/org.apache.sis.util/main/org/apache/sis/util/internal/PropertyFormat.java
+++ 
b/endorsed/src/org.apache.sis.util/main/org/apache/sis/util/internal/PropertyFormat.java
@@@ -99,12 -99,12 +99,12 @@@ public abstract class PropertyFormat ex
              text = freeText(((InternationalString) 
value).toString(getLocale()));
          } else if (value instanceof CharSequence) {
              text = freeText(value.toString());
 -        } else if (value instanceof ControlledVocabulary) {
 -            text = 
MetadataServices.getInstance().getCodeTitle((ControlledVocabulary) value, 
getLocale());
 -        } else if (value instanceof Boolean) {
 -            text = Vocabulary.forLocale(getLocale()).getString((Boolean) 
value ? Vocabulary.Keys.True : Vocabulary.Keys.False);
 +        } else if (value instanceof CodeList<?>) {
 +            text = MetadataServices.getInstance().getCodeTitle((CodeList<?>) 
value, getLocale());
          } else if (value instanceof Enum<?>) {
              text = CharSequences.upperCaseToSentence(((Enum<?>) 
value).name());
 +        } else if (value instanceof Boolean) {
-             text = Vocabulary.getResources(getLocale()).getString((Boolean) 
value ? Vocabulary.Keys.True : Vocabulary.Keys.False);
++            text = Vocabulary.forLocale(getLocale()).getString((Boolean) 
value ? Vocabulary.Keys.True : Vocabulary.Keys.False);
          } else if (value instanceof Type) {
              appendName(((Type) value).getTypeName());
              return;


Reply via email to