This is an automated email from the ASF dual-hosted git repository. desruisseaux pushed a commit to branch geoapi-3.1 in repository https://gitbox.apache.org/repos/asf/sis.git
commit 9048ae55d3d4015181edbec6d937e354a88a546e Merge: 6cbd4e47c3 069553e76c Author: Martin Desruisseaux <martin.desruisse...@geomatys.com> AuthorDate: Thu Mar 7 18:42:19 2024 +0100 Merge branch 'geoapi-4.0' into geoapi-3.1. https://issues.apache.org/jira/browse/SIS-596 endorsed/build.gradle.kts | 6 +- .../apache/sis/cloud/aws/s3/ClientFileSystem.java | 2 +- .../main/org/apache/sis/console/AboutCommand.java | 4 +- .../main/org/apache/sis/console/Command.java | 2 +- .../main/org/apache/sis/console/CommandRunner.java | 2 +- .../apache/sis/console/FormattedOutputCommand.java | 2 +- .../org/apache/sis/console/IdentifierCommand.java | 2 +- .../apache/sis/console/ResourcesDownloader.java | 2 +- .../org/apache/sis/console/TransformCommand.java | 8 +- .../org.apache.sis.feature/main/module-info.java | 13 +- .../org/apache/sis/coverage/CoverageCombiner.java | 6 +- .../org/apache/sis/coverage/SampleDimension.java | 2 +- .../org/apache/sis/coverage/SampleRangeFormat.java | 2 +- .../coverage/grid/BandAggregateGridCoverage.java | 4 +- .../coverage/grid/CoordinateOperationFinder.java | 6 +- .../apache/sis/coverage/grid/DefaultEvaluator.java | 8 +- .../sis/coverage/grid/DimensionAppender.java | 2 +- .../apache/sis/coverage/grid/DimensionReducer.java | 2 +- .../sis/coverage/grid/DimensionalityReduction.java | 2 +- .../coverage/grid/FractionalGridCoordinates.java | 2 +- .../org/apache/sis/coverage/grid/GridCoverage.java | 4 +- .../apache/sis/coverage/grid/GridCoverage2D.java | 4 +- .../sis/coverage/grid/GridCoverageBuilder.java | 10 +- .../sis/coverage/grid/GridCoverageProcessor.java | 8 +- .../apache/sis/coverage/grid/GridDerivation.java | 2 +- .../org/apache/sis/coverage/grid/GridExtent.java | 10 +- .../apache/sis/coverage/grid/GridExtentCRS.java | 2 +- .../org/apache/sis/coverage/grid/GridGeometry.java | 18 +- .../apache/sis/coverage/grid/ImageRenderer.java | 12 +- .../sis/coverage/grid/ReducedGridCoverage.java | 2 +- .../sis/coverage/grid/ResampledGridCoverage.java | 6 +- .../apache/sis/coverage/grid/SliceGeometry.java | 8 +- .../sis/coverage/grid/j2d/BatchComputedImage.java | 213 ---- .../sis/coverage/grid/j2d/ColorModelBuilder.java | 701 -------------- .../sis/coverage/grid/j2d/ColorModelFactory.java | 864 ----------------- .../sis/coverage/grid/j2d/ColorModelType.java | 106 -- .../sis/coverage/grid/j2d/ColorsForRange.java | 291 ------ .../sis/coverage/grid/j2d/DeferredProperty.java | 124 --- .../apache/sis/coverage/grid/j2d/FillValues.java | 208 ---- .../apache/sis/coverage/grid/j2d/ImageLayout.java | 438 --------- .../sis/coverage/grid/j2d/ImageUtilities.java | 673 ------------- .../grid/j2d/MultiBandsIndexColorModel.java | 314 ------ .../sis/coverage/grid/j2d/ObservableImage.java | 288 ------ .../sis/coverage/grid/j2d/RasterFactory.java | 314 ------ .../sis/coverage/grid/j2d/SampleModelFactory.java | 291 ------ .../sis/coverage/grid/j2d/ScaledColorModel.java | 162 ---- .../sis/coverage/grid/j2d/ScaledColorSpace.java | 223 ----- .../sis/coverage/grid/j2d/TileErrorHandler.java | 120 --- .../sis/coverage/grid/j2d/TileOpExecutor.java | 1019 -------------------- .../sis/coverage/grid/j2d/TilePlaceholder.java | 404 -------- .../apache/sis/coverage/grid/j2d/TiledImage.java | 274 ------ .../sis/coverage/grid/j2d/WritableTiledImage.java | 217 ----- .../apache/sis/coverage/grid/j2d/package-info.java | 31 - .../sis/coverage/internal/CommonDomainFinder.java | 374 ------- .../sis/coverage/internal/MultiSourceArgument.java | 619 ------------ .../sis/coverage/internal/RangeArgument.java | 395 -------- .../sis/coverage/internal/SampleDimensions.java | 179 ---- .../apache/sis/coverage/internal/package-info.java | 2 +- .../sis/coverage/privy/BatchComputedImage.java | 213 ++++ .../sis/coverage/privy/ColorModelBuilder.java | 701 ++++++++++++++ .../sis/coverage/privy/ColorModelFactory.java | 864 +++++++++++++++++ .../apache/sis/coverage/privy/ColorModelType.java | 106 ++ .../apache/sis/coverage/privy/ColorsForRange.java | 291 ++++++ .../sis/coverage/privy/CommonDomainFinder.java | 374 +++++++ .../sis/coverage/privy/DeferredProperty.java | 124 +++ .../org/apache/sis/coverage/privy/FillValues.java | 208 ++++ .../org/apache/sis/coverage/privy/ImageLayout.java | 438 +++++++++ .../apache/sis/coverage/privy/ImageUtilities.java | 673 +++++++++++++ .../coverage/privy/MultiBandsIndexColorModel.java | 314 ++++++ .../sis/coverage/privy/MultiSourceArgument.java | 619 ++++++++++++ .../apache/sis/coverage/privy/ObservableImage.java | 288 ++++++ .../apache/sis/coverage/privy/RangeArgument.java | 395 ++++++++ .../apache/sis/coverage/privy/RasterFactory.java | 314 ++++++ .../sis/coverage/privy/SampleDimensions.java | 179 ++++ .../sis/coverage/privy/SampleModelFactory.java | 291 ++++++ .../sis/coverage/privy/ScaledColorModel.java | 162 ++++ .../sis/coverage/privy/ScaledColorSpace.java | 223 +++++ .../sis/coverage/privy/TileErrorHandler.java | 120 +++ .../apache/sis/coverage/privy/TileOpExecutor.java | 1019 ++++++++++++++++++++ .../apache/sis/coverage/privy/TilePlaceholder.java | 404 ++++++++ .../org/apache/sis/coverage/privy/TiledImage.java | 274 ++++++ .../sis/coverage/privy/WritableTiledImage.java | 217 +++++ .../apache/sis/coverage/privy/package-info.java | 30 + .../org/apache/sis/feature/AbstractFeature.java | 2 +- .../org/apache/sis/feature/CharacteristicMap.java | 8 +- .../apache/sis/feature/CharacteristicTypeMap.java | 4 +- .../apache/sis/feature/DefaultAssociationRole.java | 2 +- .../org/apache/sis/feature/DefaultFeatureType.java | 4 +- .../main/org/apache/sis/feature/DenseFeature.java | 4 +- .../org/apache/sis/feature/EnvelopeOperation.java | 6 +- .../apache/sis/feature/ExpressionOperation.java | 6 +- .../main/org/apache/sis/feature/FeatureFormat.java | 4 +- .../org/apache/sis/feature/FeatureOperations.java | 2 +- .../sis/feature/GroupAsPolylineOperation.java | 4 +- .../main/org/apache/sis/feature/LinkOperation.java | 2 +- .../apache/sis/feature/MultiValuedAssociation.java | 2 +- .../apache/sis/feature/MultiValuedAttribute.java | 4 +- .../org/apache/sis/feature/NamedFeatureType.java | 2 +- .../org/apache/sis/feature/SingletonAttribute.java | 2 +- .../main/org/apache/sis/feature/SparseFeature.java | 4 +- .../apache/sis/feature/StringJoinOperation.java | 6 +- .../sis/feature/builder/AttributeTypeBuilder.java | 8 +- .../sis/feature/builder/FeatureTypeBuilder.java | 2 +- .../sis/feature/internal/AttributeConvention.java | 444 --------- .../sis/feature/internal/FeatureExpression.java | 128 --- .../sis/feature/internal/FeatureUtilities.java | 92 -- .../apache/sis/feature/internal/InstantList.java | 80 -- .../sis/feature/internal/MovingFeatures.java | 130 --- .../apache/sis/feature/internal/package-info.java | 4 +- .../sis/feature/privy/AttributeConvention.java | 444 +++++++++ .../sis/feature/privy/FeatureExpression.java | 128 +++ .../apache/sis/feature/privy/FeatureUtilities.java | 92 ++ .../org/apache/sis/feature/privy/InstantList.java | 80 ++ .../apache/sis/feature/privy/MovingFeatures.java | 130 +++ .../org/apache/sis/feature/privy/package-info.java | 32 + .../org/apache/sis/filter/ArithmeticFunction.java | 4 +- .../apache/sis/filter/BinaryGeometryFilter.java | 2 +- .../main/org/apache/sis/filter/Capabilities.java | 2 +- .../org/apache/sis/filter/ConvertFunction.java | 4 +- .../apache/sis/filter/DefaultFilterFactory.java | 3 +- .../org/apache/sis/filter/FunctionRegister.java | 78 ++ .../org/apache/sis/filter/IdentifierFilter.java | 2 +- .../main/org/apache/sis/filter/LeafExpression.java | 2 +- .../main/org/apache/sis/filter/LogicalFilter.java | 4 +- .../main/org/apache/sis/filter/Optimization.java | 2 +- .../main/org/apache/sis/filter/PropertyValue.java | 2 +- .../apache/sis/filter/internal/CopyVisitor.java | 707 -------------- .../apache/sis/filter/internal/EditVisitor.java | 55 -- .../apache/sis/filter/internal/FunctionNames.java | 89 -- .../sis/filter/internal/FunctionRegister.java | 77 -- .../main/org/apache/sis/filter/internal/Node.java | 2 +- .../sis/filter/internal/SortByComparator.java | 203 ---- .../org/apache/sis/filter/internal/Visitor.java | 329 ------- .../main/org/apache/sis/filter/internal/XPath.java | 251 ----- .../org/apache/sis/filter/privy/CopyVisitor.java | 707 ++++++++++++++ .../org/apache/sis/filter/privy/EditVisitor.java | 55 ++ .../org/apache/sis/filter/privy/FunctionNames.java | 89 ++ .../apache/sis/filter/privy/SortByComparator.java | 203 ++++ .../main/org/apache/sis/filter/privy/Visitor.java | 329 +++++++ .../main/org/apache/sis/filter/privy/XPath.java | 251 +++++ .../org/apache/sis/filter/privy/package-info.java | 31 + .../apache/sis/filter/sqlmm/FunctionWithSRID.java | 2 +- .../main/org/apache/sis/filter/sqlmm/Registry.java | 2 +- .../main/org/apache/sis/filter/sqlmm/ST_Point.java | 2 +- .../apache/sis/filter/sqlmm/SpatialFunction.java | 2 +- .../org/apache/sis/filter/sqlmm/TwoGeometries.java | 2 +- .../apache/sis/geometry/wrapper/Geometries.java | 2 +- .../apache/sis/geometry/wrapper/GeometryType.java | 2 +- .../sis/geometry/wrapper/GeometryWrapper.java | 2 +- .../geometry/wrapper/SpatialOperationContext.java | 6 +- .../apache/sis/geometry/wrapper/esri/Factory.java | 2 +- .../sis/geometry/wrapper/j2d/EmptyShape.java | 2 +- .../apache/sis/geometry/wrapper/j2d/Factory.java | 6 +- .../apache/sis/geometry/wrapper/j2d/FlatShape.java | 2 +- .../sis/geometry/wrapper/j2d/MultiPolylines.java | 2 +- .../sis/geometry/wrapper/j2d/ShapeProperties.java | 2 +- .../sis/geometry/wrapper/j2d/ShapeWrapper.java | 2 +- .../apache/sis/geometry/wrapper/j2d/Wrapper.java | 4 +- .../apache/sis/geometry/wrapper/jts/Factory.java | 2 +- .../org/apache/sis/geometry/wrapper/jts/JTS.java | 2 +- .../sis/geometry/wrapper/jts/ShapeAdapter.java | 4 +- .../sis/geometry/wrapper/jts/ShapeConverter.java | 2 +- .../apache/sis/geometry/wrapper/jts/Wrapper.java | 2 +- .../main/org/apache/sis/image/AnnotatedImage.java | 6 +- .../org/apache/sis/image/BandAggregateImage.java | 4 +- .../main/org/apache/sis/image/BandSelectImage.java | 8 +- .../main/org/apache/sis/image/BandSharing.java | 2 +- .../apache/sis/image/BandedSampleConverter.java | 14 +- .../main/org/apache/sis/image/Colorizer.java | 4 +- .../main/org/apache/sis/image/ComputedImage.java | 4 +- .../main/org/apache/sis/image/DataType.java | 4 +- .../main/org/apache/sis/image/ImageCombiner.java | 6 +- .../main/org/apache/sis/image/ImageProcessor.java | 6 +- .../main/org/apache/sis/image/MaskImage.java | 6 +- .../main/org/apache/sis/image/MaskedImage.java | 10 +- .../org/apache/sis/image/MultiSourceImage.java | 2 +- .../org/apache/sis/image/MultiSourceLayout.java | 10 +- .../org/apache/sis/image/MultiSourcePrefetch.java | 2 +- .../main/org/apache/sis/image/PixelIterator.java | 4 +- .../main/org/apache/sis/image/PlanarImage.java | 6 +- .../sis/image/PositionalConsistencyImage.java | 2 +- .../main/org/apache/sis/image/PrefetchedImage.java | 8 +- .../main/org/apache/sis/image/RecoloredImage.java | 6 +- .../main/org/apache/sis/image/ResampledImage.java | 8 +- .../main/org/apache/sis/image/ResamplingGrid.java | 2 +- .../org/apache/sis/image/StatisticsCalculator.java | 2 +- .../main/org/apache/sis/image/TileCache.java | 2 +- .../main/org/apache/sis/image/Transferer.java | 6 +- .../main/org/apache/sis/image/Visualization.java | 8 +- .../apache/sis/image/WritableComputedImage.java | 2 +- .../sis/image/processing/CompoundFuture.java | 2 +- .../sis/image/processing/isoline/Fragments.java | 2 +- .../org/apache/sis/index/tree/NodeIterator.java | 2 +- .../main/org/apache/sis/index/tree/PointTree.java | 2 +- .../coverage/grid/ConvertedGridCoverageTest.java | 2 +- .../coverage/grid/DimensionalityReductionTest.java | 2 +- .../sis/coverage/grid/GridCoverage2DTest.java | 2 +- .../sis/coverage/grid/GridCoverageBuilderTest.java | 2 +- .../sis/coverage/grid/GridDerivationTest.java | 4 +- .../apache/sis/coverage/grid/GridGeometryTest.java | 2 +- .../coverage/grid/ResampledGridCoverageTest.java | 6 +- .../coverage/grid/TranslatedGridCoverageTest.java | 2 +- .../coverage/grid/j2d/ColorModelBuilderTest.java | 151 --- .../sis/coverage/grid/j2d/ImageLayoutTest.java | 48 - .../sis/coverage/grid/j2d/ImageUtilitiesTest.java | 235 ----- .../coverage/grid/j2d/SampleModelFactoryTest.java | 151 --- .../coverage/grid/j2d/ScaledColorSpaceTest.java | 102 -- .../sis/coverage/internal/RangeArgumentTest.java | 94 -- .../sis/coverage/privy/ColorModelBuilderTest.java | 151 +++ .../apache/sis/coverage/privy/ImageLayoutTest.java | 48 + .../sis/coverage/privy/ImageUtilitiesTest.java | 235 +++++ .../sis/coverage/privy/RangeArgumentTest.java | 94 ++ .../sis/coverage/privy/SampleModelFactoryTest.java | 151 +++ .../sis/coverage/privy/ScaledColorSpaceTest.java | 102 ++ .../apache/sis/feature/EnvelopeOperationTest.java | 2 +- .../apache/sis/feature/FeatureMemoryBenchmark.java | 2 +- .../apache/sis/feature/FeatureOperationsTest.java | 2 +- .../sis/feature/StringJoinOperationTest.java | 2 +- .../feature/builder/AttributeTypeBuilderTest.java | 2 +- .../feature/builder/FeatureTypeBuilderTest.java | 2 +- .../feature/internal/AttributeConventionTest.java | 122 --- .../sis/feature/privy/AttributeConventionTest.java | 122 +++ .../apache/sis/feature/test/FeatureComparator.java | 2 +- .../apache/sis/filter/ComparisonFilterTest.java | 2 +- .../org/apache/sis/filter/TemporalFilterTest.java | 2 +- .../test/org/apache/sis/filter/XPathTest.java | 2 +- .../sis/filter/internal/CopyVisitorTest.java | 80 -- .../sis/filter/internal/FilterFactoryMock.java | 558 ----------- .../apache/sis/filter/internal/FunctionMock.java | 95 -- .../sis/filter/internal/FunctionNamesTest.java | 154 --- .../sis/filter/internal/ValueReferenceMock.java | 85 -- .../apache/sis/filter/privy/CopyVisitorTest.java | 80 ++ .../apache/sis/filter/privy/FilterFactoryMock.java | 558 +++++++++++ .../org/apache/sis/filter/privy/FunctionMock.java | 95 ++ .../apache/sis/filter/privy/FunctionNamesTest.java | 154 +++ .../sis/filter/privy/ValueReferenceMock.java | 85 ++ .../apache/sis/geometry/wrapper/jts/JTSTest.java | 2 +- .../apache/sis/image/BandAggregateImageTest.java | 4 +- .../org/apache/sis/image/BandSelectImageTest.java | 4 +- .../sis/image/BandedSampleConverterTest.java | 2 +- .../org/apache/sis/image/ImageCombinerTest.java | 2 +- .../org/apache/sis/image/InterpolationTest.java | 4 +- .../test/org/apache/sis/image/MaskedImageTest.java | 2 +- .../test/org/apache/sis/image/PlanarImageTest.java | 2 +- .../org/apache/sis/image/ResampledImageTest.java | 6 +- .../org/apache/sis/image/ResamplingGridTest.java | 4 +- .../apache/sis/image/StatisticsCalculatorTest.java | 2 +- .../test/org/apache/sis/image/TiledImageMock.java | 4 +- .../sis/image/processing/isoline/IsolinesTest.java | 2 +- .../sis/image/processing/isoline/StepsViewer.java | 2 +- ... => org.apache.sis.util.privy.MetadataServices} | 0 .../org.apache.sis.metadata/main/module-info.java | 12 +- .../org/apache/sis/metadata/MetadataStandard.java | 2 +- .../org/apache/sis/metadata/MetadataVisitor.java | 2 +- .../sis/metadata/MetadataVisitorException.java | 2 +- .../apache/sis/metadata/ModifiableMetadata.java | 8 +- .../org/apache/sis/metadata/PropertyAccessor.java | 10 +- .../main/org/apache/sis/metadata/PropertyMap.java | 2 +- .../main/org/apache/sis/metadata/Pruner.java | 2 +- .../main/org/apache/sis/metadata/SpecialCases.java | 4 +- .../main/org/apache/sis/metadata/StateChanger.java | 6 +- .../main/org/apache/sis/metadata/TreeNode.java | 4 +- .../org/apache/sis/metadata/TreeTableView.java | 4 +- .../apache/sis/metadata/internal/AxisNames.java | 221 ----- .../sis/metadata/internal/CitationConstant.java | 244 +++++ .../apache/sis/metadata/internal/Identifiers.java | 299 ------ .../metadata/internal/ImplementationHelper.java | 304 ------ .../org/apache/sis/metadata/internal/Merger.java | 425 -------- .../apache/sis/metadata/internal/NameMeaning.java | 238 ----- .../sis/metadata/internal/NameToIdentifier.java | 313 ------ .../sis/metadata/internal/RecordSchemaSIS.java | 2 +- .../sis/metadata/internal/ReferencingServices.java | 301 ------ .../apache/sis/metadata/internal/Resources.java | 7 +- .../sis/metadata/internal/Resources.properties | 1 - .../sis/metadata/internal/Resources_fr.properties | 1 - .../sis/metadata/internal/ServicesForUtility.java | 14 +- .../sis/metadata/internal/TemporalUtilities.java | 144 --- .../metadata/internal/TransformationAccuracy.java | 89 -- .../apache/sis/metadata/internal/package-info.java | 2 +- .../iso/DefaultExtendedElementInformation.java | 6 +- .../apache/sis/metadata/iso/DefaultMetadata.java | 6 +- .../org/apache/sis/metadata/iso/ISOMetadata.java | 6 +- .../acquisition/DefaultEnvironmentalRecord.java | 2 +- .../sis/metadata/iso/acquisition/DefaultEvent.java | 4 +- .../iso/acquisition/DefaultRequestedDate.java | 4 +- .../iso/acquisition/DefaultRequirement.java | 4 +- .../sis/metadata/iso/citation/Citations.java | 8 +- .../sis/metadata/iso/citation/DefaultCitation.java | 6 +- .../metadata/iso/citation/DefaultCitationDate.java | 4 +- .../sis/metadata/iso/citation/DefaultContact.java | 4 +- .../iso/citation/DefaultResponsibleParty.java | 4 +- .../metadata/iso/citation/DefaultTelephone.java | 4 +- .../sis/metadata/iso/citation/package-info.java | 2 +- .../sis/metadata/iso/content/DefaultBand.java | 2 +- .../iso/content/DefaultCoverageDescription.java | 6 +- .../DefaultFeatureCatalogueDescription.java | 4 +- .../iso/content/DefaultFeatureTypeInfo.java | 2 +- .../iso/content/DefaultImageDescription.java | 6 +- .../iso/content/DefaultRangeDimension.java | 2 +- .../iso/content/DefaultSampleDimension.java | 2 +- .../sis/metadata/iso/content/package-info.java | 2 +- .../metadata/iso/distribution/DefaultDataFile.java | 2 +- .../DefaultDigitalTransferOptions.java | 4 +- .../metadata/iso/distribution/DefaultFormat.java | 4 +- .../metadata/iso/distribution/DefaultMedium.java | 8 +- .../distribution/DefaultStandardOrderProcess.java | 4 +- .../metadata/iso/distribution/package-info.java | 2 +- .../sis/metadata/iso/extent/DefaultExtent.java | 2 +- .../iso/extent/DefaultGeographicBoundingBox.java | 2 +- .../iso/extent/DefaultSpatialTemporalExtent.java | 4 +- .../metadata/iso/extent/DefaultTemporalExtent.java | 4 +- .../metadata/iso/extent/DefaultVerticalExtent.java | 2 +- .../apache/sis/metadata/iso/extent/Extents.java | 6 +- .../iso/identification/AbstractIdentification.java | 2 +- .../DefaultAggregateInformation.java | 2 +- .../iso/identification/DefaultCoupledResource.java | 4 +- .../identification/DefaultDataIdentification.java | 2 +- .../DefaultRepresentativeFraction.java | 6 +- .../iso/identification/DefaultResolution.java | 2 +- .../metadata/iso/identification/DefaultUsage.java | 4 +- .../metadata/iso/identification/OperationName.java | 2 +- .../metadata/iso/identification/package-info.java | 2 +- .../metadata/iso/legacy/LegacyPropertyAdapter.java | 2 +- .../iso/lineage/DefaultNominalResolution.java | 2 +- .../metadata/iso/lineage/DefaultProcessStep.java | 4 +- .../sis/metadata/iso/lineage/DefaultSource.java | 2 +- .../sis/metadata/iso/lineage/package-info.java | 2 +- .../maintenance/DefaultMaintenanceInformation.java | 6 +- .../sis/metadata/iso/maintenance/package-info.java | 2 +- .../org/apache/sis/metadata/iso/package-info.java | 2 +- .../sis/metadata/iso/quality/AbstractElement.java | 2 +- .../iso/quality/DefaultCoverageResult.java | 2 +- .../metadata/iso/quality/DefaultDataQuality.java | 2 +- .../iso/quality/DefaultEvaluationMethod.java | 4 +- .../iso/quality/DefaultMeasureReference.java | 2 +- .../DefaultNonQuantitativeAttributeAccuracy.java | 2 +- .../iso/quality/DefaultQuantitativeResult.java | 2 +- .../sis/metadata/iso/quality/DefaultScope.java | 2 +- .../sis/metadata/iso/quality/DefaultUsability.java | 2 +- .../sis/metadata/iso/quality/package-info.java | 2 +- .../sis/metadata/iso/spatial/DefaultDimension.java | 2 +- .../iso/spatial/DefaultGeometricObjects.java | 2 +- .../spatial/DefaultGridSpatialRepresentation.java | 2 +- .../org/apache/sis/metadata/privy/AxisNames.java | 221 +++++ .../org/apache/sis/metadata/privy/Identifiers.java | 299 ++++++ .../sis/metadata/privy/ImplementationHelper.java | 304 ++++++ .../main/org/apache/sis/metadata/privy/Merger.java | 425 ++++++++ .../org/apache/sis/metadata/privy/NameMeaning.java | 238 +++++ .../sis/metadata/privy/NameToIdentifier.java | 313 ++++++ .../sis/metadata/privy/ReferencingServices.java | 301 ++++++ .../sis/metadata/privy/TemporalUtilities.java | 144 +++ .../sis/metadata/privy/TransformationAccuracy.java | 90 ++ .../apache/sis/metadata/privy/package-info.java | 30 + .../sis/metadata/simple/CitationConstant.java | 243 ----- .../apache/sis/metadata/simple/SimpleCitation.java | 2 +- .../apache/sis/metadata/simple/SimpleDuration.java | 2 +- .../apache/sis/metadata/simple/SimpleExtent.java | 2 +- .../apache/sis/metadata/simple/SimpleFormat.java | 2 +- .../metadata/simple/SimpleIdentifiedObject.java | 4 +- .../sis/metadata/simple/SimpleIdentifier.java | 2 +- .../org/apache/sis/metadata/sql/Dispatcher.java | 4 +- .../sis/metadata/sql/IdentifierGenerator.java | 2 +- .../org/apache/sis/metadata/sql/Installer.java | 2 +- .../apache/sis/metadata/sql/MetadataFallback.java | 2 +- .../apache/sis/metadata/sql/MetadataSource.java | 14 +- .../apache/sis/metadata/sql/MetadataWriter.java | 8 +- .../org/apache/sis/metadata/sql/privy/Dialect.java | 149 +++ .../apache/sis/metadata/sql/privy/Initializer.java | 457 +++++++++ .../sis/metadata/sql/privy/LocalDataSource.java | 455 +++++++++ .../apache/sis/metadata/sql/privy/Reflection.java | 213 ++++ .../apache/sis/metadata/sql/privy/SQLBuilder.java | 367 +++++++ .../sis/metadata/sql/privy/SQLUtilities.java | 199 ++++ .../sis/metadata/sql/privy/ScriptRunner.java | 836 ++++++++++++++++ .../org/apache/sis/metadata/sql/privy/Syntax.java | 81 ++ .../apache/sis/metadata/sql/privy/TypeMapper.java | 105 ++ .../sis/metadata/sql/privy/package-info.java | 77 ++ .../org/apache/sis/metadata/sql/util/Dialect.java | 149 --- .../apache/sis/metadata/sql/util/Initializer.java | 457 --------- .../sis/metadata/sql/util/LocalDataSource.java | 455 --------- .../apache/sis/metadata/sql/util/Reflection.java | 213 ---- .../apache/sis/metadata/sql/util/SQLBuilder.java | 367 ------- .../apache/sis/metadata/sql/util/SQLUtilities.java | 199 ---- .../apache/sis/metadata/sql/util/ScriptRunner.java | 836 ---------------- .../org/apache/sis/metadata/sql/util/Syntax.java | 81 -- .../apache/sis/metadata/sql/util/TypeMapper.java | 105 -- .../apache/sis/metadata/sql/util/package-info.java | 77 -- .../apache/sis/util/iso/DefaultNameFactory.java | 2 +- .../org/apache/sis/util/iso/DefaultNameSpace.java | 4 +- .../org/apache/sis/util/iso/DefaultRecord.java | 4 +- .../apache/sis/util/iso/DefaultRecordSchema.java | 2 +- .../org/apache/sis/util/iso/DefaultScopedName.java | 2 +- .../org/apache/sis/util/iso/RecordDefinition.java | 2 +- .../main/org/apache/sis/util/iso/TypeNames.java | 2 +- .../main/org/apache/sis/util/iso/Types.java | 2 +- .../main/org/apache/sis/xml/MarshallerPool.java | 2 +- .../main/org/apache/sis/xml/Namespaces.java | 4 +- .../main/org/apache/sis/xml/NilObjectHandler.java | 2 +- .../main/org/apache/sis/xml/OutputFactory.java | 2 +- .../main/org/apache/sis/xml/Pooled.java | 6 +- .../main/org/apache/sis/xml/PooledMarshaller.java | 2 +- .../org/apache/sis/xml/PooledUnmarshaller.java | 2 +- .../main/org/apache/sis/xml/ReferenceResolver.java | 8 +- .../main/org/apache/sis/xml/TransformVersion.java | 2 +- .../org/apache/sis/xml/TransformingReader.java | 14 +- .../org/apache/sis/xml/TransformingWriter.java | 4 +- .../main/org/apache/sis/xml/ValueConverter.java | 2 +- .../main/org/apache/sis/xml/XML.java | 2 +- .../main/org/apache/sis/xml/XPointer.java | 2 +- .../main/org/apache/sis/xml/bind/Context.java | 6 +- .../apache/sis/xml/bind/IdentifierMapAdapter.java | 4 +- .../sis/xml/bind/NonMarshalledAuthority.java | 6 +- .../apache/sis/xml/bind/SpecializedIdentifier.java | 2 +- .../org/apache/sis/xml/bind/cat/CodeListUID.java | 2 +- .../sis/xml/bind/gco/CharSequenceAdapter.java | 2 +- .../sis/xml/bind/gco/GO_CharacterString.java | 2 +- .../org/apache/sis/xml/bind/gco/GO_DateTime.java | 2 +- .../org/apache/sis/xml/bind/gco/GO_Temporal.java | 2 +- .../org/apache/sis/xml/bind/gco/PropertyType.java | 2 +- .../org/apache/sis/xml/bind/gmi/MI_Metadata.java | 2 +- .../org/apache/sis/xml/bind/gmi/package-info.java | 2 +- .../org/apache/sis/xml/bind/gml/DateAdapter.java | 2 +- .../main/org/apache/sis/xml/bind/gml/Measure.java | 4 +- .../org/apache/sis/xml/bind/gml/TM_Primitive.java | 4 +- .../org/apache/sis/xml/bind/gml/TimeInstant.java | 4 +- .../org/apache/sis/xml/bind/gml/TimePeriod.java | 4 +- .../sis/xml/bind/gml/UniversalTimeAdapter.java | 4 +- .../apache/sis/xml/bind/gts/TM_PeriodDuration.java | 4 +- .../org/apache/sis/xml/bind/gts/package-info.java | 2 +- .../main/org/apache/sis/xml/bind/lan/Country.java | 4 +- .../apache/sis/xml/bind/lan/LocaleAndCharset.java | 6 +- .../org/apache/sis/xml/bind/lan/PT_Locale.java | 4 +- .../xml/bind/metadata/code/MD_MediumNameCode.java | 2 +- .../sis/xml/bind/metadata/code/package-info.java | 2 +- .../sis/xml/bind/metadata/replace/Parameter.java | 2 +- .../xml/bind/metadata/replace/RS_Identifier.java | 2 +- .../bind/metadata/replace/ServiceParameter.java | 6 +- .../xml/bind/metadata/replace/package-info.java | 2 +- .../apache/sis/xml/privy/ExceptionSimplifier.java | 150 +++ .../apache/sis/xml/privy/ExternalLinkHandler.java | 317 ++++++ .../org/apache/sis/xml/privy/LegacyNamespaces.java | 121 +++ .../apache/sis/xml/privy/StreamWriterDelegate.java | 243 +++++ .../main/org/apache/sis/xml/privy/URISource.java | 125 +++ .../org/apache/sis/xml/privy/XmlUtilities.java | 374 +++++++ .../org/apache/sis/xml/privy/package-info.java | 34 + .../apache/sis/xml/util/ExceptionSimplifier.java | 150 --- .../apache/sis/xml/util/ExternalLinkHandler.java | 317 ------ .../org/apache/sis/xml/util/LegacyNamespaces.java | 121 --- .../apache/sis/xml/util/StreamWriterDelegate.java | 243 ----- .../main/org/apache/sis/xml/util/URISource.java | 125 --- .../main/org/apache/sis/xml/util/XmlUtilities.java | 374 ------- .../main/org/apache/sis/xml/util/package-info.java | 34 - .../test/org/apache/sis/metadata/Assertions.java | 2 +- .../apache/sis/metadata/MetadataCopierTest.java | 2 +- .../sis/metadata/PropertyConsistencyCheck.java | 2 +- .../sis/metadata/internal/AxisNamesTest.java | 63 -- .../sis/metadata/internal/IdentifiersTest.java | 111 --- .../internal/ImplementationHelperTest.java | 85 -- .../apache/sis/metadata/internal/MergerTest.java | 134 --- .../sis/metadata/internal/NameMeaningTest.java | 80 -- .../sis/metadata/iso/citation/CitationsTest.java | 4 +- .../metadata/iso/citation/DefaultCitationTest.java | 2 +- .../iso/citation/DefaultResponsibilityTest.java | 2 +- .../metadata/iso/citation/HardCodedCitations.java | 4 +- .../constraint/DefaultLegalConstraintsTest.java | 4 +- .../sis/metadata/iso/content/DefaultBandTest.java | 2 +- .../sis/metadata/iso/extent/ExtentsTest.java | 2 +- .../iso/identification/DefaultResolutionTest.java | 2 +- .../metadata/iso/lineage/DefaultLineageTest.java | 2 +- .../iso/quality/DefaultQuantitativeResultTest.java | 2 +- .../{internal => privy}/AxisDirectionsTest.md | 0 .../apache/sis/metadata/privy/AxisNamesTest.java | 63 ++ .../apache/sis/metadata/privy/IdentifiersTest.java | 111 +++ .../metadata/privy/ImplementationHelperTest.java | 85 ++ .../org/apache/sis/metadata/privy/MergerTest.java | 134 +++ .../apache/sis/metadata/privy/NameMeaningTest.java | 80 ++ .../sis/metadata/sql/IdentifierGeneratorTest.java | 2 +- .../sis/metadata/sql/MetadataFallbackVerifier.java | 4 +- .../sis/metadata/sql/MetadataWriterTest.java | 2 +- .../org/apache/sis/metadata/sql/TestDatabase.java | 6 +- .../sis/metadata/sql/privy/SQLUtilitiesTest.java | 58 ++ .../sis/metadata/sql/privy/ScriptRunnerTest.java | 89 ++ .../sis/metadata/sql/privy/TypeMapperTest.java | 48 + .../sis/metadata/sql/util/SQLUtilitiesTest.java | 58 -- .../sis/metadata/sql/util/ScriptRunnerTest.java | 89 -- .../sis/metadata/sql/util/TypeMapperTest.java | 48 - .../apache/sis/test/mock/FeatureAttributeMock.java | 2 +- .../apache/sis/test/mock/IdentifiedObjectMock.java | 4 +- .../org/apache/sis/test/mock/MetadataMock.java | 2 +- .../org/apache/sis/test/mock/package-info.java | 2 +- .../apache/sis/util/iso/DefaultLocalNameTest.java | 2 +- .../apache/sis/util/iso/NameMarshallingTest.java | 2 +- .../org/apache/sis/util/iso/TypeNamesTest.java | 2 +- .../sis/xml/CharSequenceSubstitutionTest.java | 4 +- .../test/org/apache/sis/xml/NamespacesTest.java | 2 +- .../org/apache/sis/xml/RenameListGenerator.java | 2 +- .../test/org/apache/sis/xml/TransformerTest.java | 2 +- .../apache/sis/xml/TransformingNamespacesTest.java | 2 +- .../sis/xml/bind/cat/CodeListMarshallingTest.java | 2 +- .../apache/sis/xml/bind/gml/TimePeriodTest.java | 2 +- .../sis/xml/bind/lan/FreeTextMarshallingTest.java | 2 +- .../apache/sis/xml/bind/lan/LanguageCodeTest.java | 4 +- .../sis/xml/privy/DocumentComparatorTest.java | 137 +++ .../org/apache/sis/xml/privy/XmlUtilitiesTest.java | 120 +++ .../sis/xml/test/AnnotationConsistencyCheck.java | 2 +- .../apache/sis/xml/test/DocumentComparator.java | 4 +- .../org/apache/sis/xml/test/PackageVerifier.java | 2 +- .../test/org/apache/sis/xml/test/TestCase.java | 2 +- .../sis/xml/util/DocumentComparatorTest.java | 137 --- .../org/apache/sis/xml/util/XmlUtilitiesTest.java | 120 --- .../org/apache/sis/openoffice/Transformer.java | 2 +- .../sis/openoffice/ReferencingFunctionsTest.java | 4 +- .../org/apache/sis/map/coverage/RenderingData.java | 10 +- .../sis/map/coverage/RenderingWorkaround.java | 2 +- .../main/org/apache/sis/portrayal/Canvas.java | 8 +- .../org/apache/sis/portrayal/CanvasContext.java | 2 +- .../org/apache/sis/portrayal/CanvasExtent.java | 4 +- .../org/apache/sis/portrayal/CanvasFollower.java | 2 +- .../org/apache/sis/portrayal/PlanarCanvas.java | 2 +- .../org/apache/sis/style/se1/StyleFactory.java | 2 +- .../referencing/gazetteer/FinalLocationType.java | 2 +- .../referencing/gazetteer/GazetteerFactory.java | 2 +- .../gazetteer/GeohashReferenceSystem.java | 2 +- .../sis/referencing/gazetteer/LocationFormat.java | 2 +- .../gazetteer/MilitaryGridReferenceSystem.java | 6 +- .../gazetteer/ReferencingByIdentifiers.java | 4 +- .../sis/referencing/gazetteer/LocationViewer.java | 2 +- .../gazetteer/MilitaryGridReferenceSystemTest.java | 2 +- ....apache.sis.metadata.privy.ReferencingServices} | 0 ... org.apache.sis.metadata.sql.privy.Initializer} | 0 .../main/module-info.java | 15 +- .../sis/geometry/AbstractDirectPosition.java | 6 +- .../org/apache/sis/geometry/AbstractEnvelope.java | 8 +- .../org/apache/sis/geometry/ArrayEnvelope.java | 2 +- .../org/apache/sis/geometry/CoordinateFormat.java | 10 +- .../main/org/apache/sis/geometry/Envelope2D.java | 2 +- .../org/apache/sis/geometry/EnvelopeReducer.java | 2 +- .../main/org/apache/sis/geometry/Envelopes.java | 10 +- .../org/apache/sis/geometry/GeneralEnvelope.java | 4 +- .../main/org/apache/sis/geometry/Shapes2D.java | 6 +- .../apache/sis/geometry/WraparoundAdjustment.java | 6 +- .../main/org/apache/sis/io/wkt/AbstractParser.java | 2 +- .../main/org/apache/sis/io/wkt/Colors.java | 2 +- .../main/org/apache/sis/io/wkt/Element.java | 4 +- .../org/apache/sis/io/wkt/FormattableObject.java | 4 +- .../main/org/apache/sis/io/wkt/Formatter.java | 12 +- .../apache/sis/io/wkt/GeodeticObjectParser.java | 22 +- .../org/apache/sis/io/wkt/MathTransformParser.java | 8 +- .../main/org/apache/sis/io/wkt/StoredTree.java | 2 +- .../main/org/apache/sis/io/wkt/Transliterator.java | 6 +- .../main/org/apache/sis/io/wkt/VerticalInfo.java | 2 +- .../main/org/apache/sis/io/wkt/WKTDictionary.java | 10 +- .../main/org/apache/sis/io/wkt/WKTFormat.java | 6 +- .../sis/parameter/AbstractParameterDescriptor.java | 4 +- .../sis/parameter/DefaultParameterDescriptor.java | 2 +- .../parameter/DefaultParameterDescriptorGroup.java | 4 +- .../sis/parameter/DefaultParameterValue.java | 10 +- .../sis/parameter/DefaultParameterValueGroup.java | 2 +- .../apache/sis/parameter/FilteredParameters.java | 2 +- .../sis/parameter/MapProjectionDescriptor.java | 2 +- .../sis/parameter/MapProjectionParameters.java | 4 +- .../org/apache/sis/parameter/MatrixParameters.java | 2 +- .../sis/parameter/MatrixParametersAlphaNum.java | 4 +- .../org/apache/sis/parameter/ParameterFormat.java | 6 +- .../apache/sis/parameter/ParameterTableRow.java | 8 +- .../org/apache/sis/parameter/TensorParameters.java | 2 +- .../org/apache/sis/parameter/TensorValues.java | 10 +- .../sis/parameter/UninitializedParameter.java | 2 +- .../sis/parameter/UnmodifiableParameterValue.java | 2 +- .../parameter/UnmodifiableParameterValueGroup.java | 2 +- .../main/org/apache/sis/parameter/Verifier.java | 2 +- .../sis/referencing/AbstractIdentifiedObject.java | 20 +- .../apache/sis/referencing/AuthorityFactories.java | 2 +- .../main/org/apache/sis/referencing/CRS.java | 12 +- .../main/org/apache/sis/referencing/CommonCRS.java | 6 +- .../sis/referencing/DefaultObjectDomain.java | 2 +- .../sis/referencing/EPSGFactoryFallback.java | 6 +- .../referencing/EllipsoidalHeightSeparator.java | 10 +- .../sis/referencing/GeodesicsOnEllipsoid.java | 2 +- .../apache/sis/referencing/GeodeticCalculator.java | 14 +- .../apache/sis/referencing/IdentifiedObjects.java | 14 +- .../sis/referencing/ImmutableIdentifier.java | 8 +- .../org/apache/sis/referencing/NameIterator.java | 8 +- .../apache/sis/referencing/NamedIdentifier.java | 2 +- .../org/apache/sis/referencing/Properties.java | 4 +- .../sis/referencing/StandardDefinitions.java | 8 +- .../apache/sis/referencing/crs/AbstractCRS.java | 8 +- .../sis/referencing/crs/AbstractDerivedCRS.java | 6 +- .../sis/referencing/crs/DefaultCompoundCRS.java | 8 +- .../sis/referencing/crs/DefaultDerivedCRS.java | 6 +- .../sis/referencing/crs/DefaultEngineeringCRS.java | 4 +- .../sis/referencing/crs/DefaultGeodeticCRS.java | 10 +- .../sis/referencing/crs/DefaultGeographicCRS.java | 10 +- .../sis/referencing/crs/DefaultImageCRS.java | 4 +- .../sis/referencing/crs/DefaultParametricCRS.java | 4 +- .../sis/referencing/crs/DefaultProjectedCRS.java | 8 +- .../sis/referencing/crs/DefaultTemporalCRS.java | 8 +- .../sis/referencing/crs/DefaultVerticalCRS.java | 4 +- .../sis/referencing/crs/ExplicitParameters.java | 6 +- .../org/apache/sis/referencing/cs/AbstractCS.java | 12 +- .../apache/sis/referencing/cs/AxesConvention.java | 2 +- .../main/org/apache/sis/referencing/cs/Codes.java | 4 +- .../sis/referencing/cs/CoordinateSystems.java | 6 +- .../apache/sis/referencing/cs/DefaultAffineCS.java | 2 +- .../sis/referencing/cs/DefaultCompoundCS.java | 4 +- .../cs/DefaultCoordinateSystemAxis.java | 12 +- .../sis/referencing/cs/DefaultCylindricalCS.java | 2 +- .../sis/referencing/cs/DefaultEllipsoidalCS.java | 2 +- .../apache/sis/referencing/cs/DefaultLinearCS.java | 2 +- .../apache/sis/referencing/cs/DefaultPolarCS.java | 2 +- .../sis/referencing/cs/DefaultSphericalCS.java | 2 +- .../apache/sis/referencing/cs/DefaultTimeCS.java | 2 +- .../sis/referencing/cs/DefaultVerticalCS.java | 2 +- .../sis/referencing/cs/DirectionAlongMeridian.java | 6 +- .../org/apache/sis/referencing/cs/Normalizer.java | 6 +- .../org/apache/sis/referencing/cs/SubTypes.java | 2 +- .../sis/referencing/datum/AbstractDatum.java | 8 +- .../sis/referencing/datum/BursaWolfParameters.java | 4 +- .../sis/referencing/datum/DatumShiftGrid.java | 4 +- .../sis/referencing/datum/DefaultEllipsoid.java | 12 +- .../referencing/datum/DefaultEngineeringDatum.java | 2 +- .../referencing/datum/DefaultGeodeticDatum.java | 14 +- .../sis/referencing/datum/DefaultImageDatum.java | 4 +- .../referencing/datum/DefaultParametricDatum.java | 2 +- .../referencing/datum/DefaultPrimeMeridian.java | 14 +- .../referencing/datum/DefaultTemporalDatum.java | 4 +- .../referencing/datum/DefaultVerticalDatum.java | 6 +- .../sis/referencing/datum/TimeDependentBWP.java | 4 +- .../apache/sis/referencing/datum/package-info.java | 2 +- .../factory/AuthorityFactoryIdentifier.java | 10 +- .../referencing/factory/AuthorityFactoryProxy.java | 2 +- .../referencing/factory/CommonAuthorityCode.java | 4 +- .../factory/CommonAuthorityFactory.java | 4 +- .../factory/ConcurrentAuthorityFactory.java | 4 +- .../sis/referencing/factory/FilteredCodes.java | 2 +- .../factory/GeodeticAuthorityFactory.java | 4 +- .../referencing/factory/GeodeticObjectFactory.java | 2 +- .../factory/IdentifiedObjectFinder.java | 2 +- .../factory/LazySynchronizedIterator.java | 2 +- .../factory/MultiAuthoritiesFactory.java | 14 +- .../sis/referencing/factory/ReferenceKeeper.java | 2 +- .../referencing/factory/sql/AuthorityCodes.java | 2 +- .../sis/referencing/factory/sql/BursaWolfInfo.java | 2 +- .../referencing/factory/sql/EPSGCodeFinder.java | 10 +- .../referencing/factory/sql/EPSGDataAccess.java | 26 +- .../sis/referencing/factory/sql/EPSGFactory.java | 6 +- .../sis/referencing/factory/sql/EPSGInstaller.java | 8 +- .../factory/sql/InstallationScriptProvider.java | 4 +- .../sis/referencing/factory/sql/SQLTranslator.java | 8 +- .../sis/referencing/factory/sql/TableInfo.java | 2 +- .../sis/referencing/internal/AnnotatedMatrix.java | 4 +- .../sis/referencing/internal/Arithmetic.java | 6 +- .../apache/sis/referencing/internal/Bezier.java | 532 ++++++++++ .../sis/referencing/internal/DatabaseListener.java | 4 +- .../referencing/internal/EPSGParameterDomain.java | 2 +- .../internal/ImmutableAffineTransform.java | 314 ++++++ .../apache/sis/referencing/internal/Legacy.java | 2 +- .../referencing/internal/LinearTransform2D.java | 39 + .../sis/referencing/internal/MergedProperties.java | 2 +- .../referencing/internal/ParameterizedAffine.java | 172 ++++ .../referencing/internal/ServicesForMetadata.java | 10 +- .../operation/AbstractCoordinateOperation.java | 20 +- .../operation/AbstractSingleOperation.java | 8 +- .../apache/sis/referencing/operation/CRSPair.java | 4 +- .../operation/CoordinateOperationContext.java | 4 +- .../operation/CoordinateOperationFinder.java | 12 +- .../operation/CoordinateOperationRegistry.java | 12 +- .../operation/DefaultConcatenatedOperation.java | 8 +- .../referencing/operation/DefaultConversion.java | 2 +- .../DefaultCoordinateOperationFactory.java | 10 +- .../sis/referencing/operation/DefaultFormula.java | 2 +- .../operation/DefaultOperationMethod.java | 10 +- .../operation/DefaultPassThroughOperation.java | 4 +- .../operation/InverseOperationMethod.java | 2 +- .../operation/MathTransformContext.java | 2 +- .../operation/builder/LinearTransformBuilder.java | 10 +- .../operation/builder/LocalizationGridBuilder.java | 4 +- .../operation/builder/ResidualGrid.java | 6 +- .../operation/gridded/CompressedGrid.java | 2 +- .../referencing/operation/gridded/GridGroup.java | 8 +- .../referencing/operation/gridded/LoadedGrid.java | 2 +- .../sis/referencing/operation/gridded/Tile.java | 679 +++++++++++++ .../operation/gridded/TileOrganizer.java | 567 +++++++++++ .../operation/matrix/AffineTransforms2D.java | 4 +- .../operation/matrix/GeneralMatrix.java | 4 +- .../sis/referencing/operation/matrix/Matrices.java | 8 +- .../sis/referencing/operation/matrix/Matrix1.java | 2 +- .../sis/referencing/operation/matrix/Matrix2.java | 2 +- .../referencing/operation/matrix/MatrixSIS.java | 4 +- .../sis/referencing/operation/matrix/Solver.java | 2 +- .../operation/matrix/UnmodifiableMatrix.java | 2 +- .../operation/projection/AlbersEqualArea.java | 4 +- .../operation/projection/AuthalicConversion.java | 2 +- .../operation/projection/ConformalProjection.java | 2 +- .../operation/projection/CylindricalEqualArea.java | 2 +- .../operation/projection/Initializer.java | 6 +- .../projection/LambertAzimuthalEqualArea.java | 4 +- .../projection/LambertConicConformal.java | 6 +- .../operation/projection/LongitudeWraparound.java | 4 +- .../referencing/operation/projection/Mercator.java | 2 +- .../operation/projection/MeridianArcBased.java | 2 +- .../operation/projection/NormalizedProjection.java | 8 +- .../operation/projection/ObliqueMercator.java | 2 +- .../operation/projection/ObliqueStereographic.java | 4 +- .../operation/projection/PolarStereographic.java | 6 +- .../operation/projection/SatelliteTracking.java | 2 +- .../operation/projection/TransverseMercator.java | 2 +- .../operation/projection/ZonedGridSystem.java | 2 +- .../operation/provider/AbstractProvider.java | 2 +- .../sis/referencing/operation/provider/Affine.java | 4 +- .../referencing/operation/provider/EPSGName.java | 2 +- .../operation/provider/Equirectangular.java | 6 +- .../provider/FranceGeocentricInterpolation.java | 4 +- .../operation/provider/GeocentricAffine.java | 6 +- .../GeocentricAffineBetweenGeographic.java | 2 +- .../provider/GeocentricToTopocentric.java | 2 +- .../operation/provider/Geographic2Dto3D.java | 2 +- .../operation/provider/Geographic3Dto2D.java | 4 +- .../operation/provider/GeographicOffsets2D.java | 2 +- .../operation/provider/GeographicRedimension.java | 2 +- .../operation/provider/GeographicToGeocentric.java | 2 +- .../operation/provider/Interpolation1D.java | 2 +- .../operation/provider/LambertConformal2SP.java | 2 +- .../operation/provider/LongitudeRotation.java | 2 +- .../operation/provider/MapProjection.java | 2 +- .../operation/provider/Mercator1SP.java | 2 +- .../operation/provider/MillerCylindrical.java | 2 +- .../referencing/operation/provider/Molodensky.java | 6 +- .../sis/referencing/operation/provider/NTv2.java | 4 +- .../operation/provider/PolarStereographicA.java | 6 +- .../operation/provider/SatelliteTracking.java | 2 +- .../referencing/operation/provider/Sinusoidal.java | 2 +- .../operation/provider/TransverseMercator.java | 6 +- .../transform/AbstractLinearTransform.java | 4 +- .../operation/transform/AbstractMathTransform.java | 6 +- .../transform/AbstractMathTransform2D.java | 2 +- .../operation/transform/CartesianToPolar.java | 2 +- .../operation/transform/ConcatenatedTransform.java | 6 +- .../operation/transform/ContextualParameters.java | 14 +- .../transform/CoordinateSystemTransform.java | 8 +- .../transform/DefaultMathTransformFactory.java | 14 +- .../transform/EllipsoidToCentricTransform.java | 12 +- .../transform/ExponentialTransform1D.java | 2 +- .../operation/transform/IdentityTransform.java | 2 +- .../transform/InterpolatedGeocentricTransform.java | 2 +- .../operation/transform/InterpolatedTransform.java | 4 +- .../operation/transform/LinearInterpolator1D.java | 2 +- .../operation/transform/LinearTransform1D.java | 6 +- .../transform/LogarithmicTransform1D.java | 2 +- .../operation/transform/MathTransforms.java | 6 +- .../operation/transform/MolodenskyTransform.java | 2 +- .../operation/transform/OperationMethodSet.java | 2 +- .../operation/transform/PassThroughTransform.java | 6 +- .../operation/transform/PolarToCartesian.java | 2 +- .../operation/transform/PoleRotation.java | 6 +- .../operation/transform/PowerTransform1D.java | 2 +- .../operation/transform/ProjectiveTransform.java | 8 +- .../operation/transform/ProjectiveTransform2D.java | 4 +- .../operation/transform/ScaleTransform.java | 4 +- .../transform/SpecializableTransform.java | 2 +- .../operation/transform/TransformSeparator.java | 4 +- .../operation/transform/TranslationTransform.java | 4 +- .../operation/transform/WraparoundTransform.java | 2 +- .../org/apache/sis/referencing/package-info.java | 2 +- .../sis/referencing/privy/AbstractShape.java | 79 ++ .../apache/sis/referencing/privy/AffineMatrix.java | 242 +++++ .../sis/referencing/privy/AffineTransform2D.java | 491 ++++++++++ .../apache/sis/referencing/privy/AxesMapper.java | 156 +++ .../sis/referencing/privy/AxisDirections.java | 834 ++++++++++++++++ .../referencing/privy/CoordinateOperations.java | 361 +++++++ .../sis/referencing/privy/DefinitionVerifier.java | 359 +++++++ .../sis/referencing/privy/DirectPositionView.java | 153 +++ .../privy/EllipsoidalHeightCombiner.java | 227 +++++ .../referencing/privy/ExtendedPrecisionMatrix.java | 149 +++ .../sis/referencing/privy/ExtentSelector.java | 558 +++++++++++ .../org/apache/sis/referencing/privy/Formulas.java | 292 ++++++ .../referencing/privy/GeodeticObjectBuilder.java | 674 +++++++++++++ .../sis/referencing/privy/IntervalRectangle.java | 573 +++++++++++ .../org/apache/sis/referencing/privy/LazySet.java | 247 +++++ .../referencing/privy/NilReferencingObject.java | 77 ++ .../privy/PositionalAccuracyConstant.java | 246 +++++ .../privy/ReferencingFactoryContainer.java | 398 ++++++++ .../referencing/privy/ReferencingUtilities.java | 684 +++++++++++++ .../sis/referencing/privy/ShapeUtilities.java | 426 ++++++++ .../sis/referencing/privy/TemporalAccessor.java | 138 +++ .../apache/sis/referencing/privy/WKTKeywords.java | 299 ++++++ .../apache/sis/referencing/privy/WKTUtilities.java | 548 +++++++++++ .../referencing/privy/WraparoundApplicator.java | 222 +++++ .../referencing/privy/WraparoundAxesFinder.java | 83 ++ .../apache/sis/referencing/privy/package-info.java | 30 + .../apache/sis/referencing/util/AxesMapper.java | 156 --- .../sis/referencing/util/AxisDirections.java | 834 ---------------- .../sis/referencing/util/CoordinateOperations.java | 361 ------- .../sis/referencing/util/DefinitionVerifier.java | 359 ------- .../sis/referencing/util/DirectPositionView.java | 153 --- .../util/EllipsoidalHeightCombiner.java | 227 ----- .../referencing/util/ExtendedPrecisionMatrix.java | 149 --- .../sis/referencing/util/ExtentSelector.java | 558 ----------- .../org/apache/sis/referencing/util/Formulas.java | 292 ------ .../referencing/util/GeodeticObjectBuilder.java | 674 ------------- .../org/apache/sis/referencing/util/LazySet.java | 247 ----- .../sis/referencing/util/NilReferencingObject.java | 77 -- .../util/PositionalAccuracyConstant.java | 246 ----- .../util/ReferencingFactoryContainer.java | 398 -------- .../sis/referencing/util/ReferencingUtilities.java | 684 ------------- .../sis/referencing/util/TemporalAccessor.java | 138 --- .../apache/sis/referencing/util/WKTKeywords.java | 299 ------ .../apache/sis/referencing/util/WKTUtilities.java | 548 ----------- .../sis/referencing/util/WraparoundApplicator.java | 222 ----- .../sis/referencing/util/WraparoundAxesFinder.java | 83 -- .../sis/referencing/util/j2d/AbstractShape.java | 79 -- .../sis/referencing/util/j2d/AffineMatrix.java | 243 ----- .../referencing/util/j2d/AffineTransform2D.java | 490 ---------- .../apache/sis/referencing/util/j2d/Bezier.java | 532 ---------- .../util/j2d/ImmutableAffineTransform.java | 314 ------ .../referencing/util/j2d/IntervalRectangle.java | 573 ----------- .../referencing/util/j2d/LinearTransform2D.java | 39 - .../referencing/util/j2d/ParameterizedAffine.java | 171 ---- .../sis/referencing/util/j2d/ShapeUtilities.java | 426 -------- .../org/apache/sis/referencing/util/j2d/Tile.java | 678 ------------- .../sis/referencing/util/j2d/TileOrganizer.java | 565 ----------- .../sis/referencing/util/j2d/package-info.java | 30 - .../apache/sis/referencing/util/package-info.java | 30 - .../bind/referencing/CC_CoordinateOperation.java | 2 +- .../referencing/CC_GeneralOperationParameter.java | 2 +- .../sis/xml/bind/referencing/CS_AxisDirection.java | 2 +- .../sis/xml/bind/referencing/CS_RangeMeaning.java | 2 +- .../org/apache/sis/xml/bind/referencing/Code.java | 8 +- .../org/apache/sis/geometry/EnvelopesTest.java | 2 +- .../apache/sis/geometry/GeneralEnvelopeTest.java | 2 +- .../org/apache/sis/geometry/TransformTestCase.java | 4 +- .../sis/geometry/WraparoundAdjustmentTest.java | 2 +- .../sis/io/wkt/GeodeticObjectParserTest.java | 6 +- .../org/apache/sis/io/wkt/TransliteratorTest.java | 2 +- .../test/org/apache/sis/io/wkt/WKTParserTest.java | 2 +- .../DefaultParameterDescriptorGroupTest.java | 2 +- .../parameter/DefaultParameterDescriptorTest.java | 2 +- .../sis/parameter/DefaultParameterValueTest.java | 2 +- .../sis/parameter/MapProjectionParametersTest.java | 18 +- .../apache/sis/parameter/TensorParametersTest.java | 4 +- .../org/apache/sis/parameter/TensorValuesTest.java | 6 +- .../org/apache/sis/referencing/Assertions.java | 2 +- .../sis/referencing/AuthorityFactoriesTest.java | 2 +- .../org/apache/sis/referencing/CommonCRSTest.java | 4 +- .../sis/referencing/GeodesicsOnEllipsoidTest.java | 6 +- .../sis/referencing/GeodeticCalculatorTest.java | 6 +- .../sis/referencing/GeodeticObjectVerifier.java | 2 +- .../sis/referencing/ImmutableIdentifierTest.java | 4 +- .../sis/referencing/StandardDefinitionsTest.java | 2 +- .../sis/referencing/crs/DefaultDerivedCRSTest.java | 2 +- .../referencing/crs/DefaultProjectedCRSTest.java | 4 +- .../referencing/crs/DefaultTemporalCRSTest.java | 4 +- .../referencing/cs/DefaultCylindricalCSTest.java | 2 +- .../sis/referencing/cs/DefaultPolarCSTest.java | 2 +- .../sis/referencing/cs/DefaultSphericalCSTest.java | 2 +- .../apache/sis/referencing/cs/HardCodedAxes.java | 4 +- .../datum/DefaultGeodeticDatumTest.java | 2 +- .../datum/DefaultPrimeMeridianTest.java | 2 +- .../datum/DefaultTemporalDatumTest.java | 2 +- .../datum/DefaultVerticalDatumTest.java | 2 +- .../sis/referencing/datum/GeodeticDatumMock.java | 2 +- .../sis/referencing/datum/HardCodedDatum.java | 2 +- .../referencing/datum/TimeDependentBWPTest.java | 2 +- .../factory/CommonAuthorityFactoryTest.java | 2 +- .../factory/ConcurrentAuthorityFactoryTest.java | 2 +- .../sis/referencing/factory/TestFactorySource.java | 4 +- .../referencing/factory/sql/EPSGInstallerTest.java | 4 +- .../factory/sql/epsg/DataScriptFormatter.java | 4 +- .../operation/CoordinateOperationFinderTest.java | 8 +- .../operation/CoordinateOperationRegistryTest.java | 2 +- .../operation/DefaultConversionTest.java | 4 +- .../DefaultCoordinateOperationFactoryTest.java | 6 +- .../operation/DefaultTransformationTest.java | 2 +- .../operation/matrix/GeneralMatrixTest.java | 2 +- .../referencing/operation/matrix/MatricesTest.java | 2 +- .../operation/matrix/MatrixTestCase.java | 4 +- .../operation/projection/AlbersEqualAreaTest.java | 2 +- .../projection/AuthalicConversionTest.java | 2 +- .../projection/AzimuthalEquidistantTest.java | 2 +- .../operation/projection/CassiniSoldnerTest.java | 2 +- .../projection/ConformalProjectionTest.java | 2 +- .../projection/CylindricalEqualAreaTest.java | 2 +- .../operation/projection/EquirectangularTest.java | 4 +- .../operation/projection/InitializerTest.java | 2 +- .../projection/LambertAzimuthalEqualAreaTest.java | 6 +- .../projection/LambertConicConformalTest.java | 2 +- .../projection/MapProjectionTestCase.java | 4 +- .../projection/MercatorMethodComparison.java | 4 +- .../operation/projection/MercatorTest.java | 4 +- .../operation/projection/MollweideTest.java | 2 +- .../sis/referencing/operation/projection/NoOp.java | 2 +- .../projection/NormalizedProjectionTest.java | 2 +- .../projection/ObliqueStereographicTest.java | 2 +- .../projection/PolarStereographicTest.java | 2 +- .../operation/projection/PolyconicTest.java | 2 +- .../operation/projection/ProjectionBenchmark.java | 4 +- .../projection/ProjectionResultComparator.java | 2 +- .../projection/SatelliteTrackingTest.java | 2 +- .../operation/projection/SinusoidalTest.java | 2 +- .../projection/TransverseMercatorTest.java | 2 +- .../operation/projection/ZonedGridSystemTest.java | 4 +- .../provider/CoordinateFrameRotationTest.java | 2 +- .../provider/GeocentricTranslationTest.java | 2 +- .../operation/provider/GeographicOffsetsTest.java | 2 +- .../operation/provider/MapProjectionTest.java | 2 +- .../referencing/operation/provider/NTv2Test.java | 2 +- .../provider/PositionVector7ParamTest.java | 2 +- .../operation/provider/TransverseMercatorTest.java | 2 +- .../transform/AbridgedMolodenskyTransformTest.java | 2 +- .../transform/ConcatenatedTransformTest.java | 2 +- .../operation/transform/CoordinateDomain.java | 2 +- .../transform/DefaultMathTransformFactoryTest.java | 2 +- .../operation/transform/DomainDefinitionTest.java | 2 +- .../transform/EllipsoidToCentricTransformTest.java | 2 +- .../transform/InterpolatedTransformTest.java | 2 +- .../operation/transform/LinearTransformTest.java | 2 +- .../transform/MolodenskyTransformTest.java | 4 +- .../transform/OperationMethodSetTest.java | 2 +- .../operation/transform/PoleRotationTest.java | 2 +- .../transform/ProjectiveTransformTest.java | 6 +- .../operation/transform/ScaleTransformTest.java | 2 +- .../transform/SpecializableTransformTest.java | 2 +- .../transform/TranslationTransformTest.java | 4 +- .../transform/WraparoundTransformTest.java | 2 +- .../sis/referencing/privy/AbstractShapeTest.java | 50 + .../sis/referencing/privy/AxesMapperTest.java | 101 ++ .../sis/referencing/privy/AxisDirectionsTest.java | 545 +++++++++++ .../privy/CoordinateOperationsTest.java | 80 ++ .../referencing/privy/DefinitionVerifierTest.java | 103 ++ .../privy/EllipsoidalHeightCombinerTest.java | 171 ++++ .../sis/referencing/privy/ExtentSelectorTest.java | 210 ++++ .../apache/sis/referencing/privy/FormulasTest.java | 142 +++ .../privy/GeodeticObjectBuilderTest.java | 66 ++ .../apache/sis/referencing/privy/LazySetTest.java | 118 +++ .../privy/PositionalAccuracyConstantTest.java | 68 ++ .../privy/ReferencingUtilitiesTest.java | 128 +++ .../sis/referencing/privy/ShapeUtilitiesExt.java | 147 +++ .../sis/referencing/privy/ShapeUtilitiesTest.java | 248 +++++ .../referencing/privy/ShapeUtilitiesViewer.java | 266 +++++ .../sis/referencing/privy/WKTKeywordsTest.java | 99 ++ .../sis/referencing/privy/WKTUtilitiesTest.java | 102 ++ .../privy/WraparoundApplicatorTest.java | 47 + .../report/CoordinateOperationMethods.java | 4 +- .../report/CoordinateReferenceSystems.java | 2 +- .../sis/referencing/report/HTMLGenerator.java | 2 +- .../sis/referencing/util/AxesMapperTest.java | 101 -- .../sis/referencing/util/AxisDirectionsTest.java | 545 ----------- .../referencing/util/CoordinateOperationsTest.java | 80 -- .../referencing/util/DefinitionVerifierTest.java | 103 -- .../util/EllipsoidalHeightCombinerTest.java | 171 ---- .../sis/referencing/util/ExtentSelectorTest.java | 210 ---- .../apache/sis/referencing/util/FormulasTest.java | 142 --- .../util/GeodeticObjectBuilderTest.java | 66 -- .../apache/sis/referencing/util/LazySetTest.java | 118 --- .../util/PositionalAccuracyConstantTest.java | 68 -- .../referencing/util/ReferencingUtilitiesTest.java | 128 --- .../sis/referencing/util/WKTKeywordsTest.java | 99 -- .../sis/referencing/util/WKTUtilitiesTest.java | 102 -- .../referencing/util/WraparoundApplicatorTest.java | 47 - .../referencing/util/j2d/AbstractShapeTest.java | 50 - .../referencing/util/j2d/ShapeUtilitiesExt.java | 144 --- .../referencing/util/j2d/ShapeUtilitiesTest.java | 248 ----- .../referencing/util/j2d/ShapeUtilitiesViewer.java | 266 ----- .../sis/test/integration/ConsistencyTest.java | 2 +- .../apache/sis/test/integration/MetadataTest.java | 4 +- .../org/apache/sis/test/widget/package-info.java | 2 +- .../CC_OperationParameterGroupTest.java | 2 +- .../apache/sis/xml/bind/referencing/CodeTest.java | 2 +- .../main/org/apache/sis/storage/landsat/Band.java | 2 +- .../org/apache/sis/storage/landsat/BandGroup.java | 2 +- .../apache/sis/storage/landsat/LandsatStore.java | 2 +- .../apache/sis/storage/landsat/MetadataReader.java | 12 +- .../sis/storage/geotiff/CompressedSubset.java | 2 +- .../apache/sis/storage/geotiff/Compression.java | 2 +- .../org/apache/sis/storage/geotiff/DataSubset.java | 8 +- .../apache/sis/storage/geotiff/GeoTiffStore.java | 4 +- .../sis/storage/geotiff/GeoTiffStoreProvider.java | 2 +- .../sis/storage/geotiff/ImageFileDirectory.java | 10 +- .../sis/storage/geotiff/MultiResolutionImage.java | 2 +- .../org/apache/sis/storage/geotiff/Writer.java | 4 +- .../sis/storage/geotiff/reader/CRSBuilder.java | 14 +- .../geotiff/reader/GridGeometryBuilder.java | 2 +- .../apache/sis/storage/geotiff/reader/Type.java | 2 +- .../sis/storage/geotiff/reader/XMLMetadata.java | 4 +- .../sis/storage/geotiff/spi/SchemaModifier.java | 2 +- .../sis/storage/geotiff/writer/GeoEncoder.java | 8 +- .../storage/geotiff/writer/ReformattedImage.java | 2 +- .../org/apache/sis/storage/geotiff/WriterTest.java | 2 +- .../storage/geotiff/reader/XMLMetadataTest.java | 2 +- .../apache/sis/storage/netcdf/MetadataReader.java | 6 +- .../org/apache/sis/storage/netcdf/NetcdfStore.java | 4 +- .../org/apache/sis/storage/netcdf/base/Axis.java | 2 +- .../apache/sis/storage/netcdf/base/AxisType.java | 2 +- .../apache/sis/storage/netcdf/base/CRSBuilder.java | 4 +- .../apache/sis/storage/netcdf/base/CRSMerger.java | 4 +- .../apache/sis/storage/netcdf/base/Convention.java | 2 +- .../apache/sis/storage/netcdf/base/Decoder.java | 4 +- .../apache/sis/storage/netcdf/base/FeatureSet.java | 4 +- .../org/apache/sis/storage/netcdf/base/Grid.java | 2 +- .../sis/storage/netcdf/base/GridCacheKey.java | 2 +- .../sis/storage/netcdf/base/GridMapping.java | 6 +- .../org/apache/sis/storage/netcdf/base/HYCOM.java | 2 +- .../apache/sis/storage/netcdf/base/Linearizer.java | 6 +- .../sis/storage/netcdf/base/NamedElement.java | 2 +- .../org/apache/sis/storage/netcdf/base/Node.java | 2 +- .../sis/storage/netcdf/base/RasterResource.java | 8 +- .../apache/sis/storage/netcdf/base/Variable.java | 6 +- .../sis/storage/netcdf/classic/ChannelDecoder.java | 6 +- .../sis/storage/netcdf/classic/GridInfo.java | 2 +- .../sis/storage/netcdf/classic/VariableInfo.java | 4 +- .../sis/storage/netcdf/ucar/DimensionWrapper.java | 2 +- .../sis/storage/netcdf/ucar/GridWrapper.java | 2 +- .../sis/storage/netcdf/ucar/VariableWrapper.java | 2 +- .../sis/storage/netcdf/base/FeatureSetTest.java | 2 +- .../main/org/apache/sis/storage/sql/SQLStore.java | 2 +- .../org/apache/sis/storage/sql/feature/Column.java | 6 +- .../apache/sis/storage/sql/feature/Database.java | 10 +- .../sis/storage/sql/feature/FeatureAdapter.java | 2 +- .../sis/storage/sql/feature/FeatureAnalyzer.java | 2 +- .../sis/storage/sql/feature/FeatureIterator.java | 2 +- .../sis/storage/sql/feature/FeatureStream.java | 6 +- .../sis/storage/sql/feature/InfoStatements.java | 8 +- .../apache/sis/storage/sql/feature/PrimaryKey.java | 4 +- .../sis/storage/sql/feature/QueryAnalyzer.java | 4 +- .../apache/sis/storage/sql/feature/Relation.java | 4 +- .../sis/storage/sql/feature/SelectionClause.java | 2 +- .../storage/sql/feature/SelectionClauseWriter.java | 4 +- .../org/apache/sis/storage/sql/feature/Table.java | 4 +- .../sis/storage/sql/feature/TableAnalyzer.java | 6 +- .../sis/storage/sql/feature/TableReference.java | 2 +- .../sis/storage/sql/feature/ValueGetter.java | 4 +- .../sis/storage/sql/postgis/ExtentEstimator.java | 2 +- .../apache/sis/storage/sql/postgis/Postgres.java | 2 +- .../sis/storage/sql/postgis/RasterReader.java | 8 +- .../org/apache/sis/storage/sql/SQLStoreTest.java | 2 +- .../sql/feature/TemporalValueGetterTest.java | 2 +- .../apache/sis/storage/sql/postgis/TestRaster.java | 2 +- .../main/org/apache/sis/storage/gpx/Metadata.java | 2 +- .../main/org/apache/sis/storage/gpx/Reader.java | 2 +- .../main/org/apache/sis/storage/gpx/Types.java | 2 +- .../main/org/apache/sis/storage/gpx/Writer.java | 2 +- .../sis/storage/xml/stream/FormattedWriter.java | 2 +- .../sis/storage/xml/stream/NamespaceEraser.java | 2 +- .../sis/storage/xml/stream/StaxDataStore.java | 6 +- .../sis/storage/xml/stream/StaxStreamReader.java | 4 +- .../test/org/apache/sis/storage/gpx/TypesTest.java | 2 +- .../apache/sis/io/stream/ChannelDataOutput.java | 2 +- .../apache/sis/io/stream/FileCacheByteChannel.java | 2 +- .../main/org/apache/sis/io/stream/IOUtilities.java | 2 +- .../sis/storage/AbstractGridCoverageResource.java | 2 +- .../org/apache/sis/storage/CoverageSubset.java | 6 +- .../main/org/apache/sis/storage/DataStore.java | 2 +- .../org/apache/sis/storage/DataStoreRegistry.java | 4 +- .../main/org/apache/sis/storage/FeatureNaming.java | 2 +- .../main/org/apache/sis/storage/FeatureQuery.java | 8 +- .../main/org/apache/sis/storage/FeatureSubset.java | 2 +- .../main/org/apache/sis/storage/ProbeResult.java | 2 +- .../org/apache/sis/storage/StorageConnector.java | 2 +- .../aggregate/BandAggregateGridResource.java | 6 +- .../storage/aggregate/ConcatenatedFeatureSet.java | 4 +- .../aggregate/ConcatenatedGridCoverage.java | 4 +- .../aggregate/ConcatenatedGridResource.java | 6 +- .../sis/storage/aggregate/CoverageAggregator.java | 2 +- .../sis/storage/aggregate/DimensionSelector.java | 2 +- .../apache/sis/storage/aggregate/GridSlice.java | 4 +- .../org/apache/sis/storage/aggregate/Group.java | 2 +- .../sis/storage/aggregate/GroupAggregate.java | 4 +- .../sis/storage/aggregate/JoinFeatureSet.java | 2 +- .../sis/storage/aggregate/MergeStrategy.java | 4 +- .../main/org/apache/sis/storage/base/CodeType.java | 4 +- .../org/apache/sis/storage/base/LegalSymbols.java | 2 +- .../apache/sis/storage/base/MetadataBuilder.java | 6 +- .../org/apache/sis/storage/base/PRJDataStore.java | 2 +- .../apache/sis/storage/base/ResourceLineage.java | 4 +- .../apache/sis/storage/base/SimpleAggregate.java | 2 +- .../apache/sis/storage/base/StoreUtilities.java | 2 +- .../sis/storage/base/TiledDeferredImage.java | 2 +- .../apache/sis/storage/base/TiledGridCoverage.java | 4 +- .../apache/sis/storage/base/TiledGridResource.java | 2 +- .../org/apache/sis/storage/base/URIDataStore.java | 4 +- .../sis/storage/csv/MovingFeatureBuilder.java | 4 +- .../main/org/apache/sis/storage/csv/Store.java | 8 +- .../org/apache/sis/storage/csv/TimeEncoding.java | 2 +- .../apache/sis/storage/esri/AsciiGridStore.java | 2 +- .../org/apache/sis/storage/esri/RasterStore.java | 12 +- .../apache/sis/storage/esri/RawRasterReader.java | 8 +- .../apache/sis/storage/esri/RawRasterStore.java | 6 +- .../apache/sis/storage/event/StoreListeners.java | 2 +- .../main/org/apache/sis/storage/folder/Store.java | 2 +- .../sis/storage/image/WorldFileResource.java | 6 +- .../apache/sis/storage/image/WorldFileStore.java | 4 +- .../org/apache/sis/storage/wkt/StoreFormat.java | 2 +- .../org/apache/sis/storage/wkt/StoreProvider.java | 2 +- .../main/org/apache/sis/storage/xml/Store.java | 4 +- .../org/apache/sis/storage/xml/StoreProvider.java | 2 +- .../org/apache/sis/storage/CoverageQueryTest.java | 2 +- .../org/apache/sis/storage/FeatureQueryTest.java | 2 +- .../sis/storage/aggregate/JoinFeatureSetTest.java | 2 +- .../sis/storage/base/MemoryGridResourceTest.java | 2 +- .../sis/storage/test/CoverageReadConsistency.java | 4 +- .../apache/sis/storage/test/SubsampledImage.java | 2 +- .../sis/storage/xml/MimeTypeDetectorTest.java | 2 +- .../test/org/apache/sis/storage/xml/StoreTest.java | 2 +- .../src/org.apache.sis.util/main/module-info.java | 4 +- .../org/apache/sis/converter/StringConverter.java | 4 +- .../main/org/apache/sis/io/CompoundFormat.java | 6 +- .../main/org/apache/sis/io/DefaultFormat.java | 2 +- .../org/apache/sis/io/IdentifiedObjectFormat.java | 6 +- .../main/org/apache/sis/io/LineAppender.java | 2 +- .../main/org/apache/sis/io/TableAppender.java | 2 +- .../main/org/apache/sis/math/ArrayVector.java | 2 +- .../main/org/apache/sis/math/DecimalFunctions.java | 2 +- .../main/org/apache/sis/math/Fraction.java | 2 +- .../main/org/apache/sis/math/Line.java | 6 +- .../org/apache/sis/math/LinearlyDerivedVector.java | 2 +- .../main/org/apache/sis/math/MathFunctions.java | 6 +- .../main/org/apache/sis/math/Plane.java | 6 +- .../main/org/apache/sis/math/Statistics.java | 4 +- .../main/org/apache/sis/math/StatisticsFormat.java | 2 +- .../main/org/apache/sis/math/Vector.java | 2 +- .../main/org/apache/sis/measure/AbstractUnit.java | 2 +- .../main/org/apache/sis/measure/Angle.java | 2 +- .../main/org/apache/sis/measure/AngleFormat.java | 4 +- .../org/apache/sis/measure/LinearConverter.java | 4 +- .../main/org/apache/sis/measure/NumberRange.java | 2 +- .../main/org/apache/sis/measure/Prefixes.java | 2 +- .../main/org/apache/sis/measure/Range.java | 2 +- .../main/org/apache/sis/measure/RangeFormat.java | 6 +- .../main/org/apache/sis/measure/Scalar.java | 2 +- .../apache/sis/measure/SexagesimalConverter.java | 2 +- .../main/org/apache/sis/measure/UnitDimension.java | 2 +- .../main/org/apache/sis/measure/UnitFormat.java | 6 +- .../main/org/apache/sis/measure/UnitRegistry.java | 2 +- .../main/org/apache/sis/measure/UnitServices.java | 2 +- .../main/org/apache/sis/measure/Units.java | 2 +- .../main/org/apache/sis/setup/About.java | 6 +- .../main/org/apache/sis/setup/Configuration.java | 2 +- .../apache/sis/setup/InstallationResources.java | 6 +- .../apache/sis/setup/OptionalInstallations.java | 2 +- .../main/org/apache/sis/system/DataDirectory.java | 2 +- .../sis/util/AbstractInternationalString.java | 2 +- .../main/org/apache/sis/util/ArgumentChecks.java | 2 +- .../main/org/apache/sis/util/Characters.java | 4 +- .../main/org/apache/sis/util/Numbers.java | 4 +- .../apache/sis/util/collection/CodeListSet.java | 4 +- .../org/apache/sis/util/collection/Containers.java | 2 +- .../sis/util/collection/DefaultTreeTable.java | 4 +- .../org/apache/sis/util/collection/DerivedSet.java | 2 +- .../apache/sis/util/collection/IntegerList.java | 2 +- .../sis/util/collection/TreeTableFormat.java | 6 +- .../apache/sis/util/internal/AbstractIterator.java | 63 -- .../org/apache/sis/util/internal/AbstractMap.java | 709 -------------- .../apache/sis/util/internal/AbstractMapEntry.java | 100 -- .../sis/util/internal/AutoMessageFormat.java | 1 + .../main/org/apache/sis/util/internal/Bag.java | 99 -- .../apache/sis/util/internal/CheckedArrayList.java | 324 ------- .../apache/sis/util/internal/CheckedHashSet.java | 115 --- .../org/apache/sis/util/internal/CloneAccess.java | 46 - .../main/org/apache/sis/util/internal/Cloner.java | 267 ----- .../org/apache/sis/util/internal/CodeLists.java | 160 --- .../apache/sis/util/internal/CollectionsExt.java | 880 ----------------- .../org/apache/sis/util/internal/Constants.java | 266 ----- .../apache/sis/util/internal/DefinitionURI.java | 749 -------------- .../org/apache/sis/util/internal/DoubleDouble.java | 918 ------------------ .../org/apache/sis/util/internal/EmptyQueue.java | 68 -- .../sis/util/internal/ListOfUnknownSize.java | 259 ----- .../sis/util/internal/LocalizedParseException.java | 195 ---- .../apache/sis/util/internal/MetadataServices.java | 205 ---- .../org/apache/sis/util/internal/Numerics.java | 648 ------------- .../apache/sis/util/internal/PropertyFormat.java | 238 ----- .../apache/sis/util/internal/SetOfUnknownSize.java | 199 ---- .../sis/util/internal/StandardDateFormat.java | 513 ---------- .../main/org/apache/sis/util/internal/Strings.java | 420 -------- .../sis/util/internal/TreeFormatCustomization.java | 51 - .../main/org/apache/sis/util/internal/URLs.java | 64 -- .../sis/util/internal/UnmodifiableArrayList.java | 439 --------- .../main/org/apache/sis/util/internal/Unsafe.java | 106 -- .../main/org/apache/sis/util/internal/X364.java | 303 ------ .../org/apache/sis/util/internal/package-info.java | 8 +- .../apache/sis/util/logging/MonolineFormatter.java | 6 +- .../apache/sis/util/privy/AbstractIterator.java | 63 ++ .../org/apache/sis/util/privy/AbstractMap.java | 709 ++++++++++++++ .../apache/sis/util/privy/AbstractMapEntry.java | 100 ++ .../main/org/apache/sis/util/privy/Bag.java | 99 ++ .../apache/sis/util/privy/CheckedArrayList.java | 324 +++++++ .../org/apache/sis/util/privy/CheckedHashSet.java | 115 +++ .../org/apache/sis/util/privy/CloneAccess.java | 46 + .../main/org/apache/sis/util/privy/Cloner.java | 267 +++++ .../main/org/apache/sis/util/privy/CodeLists.java | 160 +++ .../org/apache/sis/util/privy/CollectionsExt.java | 880 +++++++++++++++++ .../main/org/apache/sis/util/privy/Constants.java | 266 +++++ .../org/apache/sis/util/privy/DefinitionURI.java | 749 ++++++++++++++ .../org/apache/sis/util/privy/DoubleDouble.java | 918 ++++++++++++++++++ .../main/org/apache/sis/util/privy/EmptyQueue.java | 68 ++ .../apache/sis/util/privy/ListOfUnknownSize.java | 259 +++++ .../sis/util/privy/LocalizedParseException.java | 195 ++++ .../apache/sis/util/privy/MetadataServices.java | 205 ++++ .../main/org/apache/sis/util/privy/Numerics.java | 648 +++++++++++++ .../org/apache/sis/util/privy/PropertyFormat.java | 238 +++++ .../apache/sis/util/privy/SetOfUnknownSize.java | 199 ++++ .../apache/sis/util/privy/StandardDateFormat.java | 513 ++++++++++ .../main/org/apache/sis/util/privy/Strings.java | 420 ++++++++ .../sis/util/privy/TreeFormatCustomization.java | 51 + .../main/org/apache/sis/util/privy/URLs.java | 64 ++ .../sis/util/privy/UnmodifiableArrayList.java | 439 +++++++++ .../main/org/apache/sis/util/privy/Unsafe.java | 106 ++ .../main/org/apache/sis/util/privy/X364.java | 303 ++++++ .../org/apache/sis/util/privy/package-info.java | 36 + .../sis/util/resources/IndexedResourceBundle.java | 4 +- .../org/apache/sis/util/resources/Messages.java | 5 + .../apache/sis/util/resources/Messages.properties | 1 + .../sis/util/resources/Messages_fr.properties | 1 + .../apache/sis/util/resources/package-info.java | 4 +- .../test/org/apache/sis/io/WordWrapTest.java | 2 +- .../org/apache/sis/measure/RangeFormatTest.java | 2 +- .../test/org/apache/sis/test/TestCase.java | 2 +- .../test/org/apache/sis/test/TestUtilities.java | 4 +- .../org/apache/sis/util/collection/CacheTest.java | 2 +- .../apache/sis/util/collection/RangeSetTest.java | 4 +- .../apache/sis/util/internal/AbstractMapTest.java | 191 ---- .../test/org/apache/sis/util/internal/BagTest.java | 84 -- .../sis/util/internal/CheckedArrayListTest.java | 146 --- .../sis/util/internal/CollectionsExtTest.java | 175 ---- .../sis/util/internal/DefinitionURITest.java | 270 ------ .../apache/sis/util/internal/DoubleDoubleTest.java | 410 -------- .../sis/util/internal/ListOfUnknownSizeTest.java | 64 -- .../util/internal/LocalizedParseExceptionTest.java | 76 -- .../org/apache/sis/util/internal/NumericsTest.java | 242 ----- .../sis/util/internal/StandardDateFormatTest.java | 148 --- .../org/apache/sis/util/internal/StringsTest.java | 57 -- .../org/apache/sis/util/internal/X364Test.java | 69 -- .../sis/util/logging/MonolineFormatterTest.java | 2 +- .../org/apache/sis/util/privy/AbstractMapTest.java | 191 ++++ .../test/org/apache/sis/util/privy/BagTest.java | 84 ++ .../sis/util/privy/CheckedArrayListTest.java | 146 +++ .../apache/sis/util/privy/CollectionsExtTest.java | 175 ++++ .../apache/sis/util/privy/DefinitionURITest.java | 270 ++++++ .../apache/sis/util/privy/DoubleDoubleTest.java | 410 ++++++++ .../sis/util/privy/ListOfUnknownSizeTest.java | 64 ++ .../util/privy/LocalizedParseExceptionTest.java | 76 ++ .../org/apache/sis/util/privy/NumericsTest.java | 242 +++++ .../sis/util/privy/StandardDateFormatTest.java | 148 +++ .../org/apache/sis/util/privy/StringsTest.java | 57 ++ .../test/org/apache/sis/util/privy/X364Test.java | 69 ++ .../main/org/apache/sis/cql/CQL.java | 2 +- .../org/apache/sis/cql/FilterToCQLVisitor.java | 6 +- .../test/org/apache/sis/cql/FilterReadingTest.java | 2 +- .../test/org/apache/sis/cql/FilterWritingTest.java | 2 +- .../main/org/apache/sis/map/SEPortrayer.java | 4 +- .../main/org/apache/sis/map/SymbologyVisitor.java | 2 +- .../apache/sis/map/service/se1/LineToScene2D.java | 2 +- .../test/org/apache/sis/map/SEPortrayerTest.java | 2 +- .../storage/shapefile/ListingPropertyVisitor.java | 4 +- .../sis/storage/shapefile/ShapefileStore.java | 4 +- .../sis/storage/shapefile/ShapefileStoreTest.java | 2 +- netbeans-project/nbproject/project.properties | 6 +- .../apache/sis/gui/controls/SyncWindowList.java | 2 +- .../apache/sis/gui/controls/ValueColorMapper.java | 2 +- .../apache/sis/gui/coverage/CoverageCanvas.java | 2 +- .../org/apache/sis/gui/coverage/GridTileCache.java | 2 +- .../main/org/apache/sis/gui/coverage/GridView.java | 2 +- .../apache/sis/gui/coverage/IsolineRenderer.java | 2 +- .../org/apache/sis/gui/dataset/ExpandableList.java | 2 +- .../org/apache/sis/gui/dataset/FeatureList.java | 2 +- .../org/apache/sis/gui/dataset/FeatureTable.java | 4 +- .../org/apache/sis/gui/dataset/ResourceCell.java | 2 +- .../apache/sis/gui/internal/DataStoreOpener.java | 2 +- .../org/apache/sis/gui/internal/GUIUtilities.java | 2 +- .../apache/sis/gui/internal/ImageConverter.java | 6 +- .../sis/gui/internal/PropertyValueFormats.java | 2 +- .../sis/gui/internal/PropertyValueFormatter.java | 2 +- .../apache/sis/gui/internal/io/FileAccessItem.java | 2 +- .../main/org/apache/sis/gui/map/MapCanvas.java | 8 +- .../main/org/apache/sis/gui/map/MapCanvasAWT.java | 2 +- .../main/org/apache/sis/gui/map/StatusBar.java | 2 +- .../org/apache/sis/gui/map/ValuesFormatter.java | 2 +- .../sis/gui/metadata/IdentificationInfo.java | 4 +- .../apache/sis/gui/metadata/MetadataSummary.java | 2 +- .../sis/gui/metadata/RepresentationInfo.java | 2 +- .../sis/gui/metadata/StandardMetadataTree.java | 2 +- .../apache/sis/gui/referencing/AuthorityCodes.java | 4 +- .../org/apache/sis/gui/referencing/CRSChooser.java | 2 +- .../org/apache/sis/gui/referencing/CodeFilter.java | 2 +- .../org/apache/sis/gui/referencing/MenuSync.java | 2 +- .../gui/referencing/PositionableProjection.java | 4 +- .../gui/referencing/RecentReferenceSystems.java | 4 +- .../main/org/apache/sis/gui/referencing/Utils.java | 2 +- 1286 files changed, 46864 insertions(+), 46778 deletions(-) diff --cc endorsed/src/org.apache.sis.feature/main/org/apache/sis/geometry/wrapper/jts/Wrapper.java index 01dad9455c,b38ceb26e5..df20efc692 --- 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 @@@ -45,9 -45,9 +45,9 @@@ 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.opengis.referencing.operation.MathTransform; - import org.apache.sis.referencing.util.ReferencingUtilities; + import org.apache.sis.referencing.privy.ReferencingUtilities; import org.apache.sis.geometry.DirectPosition2D; import org.apache.sis.geometry.GeneralDirectPosition; import org.apache.sis.geometry.GeneralEnvelope; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/internal/CitationConstant.java index 0000000000,7b2c089edf..4be6930510 mode 000000,100644..100644 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/internal/CitationConstant.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/internal/CitationConstant.java @@@ -1,0 -1,244 +1,244 @@@ + /* + * 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.metadata.internal; + + import java.util.Date; + import java.util.Collection; + import java.util.logging.Logger; + import java.io.ObjectStreamException; + import org.opengis.metadata.Identifier; + import org.opengis.metadata.citation.Citation; + import org.opengis.metadata.citation.CitationDate; + import org.opengis.metadata.citation.PresentationForm; + import org.opengis.metadata.citation.Series; + import org.opengis.util.InternationalString; + import org.apache.sis.xml.IdentifierSpace; + import org.apache.sis.metadata.sql.MetadataSource; + import org.apache.sis.metadata.sql.MetadataStoreException; + import org.apache.sis.metadata.iso.citation.Citations; + import org.apache.sis.metadata.simple.SimpleCitation; + import org.apache.sis.system.Loggers; + import org.apache.sis.util.privy.Strings; + import org.apache.sis.util.logging.Logging; + ++// Specific to the main and geoapi-3.1 branches: ++import org.opengis.metadata.citation.ResponsibleParty; ++ + // Specific to the geoapi-3.1 and geoapi-4.0 branches: + import org.opengis.metadata.citation.OnlineResource; + import org.opengis.metadata.identification.BrowseGraphic; + -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.citation.Responsibility; - + + /** + * Base class for the {@code public static final Citation} constants defined in some SIS classes. + * This base class contains only an abbreviation (e.g. {@code "OGC"} or {@code "EPSG"}) which can + * be used as the primary key where to search for more information in a database. If no database + * is available, then that simple primary key will be used as the citation title. + * + * @author Martin Desruisseaux (Geomatys) + * + * @see IdentifierSpace + * @see Citations + */ + public class CitationConstant extends SimpleCitation { + /** + * For cross-version compatibility. + */ + private static final long serialVersionUID = -8429121584437634107L; + + /** + * Where to log warnings when searching for an entry in the database. + */ + private static final Logger LOGGER = Logger.getLogger(Loggers.SQL); + + /** + * Class of {@code public static final Citation} constants which are also used as namespace for identifiers. + * The most typical example is the "EPSG" authority which manage the codes identifying Coordinate Reference + * System (CRS) objects in the EPSG namespace. + * + * @param <T> the type of object used as identifier values. + */ + public static class Authority<T> extends CitationConstant implements IdentifierSpace<T> { + /** + * For cross-version compatibility. + */ + private static final long serialVersionUID = 2067932813561130294L; + + /** + * Creates a new citation for an authority managing codes in the given namespace. + * This constructor assumes that the namespace is the same as the abbreviation given as citation title. + * + * @param namespace the namespace of codes managed by this authority (e.g. "EPSG"). + */ + public Authority(final String namespace) { + super(namespace); + } + + /** + * Creates a new citation for an authority managing codes in the given namespace. + * + * @param name a human-understandable primary key for fetching more information. + * @param namespace the namespace of codes managed by this authority (e.g. "EPSG"). + */ + public Authority(final String name, final String namespace) { + super(name, namespace); + } + + /** + * Returns the name space given at construction time. Can be one of the following: + * <ul> + * <li>Abbreviation of the authority managing the codes (e.g. {@code "EPSG"} or {@code "ISBN"}).</li> + * <li>XML attribute name with its prefix (e.g. {@code "gml:id"}, {@code "gco:uuid"} or {@code "xlink:href"}).</li> + * </ul> + */ + @Override + public final String getName() { + return namespace; + } + + /** + * Returns a string representation of this identifier space. + */ + @Override + public final String toString() { + return Strings.bracket(IdentifierSpace.class, title); + } + } + + /** + * The name by which this citation is known to {@link Citations#fromName(String)}. + * Often the same as the abbreviation that {@link CitationConstant} uses as the title. + * If this {@code CitationConstant} is a {@link Authority} subtype, then this is also + * the authority namespace. + */ + public final String namespace; + + /** + * The citation which contain the "real" data, or {@code null} if not yet created. + * This is usually an instance created by {@link MetadataSource}. Those instances + * manage their own caching, so accesses to the database should not occur often. + */ + private transient volatile Citation delegate; + + /** + * Creates a new proxy for the given primary key. + * The key should be readable enough for being usable as a fallback if the database is not available. + * + * @param name a human-understandable primary key for fetching more information. + */ + public CitationConstant(final String name) { + super(name); + this.namespace = name; + } + + /** + * Creates a new proxy for the given primary key but a different programmatic name. + * The key should be readable enough for being usable as a fallback if the database is not available. + * + * @param name a human-understandable primary key for fetching more information. + * @param namespace the name by which this citation is known to {@link Citations#fromName(String)}. + */ + public CitationConstant(final String name, final String namespace) { + super(name); + this.namespace = namespace; + } + + /** + * Notify this instance that the database content may have changed, or that the module path has changed. + */ + public final void refresh() { + delegate = null; + } + + /** + * Returns the citation instance which contain the actual data. That instance is provided by the + * {@code org.apache.sis.metadata} module, which is optional. If that module is not on the module path, + * then this {@code delegate()} method will use the few information provided by the current instance. + * + * <p>Note that it should be very rare to not have {@code org.apache.sis.metadata} on the module path, + * since that module is required by {@code org.apache.sis.referencing} which is itself required by + * almost all other SIS modules.</p> + */ + @SuppressWarnings("DoubleCheckedLocking") + private Citation delegate() { + Citation c = delegate; + if (c == null) { + synchronized (this) { + c = delegate; + if (c == null) { + try { + c = MetadataSource.getProvided().lookup(Citation.class, title); + } catch (MetadataStoreException e) { + /* + * If no database was available, MetadataSource.getProvided() was supposed to fallback on + * the MetadataFallback class. So if we get this exception, a more serious error occurred. + * It is still not fatal however, since most of Citation content is informative. + */ + Logging.unexpectedException(LOGGER, CitationConstant.class, "delegate", e); + c = new SimpleCitation(title); + } + delegate = c; + } + } + } + return c; + } + + /** + * Returns the title, which is mandatory. + */ + @Override + public InternationalString getTitle() { + InternationalString title = delegate().getTitle(); + return (title != null) ? title : super.getTitle(); + } + + /** + * Redirects the call to the delegate citation (the instance which actually contain the data). + * + * @return the value returned by the delegate. + */ + @Override public Collection<? extends InternationalString> getAlternateTitles() {return delegate().getAlternateTitles();} + @Override public Collection<? extends CitationDate> getDates() {return delegate().getDates();} + @Override public InternationalString getEdition() {return delegate().getEdition();} + @Override public Date getEditionDate() {return delegate().getEditionDate();} + @Override public Collection<? extends Identifier> getIdentifiers() {return delegate().getIdentifiers();} - @Override public Collection<? extends Responsibility> getCitedResponsibleParties() {return delegate().getCitedResponsibleParties();} ++ @Override public Collection<? extends ResponsibleParty> getCitedResponsibleParties() {return delegate().getCitedResponsibleParties();} + @Override public Collection<PresentationForm> getPresentationForms() {return delegate().getPresentationForms();} + @Override public Series getSeries() {return delegate().getSeries();} - @Override public Collection<? extends InternationalString> getOtherCitationDetails() {return delegate().getOtherCitationDetails();} ++ @Override public InternationalString getOtherCitationDetails() {return delegate().getOtherCitationDetails();} + @Override public Collection<? extends OnlineResource> getOnlineResources() {return delegate().getOnlineResources();} + @Override public Collection<? extends BrowseGraphic> getGraphics() {return delegate().getGraphics();} + @Override public String getISBN() {return delegate().getISBN();} + @Override public String getISSN() {return delegate().getISSN();} + + /** + * Invoked at deserialization time in order to replace the deserialized instance by the existing + * instance defined in the {@link org.apache.sis.metadata.iso.citation.Citations} class. + * + * @return the instance to use, as an unique instance if possible. + * @throws ObjectStreamException never thrown. + */ + protected Object readResolve() throws ObjectStreamException { + final Citation c = Citations.fromName(title); + return (c instanceof CitationConstant) ? c : this; + /* + * Returns 'this' should happen only if the Citation has been serialized + * on a more recent version of Apache SIS than the current version. + */ + } + } diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java index 5dc31db8e1,9e58d0daf4..1ed8ffc37e --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java @@@ -30,16 -30,12 +30,16 @@@ import org.apache.sis.xml.Namespaces import org.apache.sis.xml.NilReason; import org.apache.sis.xml.bind.Context; import org.apache.sis.xml.bind.FilterByVersion; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; import org.apache.sis.metadata.internal.Dependencies; import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; - import org.apache.sis.util.internal.CollectionsExt; - import static org.apache.sis.metadata.internal.ImplementationHelper.ensurePositive; + import org.apache.sis.util.privy.CollectionsExt; + import static org.apache.sis.metadata.privy.ImplementationHelper.ensurePositive; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.Obligation; +import org.opengis.metadata.citation.ResponsibleParty; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import java.util.AbstractSet; import java.util.Iterator; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java index b5b573c910,bfc73b1d50..7436c358fc --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/acquisition/DefaultRequirement.java @@@ -28,11 -28,11 +28,11 @@@ import org.opengis.metadata.acquisition import org.opengis.metadata.acquisition.Requirement; import org.opengis.metadata.citation.Citation; import org.apache.sis.metadata.iso.ISOMetadata; - import static org.apache.sis.metadata.internal.ImplementationHelper.toDate; - import static org.apache.sis.metadata.internal.ImplementationHelper.toMilliseconds; + import static org.apache.sis.metadata.privy.ImplementationHelper.toDate; + import static org.apache.sis.metadata.privy.ImplementationHelper.toMilliseconds; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.citation.Responsibility; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultCitation.java index d3324e523e,24ae2c5fef..4ed38a35e0 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultCitation.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/citation/DefaultCitation.java @@@ -38,11 -38,11 +38,11 @@@ import org.apache.sis.xml.privy.LegacyN import org.apache.sis.metadata.TitleProperty; import org.apache.sis.metadata.iso.ISOMetadata; import static org.apache.sis.util.collection.Containers.isNullOrEmpty; - import static org.apache.sis.metadata.internal.ImplementationHelper.toDate; - import static org.apache.sis.metadata.internal.ImplementationHelper.toMilliseconds; + import static org.apache.sis.metadata.privy.ImplementationHelper.toDate; + import static org.apache.sis.metadata.privy.ImplementationHelper.toMilliseconds; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.citation.Responsibility; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultBand.java index 2d29983b29,179f4283e5..a8898f2b69 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultBand.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/content/DefaultBand.java @@@ -29,10 -29,10 +29,10 @@@ import org.opengis.metadata.content.Tra import org.apache.sis.measure.ValueRange; import org.apache.sis.xml.bind.gco.GO_Real; import org.apache.sis.xml.bind.gco.UnitAdapter; - import static org.apache.sis.metadata.internal.ImplementationHelper.ensurePositive; + import static org.apache.sis.metadata.privy.ImplementationHelper.ensurePositive; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.content.PolarisationOrientation; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.content.PolarizationOrientation; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java index 18aaa1eea6,ef4bfb8d08..26c845bad0 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultDataFile.java @@@ -28,11 -28,11 +28,11 @@@ import org.opengis.util.InternationalSt import org.apache.sis.xml.Namespaces; import org.apache.sis.metadata.iso.ISOMetadata; import org.apache.sis.xml.bind.FilterByVersion; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; import org.apache.sis.xml.bind.gcx.MimeFileTypeAdapter; -// Specific to the geoapi-4.0 branch: -import org.opengis.util.GenericName; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.util.LocalName; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java index 711d17008d,faf89f0a1c..e3c2ed9667 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/distribution/DefaultMedium.java @@@ -33,17 -33,12 +33,17 @@@ import org.apache.sis.xml.bind.FilterBy import org.apache.sis.xml.bind.gco.GO_Real; import org.apache.sis.xml.bind.metadata.CI_Citation; import org.apache.sis.xml.bind.metadata.MD_Identifier; -import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; import org.apache.sis.metadata.internal.Dependencies; +import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; - import org.apache.sis.xml.util.LegacyNamespaces; - import org.apache.sis.util.internal.CollectionsExt; - import static org.apache.sis.metadata.internal.ImplementationHelper.ensurePositive; + import org.apache.sis.xml.privy.LegacyNamespaces; + import org.apache.sis.util.privy.CollectionsExt; + import static org.apache.sis.metadata.privy.ImplementationHelper.ensurePositive; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.distribution.MediumName; - import org.apache.sis.util.internal.CodeLists; ++import org.apache.sis.util.privy.CodeLists; +import org.apache.sis.metadata.iso.citation.DefaultCitation; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import java.util.AbstractSet; import java.util.Iterator; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java index 2831a2d5d5,a301d3d51e..38c04ba18a --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/AbstractIdentification.java @@@ -45,12 -45,9 +45,12 @@@ import org.apache.sis.metadata.iso.ISOM import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; import org.apache.sis.xml.bind.FilterByVersion; import org.apache.sis.xml.bind.metadata.MD_Identifier; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; import org.apache.sis.util.iso.Types; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.identification.AssociatedResource; import org.opengis.temporal.Duration; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java index e90fc2754e,15b7bf2ff2..d4d70d26aa --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultDataIdentification.java @@@ -32,13 -32,9 +32,13 @@@ import org.apache.sis.xml.bind.FilterBy import org.apache.sis.xml.bind.lan.LocaleAndCharset; import org.apache.sis.xml.bind.lan.OtherLocales; import org.apache.sis.xml.bind.lan.PT_Locale; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; import org.apache.sis.metadata.internal.Dependencies; +// Specific to the main and geoapi-3.1 branches: +import java.util.stream.Collectors; +import org.opengis.metadata.identification.CharacterSet; + /** * Information required to identify a dataset. diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultUsage.java index adc675c94d,919e5fc947..1ecbfbe78f --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultUsage.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/identification/DefaultUsage.java @@@ -28,11 -28,11 +28,11 @@@ import org.apache.sis.xml.bind.FilterBy import org.apache.sis.metadata.TitleProperty; import org.apache.sis.metadata.iso.ISOMetadata; import org.apache.sis.util.iso.Types; - import static org.apache.sis.metadata.internal.ImplementationHelper.toDate; - import static org.apache.sis.metadata.internal.ImplementationHelper.toMilliseconds; + import static org.apache.sis.metadata.privy.ImplementationHelper.toDate; + import static org.apache.sis.metadata.privy.ImplementationHelper.toMilliseconds; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.citation.Responsibility; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java index f1881f9296,523a18c87a..e37f63d6a9 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/lineage/DefaultProcessStep.java @@@ -34,14 -34,11 +34,14 @@@ import org.apache.sis.metadata.TitlePro import org.apache.sis.metadata.iso.ISOMetadata; import org.apache.sis.util.iso.Types; import org.apache.sis.xml.bind.FilterByVersion; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; import org.apache.sis.xml.bind.gml.TM_Primitive; import org.apache.sis.xml.bind.metadata.MD_Scope; - import org.apache.sis.metadata.internal.TemporalUtilities; + import org.apache.sis.metadata.privy.TemporalUtilities; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.maintenance.Scope; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java index 32dd00fc96,b2b4cdf4d9..6a02bdfe2e --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java @@@ -36,13 -36,10 +36,13 @@@ import org.apache.sis.metadata.iso.cita import org.apache.sis.metadata.iso.legacy.LegacyPropertyAdapter; import org.apache.sis.metadata.internal.Dependencies; import org.apache.sis.xml.bind.FilterByVersion; - import org.apache.sis.xml.util.LegacyNamespaces; - import org.apache.sis.util.internal.CollectionsExt; - import static org.apache.sis.metadata.internal.ImplementationHelper.valueIfDefined; + import org.apache.sis.xml.privy.LegacyNamespaces; + import org.apache.sis.util.privy.CollectionsExt; + import static org.apache.sis.metadata.privy.ImplementationHelper.valueIfDefined; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.ResponsibleParty; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.maintenance.Scope; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java index 15d63d2be2,544eb2b925..9f8f254615 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/iso/quality/DefaultDataQuality.java @@@ -25,11 -25,8 +25,11 @@@ import org.opengis.metadata.quality.Dat import org.opengis.metadata.quality.Element; import org.opengis.metadata.maintenance.ScopeCode; import org.apache.sis.xml.bind.FilterByVersion; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.quality.Scope; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.metadata.quality.StandaloneQualityReportInformation; diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/privy/NameToIdentifier.java index 0000000000,d6be1ec48d..1fe8975835 mode 000000,100644..100644 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/privy/NameToIdentifier.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/privy/NameToIdentifier.java @@@ -1,0 -1,310 +1,313 @@@ + /* + * 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.metadata.privy; + + import java.util.Locale; + import java.util.Objects; + import java.util.Collection; + import org.opengis.util.NameSpace; + import org.opengis.util.GenericName; + import org.opengis.util.InternationalString; + import org.opengis.referencing.IdentifiedObject; + import org.opengis.metadata.Identifier; + import org.opengis.metadata.citation.Citation; + import org.apache.sis.metadata.iso.citation.Citations; + import org.apache.sis.util.CharSequences; + import org.apache.sis.util.iso.DefaultNameSpace; + import static org.apache.sis.util.Characters.Filter.LETTERS_AND_DIGITS; + ++// Specific to the main and geoapi-3.1 branches: ++import org.opengis.referencing.ReferenceIdentifier; ++ + + /** + * Does the unobvious mapping between {@link Identifier} properties and {@link GenericName} ones. + * This class also implements the {@link #isHeuristicMatchForName(Identifier, Collection, CharSequence, Simplifier)} + * method since that method involves a mix of names and identifiers. + * + * <h2>Limitations</h2> + * Current version does not yet work with URN or HTTP syntax. + * + * @author Martin Desruisseaux (Geomatys) + */ -public final class NameToIdentifier implements Identifier { ++public final class NameToIdentifier implements ReferenceIdentifier { + /** + * The name from which to infer the identifier attributes. + */ + private final GenericName name; + + /** + * Infers the attributes from the given name. + * + * @param name the name from which to infer the identifier properties. + */ + public NameToIdentifier(final GenericName name) { + this.name = Objects.requireNonNull(name); + } + + /** + * Returns the scope of the given name if it is not global. + * This method is null-safe, including paranoiac checks against null scope. + * + * @param name the name from which to get the scope, or {@code null}. + * @return the scope of the given name, or {@code null} if the given name was null or has a global scope. + */ + private static GenericName scope(final GenericName name) { + if (name != null) { + final NameSpace scope = name.scope(); + if (scope != null && !scope.isGlobal()) { + return scope.name(); + } + } + return null; + } + + /** + * Infers the authority from the scope if any, or from the code space otherwise. + * + * @return the authority, or {@code null} if none. + */ + @Override + public Citation getAuthority() { + GenericName scope = scope(name); + if (scope == null) { + scope = scope(name.tip()); + if (scope == null) { + return null; + } + } + return Citations.fromName(scope.head().toString()); + } + + /** + * Takes the element before the tip as the code space. + * + * @param name the name from which to get the code space, or {@code null}. + * @param locale the locale, or {@code null} for a call to {@code name.toString()}. + * @return the code space, or {@code null} if none. + */ + public static String getCodeSpace(final GenericName name, final Locale locale) { + final GenericName scope = scope(name.tip()); + return (scope != null) ? toString(scope.tip(), locale) : null; + } + + /** + * Takes everything except the tip as the code space. + */ + @Override + public String getCodeSpace() { + return getCodeSpace(name, null); + } + + /** + * Takes the last element as the code. + */ + @Override + public String getCode() { + return name.tip().toString(); + } + + /** + * Returns a hash code value for this object. + */ + @Override + public int hashCode() { + return ~Objects.hashCode(name); + } + + /** + * Compares this object with the given one for equality. + * + * @param object the object to compare with this identifier. + * @return {@code true} if both objects are equal. + */ + @Override + public boolean equals(final Object object) { + if (object == this) { + return true; + } + if (object != null && object.getClass() == getClass()) { + return Objects.equals(name, ((NameToIdentifier) object).name); + } + return false; + } + + /** + * Returns the string representation of this identifier. + * + * @return the string representation of this identifier. + */ + @Override + public String toString() { + final String code = getCode(); + final String cs = getCodeSpace(); + if (cs != null && !cs.isEmpty()) { + return cs + DefaultNameSpace.DEFAULT_SEPARATOR + code; + } + return code; + } + + /** + * Returns a string representation of the given name in the given locale, with paranoiac checks against null value. + * Such null values should never happen since the properties used here are mandatory, but we try to make this class + * robust to broken implementations. + * + * @param name the name from which to get the localized string, or {@code null}. + * @param locale the locale, or {@code null} for a call to {@code name.toString()}. + * @return the localized string representation, or {@code null} if the given name was null. + */ + public static String toString(final GenericName name, final Locale locale) { + if (name != null) { + if (locale != null) { + final InternationalString i18n = name.toInternationalString(); + if (i18n != null) { + final String s = i18n.toString(locale); + if (s != null) { + return s; + } + } + } + return name.toString(); + } + return null; + } + + /** + * Returns {@code true} if the given identifier to search matches one of the object identifiers. + * + * @param identifiers the identifiers to compare against {@code toSearch}. + * @param toSearch the identifier to check for equality. + * @return {@code true} if the identifier to search is found in the given set of identifiers. + */ + public static boolean isHeuristicMatchForIdentifier(final Iterable<? extends Identifier> identifiers, final String toSearch) { + if (toSearch != null && identifiers != null) { + int s = toSearch.indexOf(DefaultNameSpace.DEFAULT_SEPARATOR); + if (s < 0) { + // no codespace in searched name + for (final Identifier id : identifiers) { + if (toSearch.equalsIgnoreCase(id.getCode())) { + return true; + } + } + return false; + } + do { + final String codespace = toSearch.substring(0, s).trim(); + final String code = toSearch.substring(++s).trim(); + for (final Identifier id : identifiers) { + if (codespace.equalsIgnoreCase(id.getCodeSpace()) && code.equalsIgnoreCase(id.getCode())) { + return true; + } + } + s = toSearch.indexOf(DefaultNameSpace.DEFAULT_SEPARATOR, s); + } while (s >= 0); + } + return false; + } + + /** + * Returns {@code true} if the given {@linkplain org.apache.sis.referencing.AbstractIdentifiedObject#getName() + * primary name} or one of the given aliases matches the given name. The comparison ignores case, some Latin + * diacritical signs and any characters that are not letters or digits. + * + * @param name the name of the {@code IdentifiedObject} to check. + * @param aliases the list of aliases in the {@code IdentifiedObject} (may be {@code null}). + * This method will never modify that list, so the given list can be a direct + * reference to an internal list. + * @param toSearch the name for which to check for equality. + * @param simplifier a function for simplifying the names before comparison. + * @return {@code true} if the primary name or at least one alias matches the given {@code name}. + */ + public static boolean isHeuristicMatchForName(final Identifier name, final Collection<GenericName> aliases, + CharSequence toSearch, final Simplifier simplifier) + { + if (toSearch != null) { + CharSequence code = (name != null) ? name.getCode() : null; + if (toSearch.equals(code)) { + return true; // Optimization for a common case. + } + toSearch = simplifier.apply(toSearch); + code = simplifier.apply(code); + if (CharSequences.equalsFiltered(toSearch, code, LETTERS_AND_DIGITS, true)) { + return true; + } + if (aliases != null) { + for (final GenericName alias : aliases) { + if (alias != null) { // Paranoiac check. + final CharSequence tip = simplifier.apply(alias.tip().toString()); + if (CharSequences.equalsFiltered(toSearch, tip, LETTERS_AND_DIGITS, true)) { + return true; + } + /* + * Note: a previous version compared also the scoped names. We removed that part, + * because experience has shown that this method is used only for the "code" part + * of an object name. If we really want to compare scoped name, it would probably + * be better to take a GenericName argument instead of String. + */ + } + } + } + } + return false; + } + + /** + * Returns {@code true} if the {@linkplain org.apache.sis.referencing.AbstractIdentifiedObject#getName() + * primary name} or an aliases of the given object matches the given name. The comparison ignores case, + * some Latin diacritical signs and any characters that are not letters or digits. + * + * @param object the object for which to check the name or alias. + * @param name the name to compare with the object name or aliases. + * @return {@code true} if the primary name of at least one alias matches the specified {@code name}. + */ + public static boolean isHeuristicMatchForName(final IdentifiedObject object, final String name) { + return isHeuristicMatchForName(object.getName(), object.getAlias(), name, Simplifier.DEFAULT); + } + + /** + * A function for simplifying an {@link org.opengis.referencing.IdentifiedObject} name before comparison with + * {@link NameToIdentifier#isHeuristicMatchForName(Identifier, Collection, CharSequence, Simplifier)}. + */ + public static class Simplifier { + /** + * The prefix used by ESRI at the beginning of datum names. + * This prefix should be omitted when simplifying a datum name. + */ + public static final String ESRI_DATUM_PREFIX = "D_"; + + /** + * The default instance, which replaces some non-ASCII characters by ASCII ones. + */ + public static final Simplifier DEFAULT = new Simplifier(); + + /** + * For subclasses and default instance only. + */ + protected Simplifier() { + } + + /** + * Simplifies the given name. + * + * @param name the object name (may be {@code null}). + * @return the name to use for comparison purpose, or {@code null}. + */ + protected CharSequence apply(final CharSequence name) { + return CharSequences.toASCII(name); + } + } + } diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/simple/SimpleIdentifiedObject.java index 43f02a91a8,5e1cad326c..130b5b62c8 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/simple/SimpleIdentifiedObject.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/simple/SimpleIdentifiedObject.java @@@ -23,15 -23,12 +23,15 @@@ import org.opengis.metadata.Identifier import org.opengis.metadata.citation.Citation; import org.opengis.metadata.extent.Extent; import org.opengis.referencing.IdentifiedObject; - import org.apache.sis.metadata.internal.Identifiers; + import org.apache.sis.metadata.privy.Identifiers; import org.apache.sis.util.LenientComparable; import org.apache.sis.util.ComparisonMode; - import org.apache.sis.util.internal.Constants; + import org.apache.sis.util.privy.Constants; import static org.apache.sis.util.collection.Containers.isNullOrEmpty; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + /** * A trivial implementation of {@link IdentifiedObject} containing only a primary name. diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/simple/SimpleIdentifier.java index ce7f8e9b8a,37cd2a7336..c2b49c30d9 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/simple/SimpleIdentifier.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/metadata/simple/SimpleIdentifier.java @@@ -23,10 -23,10 +23,10 @@@ import org.opengis.metadata.citation.Ci import org.apache.sis.util.CharSequences; import org.apache.sis.util.Classes; import org.apache.sis.util.Deprecable; - import org.apache.sis.util.internal.Constants; + import org.apache.sis.util.privy.Constants; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.Identifier; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/code/MD_MediumNameCode.java index af38608df5,71a73d4ce5..4c839f2c75 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/code/MD_MediumNameCode.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/code/MD_MediumNameCode.java @@@ -19,10 -19,10 +19,10 @@@ package org.apache.sis.xml.bind.metadat import jakarta.xml.bind.annotation.XmlElement; import org.apache.sis.xml.bind.cat.CodeListAdapter; import org.apache.sis.xml.bind.cat.CodeListUID; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; -// Specific to the geoapi-4.0 branch: -import org.apache.sis.metadata.iso.legacy.MediumName; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.distribution.MediumName; /** diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/RS_Identifier.java index 0e90b7aa2d,25904c5eff..b3f9f0c5ed --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/RS_Identifier.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/RS_Identifier.java @@@ -21,12 -21,8 +21,12 @@@ import jakarta.xml.bind.annotation.XmlR import org.opengis.metadata.Identifier; import org.apache.sis.metadata.TitleProperty; import org.apache.sis.metadata.iso.*; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.metadata.citation.Citation; +import org.opengis.referencing.ReferenceIdentifier; + /** * Identifier using {@code <gmd:RS_Identifier>} XML element name. diff --cc endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ServiceParameter.java index 296979e762,91addb98ec..a6b2c50ba1 --- a/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ServiceParameter.java +++ b/endorsed/src/org.apache.sis.metadata/main/org/apache/sis/xml/bind/metadata/replace/ServiceParameter.java @@@ -27,16 -27,13 +27,16 @@@ import org.opengis.util.InternationalSt import org.opengis.parameter.ParameterDescriptor; import org.apache.sis.xml.Namespaces; import org.apache.sis.xml.bind.FilterByVersion; - import org.apache.sis.xml.util.LegacyNamespaces; + import org.apache.sis.xml.privy.LegacyNamespaces; import org.apache.sis.xml.bind.gco.GO_GenericName; - import org.apache.sis.metadata.internal.NameToIdentifier; + import org.apache.sis.metadata.privy.NameToIdentifier; import org.apache.sis.util.iso.DefaultMemberName; import org.apache.sis.util.iso.Names; - import static org.apache.sis.util.internal.CollectionsExt.nonNull; + import static org.apache.sis.util.privy.CollectionsExt.nonNull; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.parameter.ParameterDirection; import org.opengis.metadata.Identifier; diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/iso/citation/HardCodedCitations.java index 2bbfbf665c,aeb0ae764c..6d3de36f04 --- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/iso/citation/HardCodedCitations.java +++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/metadata/iso/citation/HardCodedCitations.java @@@ -24,12 -24,9 +24,12 @@@ import org.opengis.metadata.citation.Pr import org.apache.sis.metadata.iso.DefaultIdentifier; import org.apache.sis.util.SimpleInternationalString; import org.apache.sis.util.Static; - import org.apache.sis.util.internal.Constants; - import org.apache.sis.util.internal.URLs; + import org.apache.sis.util.privy.Constants; + import org.apache.sis.util.privy.URLs; +// Specific to the main and geoapi-3.1 branches: +import static java.util.Collections.singleton; + /** * Hard-coded citation constants used for testing purpose only. diff --cc endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/mock/IdentifiedObjectMock.java index f0dd480307,fba91a2b18..97211623d7 --- a/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/mock/IdentifiedObjectMock.java +++ b/endorsed/src/org.apache.sis.metadata/test/org/apache/sis/test/mock/IdentifiedObjectMock.java @@@ -24,12 -24,12 +24,12 @@@ import jakarta.xml.bind.annotation.XmlR import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter; import org.opengis.util.GenericName; import org.opengis.referencing.IdentifiedObject; - import org.apache.sis.util.internal.Strings; - import org.apache.sis.util.internal.CollectionsExt; + import org.apache.sis.util.privy.Strings; + import org.apache.sis.util.privy.CollectionsExt; import org.apache.sis.xml.bind.gco.GO_GenericName; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.Identifier; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; /** diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/parameter/ParameterFormat.java index 0e609f7ac7,4192edc783..eeafaeebaf --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/parameter/ParameterFormat.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/parameter/ParameterFormat.java @@@ -53,15 -53,12 +53,15 @@@ import org.apache.sis.util.ArgumentChec import org.apache.sis.util.iso.Types; import org.apache.sis.util.resources.Errors; import org.apache.sis.util.resources.Vocabulary; - import org.apache.sis.util.internal.CollectionsExt; - import org.apache.sis.util.internal.X364; + import org.apache.sis.util.privy.CollectionsExt; + import org.apache.sis.util.privy.X364; import org.apache.sis.referencing.IdentifiedObjects; - import org.apache.sis.metadata.internal.NameToIdentifier; + import org.apache.sis.metadata.privy.NameToIdentifier; import org.apache.sis.pending.jdk.JDK19; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.util.ControlledVocabulary; diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java index 3a54bc2b82,d7d36f61ad..a6d82beba8 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/AbstractIdentifiedObject.java @@@ -70,13 -70,10 +70,13 @@@ import org.apache.sis.util.iso.DefaultN import org.apache.sis.util.resources.Errors; import static org.apache.sis.util.ArgumentChecks.*; import static org.apache.sis.util.Utilities.deepEquals; - import static org.apache.sis.util.internal.CollectionsExt.nonNull; - import static org.apache.sis.util.internal.CollectionsExt.nonEmpty; - import static org.apache.sis.util.internal.CollectionsExt.immutableSet; + import static org.apache.sis.util.privy.CollectionsExt.nonNull; + import static org.apache.sis.util.privy.CollectionsExt.nonEmpty; + import static org.apache.sis.util.privy.CollectionsExt.immutableSet; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.referencing.ObjectDomain; diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/NameIterator.java index aa7ea43473,b29411d79f..72788ec16d --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/NameIterator.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/NameIterator.java @@@ -22,12 -22,12 +22,12 @@@ import org.opengis.util.GenericName import org.opengis.referencing.IdentifiedObject; import org.apache.sis.xml.bind.Context; import org.apache.sis.util.resources.Errors; - import org.apache.sis.metadata.internal.NameMeaning; - import org.apache.sis.referencing.util.NilReferencingObject; - import static org.apache.sis.util.internal.Strings.appendUnicodeIdentifier; + import org.apache.sis.metadata.privy.NameMeaning; + import org.apache.sis.referencing.privy.NilReferencingObject; + import static org.apache.sis.util.privy.Strings.appendUnicodeIdentifier; -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.Identifier; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; /** diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/Properties.java index 621cdbf0e1,ec0283dfeb..0f479a50c9 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/Properties.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/Properties.java @@@ -30,12 -30,9 +30,12 @@@ import org.opengis.referencing.operatio import org.opengis.referencing.operation.SingleOperation; import org.opengis.metadata.quality.PositionalAccuracy; import org.apache.sis.util.Deprecable; - import org.apache.sis.util.internal.AbstractMap; - import org.apache.sis.referencing.util.CoordinateOperations; + import org.apache.sis.util.privy.AbstractMap; + import org.apache.sis.referencing.privy.CoordinateOperations; +// Specific to the main and geoapi-3.1 branches: +import org.opengis.referencing.ReferenceIdentifier; + // Specific to the geoapi-3.1 and geoapi-4.0 branches: import org.opengis.referencing.ObjectDomain; diff --cc endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/NilReferencingObject.java index 0000000000,5d3ef762d9..5c60061a72 mode 000000,100644..100644 --- a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/NilReferencingObject.java +++ b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/NilReferencingObject.java @@@ -1,0 -1,77 +1,77 @@@ + /* + * 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.referencing.privy; + + import org.opengis.util.InternationalString; + import org.opengis.referencing.ReferenceSystem; + import org.apache.sis.xml.NilReason; + import org.apache.sis.xml.NilObject; + import org.apache.sis.referencing.NamedIdentifier; + import org.apache.sis.util.resources.Vocabulary; + -// Specific to the geoapi-4.0 branch: -import org.opengis.metadata.Identifier; ++// Specific to the main and geoapi-3.1 branches: ++import org.opengis.referencing.ReferenceIdentifier; + + + /** + * A referencing object for which every methods return {@code null} or a neutral value. + * <strong>This is not a valid object</strong>. It is used only for initialization of + * objects to be used by JAXB at unmarshalling time, as a way to simulate "no-argument" + * constructor required by JAXB. + * + * @author Martin Desruisseaux (Geomatys) + */ + public final class NilReferencingObject implements NilObject, ReferenceSystem { + /** + * The default name of {@code NilReferencingObject} instances. + * We use this value because {@link ReferenceSystem#getName()} + * is a mandatory property and not all code is tolerant to null name. + * + * <h4>Usage note</h4> + * In theory we do not need a default name because it will be replaced by + * the value of the {@code <gml:name>} element anyway at XML unmarshalling time. + * But not all XML documents are valid, so the {@code <gml:name>} may be missing. + */ - public static final Identifier UNNAMED = new NamedIdentifier(null, Vocabulary.format(Vocabulary.Keys.Unnamed)); ++ public static final ReferenceIdentifier UNNAMED = new NamedIdentifier(null, Vocabulary.format(Vocabulary.Keys.Unnamed)); + + /** + * The unique instance. + */ + public static final NilReferencingObject INSTANCE = new NilReferencingObject(); + + /** + * Do not allow other instantiation of {@link #INSTANCE}. + */ + private NilReferencingObject() { + } + + /** + * This object is empty because the value will be provided later. + */ + @Override + public NilReason getNilReason() { + return NilReason.TEMPLATE; + } + + /* + * Simple properties. Not all of them are optional, but SIS is tolerant to null values. + * Returning null for collection are okay in the particular case of SIS implementation, + * because the constructor will replace empty collections by null references anyway. + */ - @Override public Identifier getName() {return UNNAMED;} ++ @Override public ReferenceIdentifier getName() {return UNNAMED;} + @Override public InternationalString getScope() {return null;} + } diff --cc endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/LegalSymbols.java index 6636413810,7ead46568e..3ea5a57b36 --- a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/LegalSymbols.java +++ b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/LegalSymbols.java @@@ -27,10 -27,10 +27,10 @@@ import org.apache.sis.metadata.iso.cita import org.apache.sis.metadata.iso.citation.DefaultCitation; import org.apache.sis.metadata.iso.citation.DefaultCitationDate; import org.apache.sis.metadata.iso.constraint.DefaultLegalConstraints; - import static org.apache.sis.util.internal.StandardDateFormat.MILLISECONDS_PER_DAY; + import static org.apache.sis.util.privy.StandardDateFormat.MILLISECONDS_PER_DAY; -// Specific to the geoapi-4.0 branch: -import org.apache.sis.metadata.iso.citation.DefaultResponsibility; +// Specific to the main and geoapi-3.1 branches: +import org.apache.sis.metadata.iso.citation.DefaultResponsibleParty; /** diff --cc endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java index fab9fe5034,538df66e92..be761aedba --- a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java +++ b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MetadataBuilder.java @@@ -64,11 -64,11 +64,11 @@@ import org.apache.sis.util.Characters import org.apache.sis.util.iso.Names; import org.apache.sis.util.iso.Types; import org.apache.sis.util.logging.Logging; - import org.apache.sis.util.internal.CollectionsExt; - import org.apache.sis.util.internal.Strings; + import org.apache.sis.util.privy.CollectionsExt; + import org.apache.sis.util.privy.Strings; import org.apache.sis.util.resources.Vocabulary; -import org.apache.sis.metadata.ModifiableMetadata; import org.apache.sis.geometry.AbstractEnvelope; +import org.apache.sis.metadata.ModifiableMetadata; import org.apache.sis.metadata.iso.*; import org.apache.sis.metadata.iso.acquisition.*; import org.apache.sis.metadata.iso.citation.*; diff --cc optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java index 854d7ecdbb,ddced309c6..08a6632288 --- a/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java +++ b/optional/src/org.apache.sis.gui/main/org/apache/sis/gui/metadata/IdentificationInfo.java @@@ -57,8 -57,11 +57,8 @@@ import org.apache.sis.storage.DataStore import org.apache.sis.util.CharSequences; import org.apache.sis.util.Workaround; import org.apache.sis.util.resources.Vocabulary; - import static org.apache.sis.util.internal.CollectionsExt.nonNull; + import static org.apache.sis.util.privy.CollectionsExt.nonNull; -// Specific to the geoapi-4.0 branch: -import org.opengis.util.InternationalString; - /** * The pane where to show the values of {@link Identification} objects.