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;