You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2022/12/13 13:27:27 UTC
[sis] 01/01: Merge branch 'geoapi-3.1'. This is the upgrade from Java 8 to Java 11.
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sis.git
commit e7c5ccf5a900bf49cf045ad9a55c5cb36b8b2477
Merge: 217df02d3e f5bc633ac3
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Tue Dec 13 14:25:57 2022 +0100
Merge branch 'geoapi-3.1'.
This is the upgrade from Java 8 to Java 11.
https://issues.apache.org/jira/browse/SIS-561
README | 2 +-
application/sis-console/pom.xml | 5 +
.../org/apache/sis/console/IdentifierCommand.java | 1 +
.../org/apache/sis/console/MetadataCommand.java | 4 +-
.../apache/sis/console/ResourcesDownloader.java | 3 +-
.../org/apache/sis/console/TransformCommand.java | 3 +-
application/sis-javafx/pom.xml | 5 +
application/sis-javafx/src/main/artifact/README | 6 +-
application/sis-javafx/src/main/artifact/bin/sis | 2 +-
.../sis-javafx/src/main/artifact/bin/sis.bat | 2 +-
application/sis-javafx/src/main/artifact/bin/sisfx | 2 +-
.../sis-javafx/src/main/artifact/bin/sisfx.bat | 2 +-
.../main/java/org/apache/sis/gui/DataViewer.java | 3 +-
.../main/java/org/apache/sis/gui/RecentFiles.java | 4 +-
.../apache/sis/gui/coverage/CoverageControls.java | 4 +-
.../apache/sis/gui/coverage/CoverageExplorer.java | 24 +-
.../apache/sis/gui/coverage/CoverageStyling.java | 2 +-
.../org/apache/sis/gui/coverage/package-info.java | 2 +-
.../apache/sis/gui/dataset/ExpandedFeature.java | 8 +-
.../org/apache/sis/gui/dataset/PathAction.java | 3 +-
.../java/org/apache/sis/gui/map/StatusBar.java | 63 +---
.../java/org/apache/sis/gui/map/package-info.java | 2 +-
.../sis/gui/metadata/StandardMetadataTree.java | 6 +-
.../apache/sis/gui/referencing/AuthorityCodes.java | 3 +-
.../gui/referencing/PositionableProjection.java | 2 +-
.../gui/referencing/RecentReferenceSystems.java | 20 +-
.../apache/sis/gui/referencing/package-info.java | 2 +-
.../org/apache/sis/internal/gui/GUIUtilities.java | 4 +-
.../apache/sis/internal/gui/ImageConverter.java | 5 +-
.../org/apache/sis/internal/gui/RecentChoices.java | 4 +-
.../apache/sis/internal/gui/GUIUtilitiesTest.java | 7 +-
application/sis-openoffice/pom.xml | 5 +
application/sis-webapp/pom.xml | 10 +
.../org/apache/sis/services}/OSGiActivator.java | 7 +-
.../org/apache/sis/services}/ServletListener.java | 8 +-
.../org/apache/sis/internal/book/Assembler.java | 10 +-
.../apache/sis/internal/book/CodeColorizer.java | 7 +-
.../org/apache/sis/internal/book/package-info.java | 4 +-
.../org/apache/sis/coverage/SampleDimension.java | 4 +-
.../sis/coverage/grid/BufferedGridCoverage.java | 3 +-
.../sis/coverage/grid/GridCoordinatesView.java | 5 +-
.../org/apache/sis/coverage/grid/GridCoverage.java | 2 +-
.../apache/sis/coverage/grid/GridCoverage2D.java | 3 +-
.../apache/sis/coverage/grid/GridDerivation.java | 3 +-
.../org/apache/sis/coverage/grid/GridExtent.java | 42 +--
.../apache/sis/coverage/grid/GridExtentCRS.java | 3 +-
.../org/apache/sis/coverage/grid/GridGeometry.java | 31 +-
.../apache/sis/coverage/grid/ImageRenderer.java | 3 +-
.../apache/sis/coverage/grid/PixelTranslation.java | 23 +-
.../org/apache/sis/coverage/grid/package-info.java | 2 +-
.../org/apache/sis/feature/AbstractAttribute.java | 4 +-
.../org/apache/sis/feature/AbstractFeature.java | 7 +-
.../org/apache/sis/feature/DefaultFeatureType.java | 2 +-
.../org/apache/sis/feature/FeatureOperations.java | 2 +-
.../java/org/apache/sis/feature/LinkOperation.java | 3 +-
.../sis/feature/builder/FeatureTypeBuilder.java | 9 +-
.../org/apache/sis/filter/AssociationValue.java | 6 +-
.../java/org/apache/sis/filter/BinaryFunction.java | 3 +-
.../apache/sis/filter/BinaryGeometryFilter.java | 3 +-
.../org/apache/sis/filter/ComparisonFilter.java | 3 +-
.../org/apache/sis/filter/ConvertFunction.java | 4 +-
.../java/org/apache/sis/filter/DistanceFilter.java | 7 +-
.../org/apache/sis/filter/IdentifierFilter.java | 9 +-
.../java/org/apache/sis/filter/LeafExpression.java | 3 +-
.../java/org/apache/sis/filter/LikeFilter.java | 7 +-
.../java/org/apache/sis/filter/LogicalFilter.java | 5 +-
.../java/org/apache/sis/filter/Optimization.java | 5 +-
.../java/org/apache/sis/filter/PropertyValue.java | 4 +-
.../java/org/apache/sis/filter/UnaryFunction.java | 3 +-
.../java/org/apache/sis/image/BandSelectImage.java | 3 +-
.../java/org/apache/sis/image/ComputedImage.java | 2 +-
.../java/org/apache/sis/image/ImageCombiner.java | 5 +-
.../java/org/apache/sis/image/PlanarImage.java | 15 +-
.../sis/image/PositionalConsistencyImage.java | 3 +-
.../org/apache/sis/image/SourceAlignedImage.java | 3 +-
.../main/java/org/apache/sis/image/TileCache.java | 3 +-
.../org/apache/sis/index/tree/PointTreeNode.java | 2 +-
.../org/apache/sis/index/tree/QuadTreeNode.java | 4 +-
.../internal/coverage/j2d/BatchComputedImage.java | 4 +-
.../internal/coverage/j2d/ColorModelFactory.java | 31 +-
.../sis/internal/coverage/j2d/ColorModelPatch.java | 121 -------
.../internal/coverage/j2d/DeferredProperty.java | 4 +-
.../sis/internal/coverage/j2d/ImageUtilities.java | 2 +-
.../coverage/j2d/MultiBandsIndexColorModel.java | 43 ++-
.../sis/internal/coverage/j2d/TiledImage.java | 4 +-
.../sis/internal/coverage/j2d/package-info.java | 2 +-
.../sis/internal/feature/AttributeConvention.java | 30 +-
.../sis/internal/feature/GeometryFactories.java | 3 +-
.../sis/internal/feature/MovingFeatures.java | 7 +-
.../internal/feature/SpatialOperationContext.java | 5 +-
.../apache/sis/internal/feature/j2d/Factory.java | 4 +-
.../sis/internal/feature/j2d/PathBuilder.java | 2 +-
.../apache/sis/internal/feature/j2d/Wrapper.java | 4 +-
.../internal/feature/jts/PathIteratorAdapter.java | 6 +-
.../sis/internal/feature/jts/ShapeConverter.java | 5 +-
.../sis/internal/filter/GeometryConverter.java | 3 +-
.../java/org/apache/sis/internal/filter/Node.java | 1 +
.../sis/internal/filter/SortByComparator.java | 2 +-
.../internal/filter/sqlmm/GeometryConstructor.java | 7 +-
.../sis/internal/filter/sqlmm/OneGeometry.java | 7 +-
.../apache/sis/internal/filter/sqlmm/Registry.java | 4 +-
.../sis/internal/filter/sqlmm/ST_Transform.java | 3 +-
.../sis/internal/filter/sqlmm/TwoGeometries.java | 7 +-
.../internal/processing/image/TiledProcess.java | 3 +-
.../coverage/grid/BufferedGridCoverageTest.java | 5 +-
.../coverage/grid/ConvertedGridCoverageTest.java | 10 +-
.../sis/coverage/grid/GridCoverage2DTest.java | 7 +-
.../sis/coverage/grid/GridDerivationTest.java | 8 +-
.../apache/sis/coverage/grid/GridExtentTest.java | 4 +-
.../apache/sis/feature/AbstractOperationTest.java | 4 +-
.../sis/feature/CharacteristicTypeMapTest.java | 15 +-
.../org/apache/sis/feature/CustomAttribute.java | 7 +-
.../sis/feature/DefaultAssociationRoleTest.java | 17 +-
.../sis/feature/DefaultAttributeTypeTest.java | 5 +-
.../apache/sis/feature/DefaultFeatureTypeTest.java | 3 +-
.../org/apache/sis/feature/FeatureFormatTest.java | 7 +-
.../apache/sis/feature/FeatureMemoryBenchmark.java | 11 +-
.../apache/sis/feature/FeatureOperationsTest.java | 7 +-
.../org/apache/sis/feature/FeatureTestCase.java | 20 +-
.../org/apache/sis/feature/LinkOperationTest.java | 6 +-
.../apache/sis/feature/PropertySingletonTest.java | 8 +-
.../sis/feature/SingletonAssociationTest.java | 15 +-
.../sis/feature/StringJoinOperationTest.java | 3 +-
.../feature/builder/AttributeTypeBuilderTest.java | 13 +-
.../builder/CharacteristicTypeBuilderTest.java | 6 +-
.../feature/builder/FeatureTypeBuilderTest.java | 4 +-
.../org/apache/sis/filter/LogicalFilterTest.java | 8 +-
.../sis/internal/coverage/j2d/ColorizerTest.java | 4 +-
.../internal/feature/AttributeConventionTest.java | 19 +-
.../sis/internal/feature/GeometriesTestCase.java | 8 +-
.../apache/sis/internal/feature/jts/JTSTest.java | 4 +-
.../internal/filter/sqlmm/RegistryTestCase.java | 6 +-
core/sis-metadata/pom.xml | 5 +
.../sis/internal/jaxb/IdentifierMapAdapter.java | 8 +-
.../sis/internal/jaxb/NonMarshalledAuthority.java | 5 +-
.../apache/sis/internal/jaxb/TypeRegistration.java | 7 +-
.../internal/jaxb/metadata/replace/SensorType.java | 2 +-
.../apache/sis/internal/metadata/ExcludedSet.java | 2 -
.../apache/sis/internal/metadata/NameMeaning.java | 27 +-
.../sis/internal/metadata/RecordSchemaSIS.java | 5 +-
.../internal/metadata/TransformationAccuracy.java | 6 +-
.../sis/internal/xml/StreamWriterDelegate.java | 2 +-
.../java/org/apache/sis/metadata/TreeNode.java | 4 +-
.../iso/DefaultExtendedElementInformation.java | 16 +-
.../apache/sis/metadata/iso/DefaultMetadata.java | 50 +--
.../sis/metadata/iso/citation/DefaultCitation.java | 6 +-
.../sis/metadata/iso/citation/DefaultContact.java | 12 +-
.../iso/citation/DefaultResponsibleParty.java | 16 +-
.../metadata/iso/citation/DefaultTelephone.java | 10 +-
.../iso/constraint/DefaultReleasability.java | 26 +-
.../sis/metadata/iso/constraint/package-info.java | 2 +-
.../iso/content/DefaultCoverageDescription.java | 8 +-
.../DefaultFeatureCatalogueDescription.java | 8 +-
.../iso/content/DefaultRangeDimension.java | 4 +-
.../metadata/iso/distribution/DefaultDataFile.java | 6 +-
.../DefaultDigitalTransferOptions.java | 4 +-
.../metadata/iso/distribution/DefaultFormat.java | 12 +-
.../metadata/iso/distribution/DefaultMedium.java | 4 +-
.../distribution/DefaultStandardOrderProcess.java | 24 --
.../iso/identification/AbstractIdentification.java | 4 +-
.../DefaultAggregateInformation.java | 8 +-
.../identification/DefaultDataIdentification.java | 8 +-
.../metadata/iso/lineage/DefaultProcessStep.java | 4 +-
.../sis/metadata/iso/lineage/DefaultSource.java | 8 +-
.../maintenance/DefaultMaintenanceInformation.java | 12 +-
.../sis/metadata/iso/quality/AbstractElement.java | 28 +-
.../iso/quality/AbstractTemporalAccuracy.java | 2 +-
.../iso/quality/DefaultCoverageResult.java | 6 +-
.../metadata/iso/quality/DefaultDataQuality.java | 6 +-
.../DefaultNonQuantitativeAttributeAccuracy.java | 2 +-
.../iso/quality/DefaultQuantitativeResult.java | 6 +-
.../sis/metadata/iso/quality/DefaultScope.java | 2 +-
.../sis/metadata/iso/quality/DefaultUsability.java | 2 +-
.../apache/sis/metadata/sql/MetadataWriter.java | 5 +-
.../org/apache/sis/util/iso/DefaultLocalName.java | 3 +-
.../apache/sis/util/iso/DefaultNameFactory.java | 2 +-
.../org/apache/sis/util/iso/DefaultRecord.java | 3 +-
.../org/apache/sis/util/iso/DefaultRecordType.java | 2 +-
.../org/apache/sis/util/iso/DefaultTypeName.java | 17 +-
.../main/java/org/apache/sis/util/iso/Names.java | 4 +-
.../java/org/apache/sis/util/iso/package-info.java | 2 +-
.../java/org/apache/sis/xml/Implementation.java | 55 +---
.../java/org/apache/sis/xml/MarshalContext.java | 2 +-
.../java/org/apache/sis/xml/MarshallerPool.java | 4 +-
.../main/java/org/apache/sis/xml/Namespaces.java | 71 ++--
.../src/main/java/org/apache/sis/xml/Pooled.java | 50 +--
.../java/org/apache/sis/xml/PooledTemplate.java | 7 +-
.../main/java/org/apache/sis/xml/Transformer.java | 19 +-
.../org/apache/sis/xml/TransformingReader.java | 6 +-
.../org/apache/sis/xml/TransformingWriter.java | 11 +-
.../src/main/java/org/apache/sis/xml/XML.java | 15 +-
.../main/java/org/apache/sis/xml/package-info.java | 2 +-
.../internal/jaxb/cat/CodeListMarshallingTest.java | 8 +-
.../sis/internal/jaxb/cat/EnumMarshallingTest.java | 4 +-
.../sis/internal/jaxb/gco/MultiplicityTest.java | 4 +-
.../metadata/ImplementationHelperTest.java | 5 +-
.../apache/sis/internal/metadata/MergerTest.java | 17 +-
.../java/org/apache/sis/metadata/HashCodeTest.java | 8 +-
.../apache/sis/metadata/InformationMapTest.java | 6 +-
.../apache/sis/metadata/MetadataStandardTest.java | 5 +-
.../sis/metadata/ModifiableMetadataTest.java | 8 +-
.../apache/sis/metadata/PropertyAccessorTest.java | 11 +-
.../java/org/apache/sis/metadata/PrunerTest.java | 12 +-
.../java/org/apache/sis/metadata/TreeNodeTest.java | 10 +-
.../apache/sis/metadata/TreeTableFormatTest.java | 19 +-
.../java/org/apache/sis/metadata/ValueMapTest.java | 64 ++--
.../sis/metadata/iso/CustomMetadataTest.java | 4 +-
.../sis/metadata/iso/citation/CitationsTest.java | 3 +-
.../metadata/iso/citation/DefaultCitationTest.java | 24 +-
.../metadata/iso/citation/DefaultContactTest.java | 8 +-
.../iso/citation/DefaultResponsibilityTest.java | 6 +-
.../constraint/DefaultLegalConstraintsTest.java | 4 +-
.../sis/metadata/iso/extent/DefaultExtentTest.java | 4 +-
.../identification/DefaultBrowseGraphicTest.java | 7 +-
.../identification/DefaultCoupledResourceTest.java | 12 +-
.../DefaultDataIdentificationTest.java | 16 +-
.../DefaultServiceIdentificationTest.java | 10 +-
.../metadata/iso/quality/AbstractElementTest.java | 4 +-
.../iso/quality/DefaultDomainConsistencyTest.java | 7 +-
.../iso/quality/DefaultQuantitativeResultTest.java | 11 +-
.../sis/metadata/sql/MetadataFallbackVerifier.java | 4 +-
.../sis/metadata/sql/MetadataSourceTest.java | 3 +-
.../sis/metadata/sql/MetadataWriterTest.java | 4 +-
.../java/org/apache/sis/test/MetadataAssert.java | 3 +-
.../org/apache/sis/test/mock/MetadataMock.java | 4 +-
.../apache/sis/test/xml/DocumentComparator.java | 26 +-
.../apache/sis/util/iso/DefaultRecordTypeTest.java | 4 +-
.../apache/sis/util/iso/DefaultScopedNameTest.java | 7 +-
.../apache/sis/util/iso/NameMarshallingTest.java | 4 +-
.../java/org/apache/sis/util/iso/TypesTest.java | 3 +-
.../org/apache/sis/xml/MarshallerPoolTest.java | 4 -
.../apache/sis/xml/TransformingNamespacesTest.java | 9 +-
.../org/apache/sis/xml/XLinkMarshallingTest.java | 6 +-
.../coverage/MultiResolutionCoverageLoader.java | 5 +-
.../main/java/org/apache/sis/portrayal/Canvas.java | 2 +-
.../MultiResolutionCoverageLoaderTest.java | 13 +-
core/sis-referencing-by-identifiers/pom.xml | 5 +
.../referencing/gazetteer/FinalLocationType.java | 8 +-
.../referencing/gazetteer/GazetteerFactory.java | 4 +-
.../gazetteer/MilitaryGridReferenceSystem.java | 3 +-
.../referencing/gazetteer/LocationTypeTest.java | 4 +-
core/sis-referencing/pom.xml | 5 +
.../org/apache/sis/geometry/CoordinateFormat.java | 3 +-
.../java/org/apache/sis/geometry/Envelopes.java | 2 +-
.../apache/sis/geometry/WraparoundAdjustment.java | 6 +-
.../referencing/CC_GeneralOperationParameter.java | 5 +-
.../jaxb/referencing/CC_OperationMethod.java | 5 +-
.../referencing/CC_OperationParameterGroup.java | 2 +-
.../sis/internal/referencing/AxisDirections.java | 22 +-
.../internal/referencing/CoordinateOperations.java | 11 +-
.../referencing/GeodeticObjectBuilder.java | 8 +-
.../apache/sis/internal/referencing/Legacy.java | 10 +-
.../referencing/PositionalAccuracyConstant.java | 4 +-
.../internal/referencing/ReferencingUtilities.java | 4 +-
.../internal/referencing/j2d/TileOrganizer.java | 2 +-
.../sis/internal/referencing/provider/Affine.java | 8 +-
.../provider/DatumShiftGridCompressed.java | 4 +-
.../referencing/provider/DatumShiftGridFile.java | 2 +-
.../provider/FranceGeocentricInterpolation.java | 6 +-
.../referencing/provider/GeodeticOperation.java | 2 +-
.../referencing/provider/MapProjection.java | 4 +-
.../referencing/provider/MapProjection3D.java | 6 +-
.../internal/referencing/provider/Molodensky.java | 3 +-
.../sis/internal/referencing/provider/NTv2.java | 2 +-
.../provider/PolarStereographicNorth.java | 3 +-
.../main/java/org/apache/sis/io/wkt/Element.java | 5 +-
.../main/java/org/apache/sis/io/wkt/Formatter.java | 5 +-
.../apache/sis/io/wkt/GeodeticObjectParser.java | 8 +-
.../org/apache/sis/io/wkt/MathTransformParser.java | 3 +-
.../org/apache/sis/io/wkt/SingletonElement.java | 2 +-
.../java/org/apache/sis/io/wkt/Transliterator.java | 23 +-
.../java/org/apache/sis/io/wkt/VerticalInfo.java | 3 +-
.../java/org/apache/sis/io/wkt/WKTDictionary.java | 12 +-
.../main/java/org/apache/sis/io/wkt/WKTFormat.java | 3 +-
.../parameter/DefaultParameterDescriptorGroup.java | 13 +-
.../sis/parameter/DefaultParameterValueGroup.java | 3 +-
.../sis/parameter/MapProjectionParameters.java | 13 +-
.../org/apache/sis/parameter/ParameterFormat.java | 3 +-
.../org/apache/sis/parameter/TensorParameters.java | 5 +-
.../sis/referencing/AbstractIdentifiedObject.java | 2 +-
.../java/org/apache/sis/referencing/Builder.java | 4 +-
.../main/java/org/apache/sis/referencing/CRS.java | 29 +-
.../java/org/apache/sis/referencing/CommonCRS.java | 5 +-
.../sis/referencing/EPSGFactoryFallback.java | 3 +-
.../sis/referencing/crs/DefaultCompoundCRS.java | 14 +-
.../cs/DefaultCoordinateSystemAxis.java | 27 +-
.../org/apache/sis/referencing/cs/Normalizer.java | 3 +-
.../sis/referencing/datum/DatumShiftGrid.java | 4 +-
.../org/apache/sis/referencing/datum/formulas.html | 2 +-
.../referencing/factory/AuthorityFactoryProxy.java | 31 +-
.../sis/referencing/factory/CacheRecord.java | 2 +-
.../factory/CommonAuthorityFactory.java | 4 +-
.../factory/GeodeticAuthorityFactory.java | 5 +-
.../referencing/factory/GeodeticObjectFactory.java | 12 +-
.../factory/IdentifiedObjectFinder.java | 5 +-
.../referencing/factory/IdentifiedObjectSet.java | 2 +-
.../factory/MultiAuthoritiesFactory.java | 6 +-
.../referencing/factory/sql/EPSGCodeFinder.java | 15 +-
.../referencing/factory/sql/EPSGDataAccess.java | 13 +-
.../sis/referencing/factory/sql/EPSGFactory.java | 5 +-
.../factory/sql/InstallationScriptProvider.java | 3 +-
.../operation/AbstractCoordinateOperation.java | 5 +-
.../operation/AbstractSingleOperation.java | 2 +-
.../operation/CoordinateOperationFinder.java | 2 +-
.../operation/CoordinateOperationRegistry.java | 5 +-
.../operation/DefaultConcatenatedOperation.java | 10 +-
.../DefaultCoordinateOperationFactory.java | 14 +-
.../operation/DefaultOperationMethod.java | 20 +-
.../operation/InverseOperationMethod.java | 2 +-
.../operation/builder/LinearTransformBuilder.java | 2 +-
.../operation/builder/ResidualGrid.java | 5 +-
.../sis/referencing/operation/matrix/Matrices.java | 2 +-
.../transform/CoordinateSystemTransform.java | 3 +-
.../transform/DefaultMathTransformFactory.java | 46 +--
.../transform/EllipsoidToCentricTransform.java | 5 +-
.../operation/transform/MathTransformProvider.java | 2 +-
.../operation/transform/MathTransforms.java | 5 +-
.../operation/transform/PoleRotation.java | 6 +-
.../transform/SpecializableTransform.java | 7 +-
.../referencing/operation/transform/formulas.html | 2 +-
.../operation/transform/package-info.java | 2 +-
.../org/apache/sis/referencing/package-info.java | 2 +-
.../org/apache/sis/geometry/EnvelopesTest.java | 4 +-
.../CC_OperationParameterGroupTest.java | 9 +-
.../sis/internal/jaxb/referencing/CodeTest.java | 6 +-
.../referencing/SecondDefiningParameterTest.java | 16 +-
.../referencing/EllipsoidalHeightCombinerTest.java | 7 +-
.../sis/internal/referencing/FormulasTest.java | 7 +-
.../sis/internal/referencing/WKTKeywordsTest.java | 5 +-
.../sis/io/wkt/GeodeticObjectParserTest.java | 4 +-
.../org/apache/sis/io/wkt/WKTDictionaryTest.java | 12 +-
.../java/org/apache/sis/io/wkt/WKTFormatTest.java | 7 +-
.../DefaultParameterDescriptorGroupTest.java | 9 +-
.../parameter/DefaultParameterValueGroupTest.java | 16 +-
.../sis/parameter/DefaultParameterValueTest.java | 4 +-
.../sis/parameter/MapProjectionParametersTest.java | 3 +-
.../apache/sis/parameter/ParameterFormatTest.java | 2 +-
.../sis/parameter/ParameterMarshallingTest.java | 7 +-
.../org/apache/sis/parameter/ParametersTest.java | 6 +-
.../apache/sis/parameter/TensorParametersTest.java | 3 +-
.../org/apache/sis/parameter/TensorValuesTest.java | 10 +-
.../referencing/AbstractIdentifiedObjectTest.java | 11 +-
.../sis/referencing/EPSGFactoryFallbackTest.java | 24 +-
.../sis/referencing/crs/AbstractCRSTest.java | 10 +-
.../referencing/crs/DefaultCompoundCRSTest.java | 23 +-
.../sis/referencing/crs/DefaultDerivedCRSTest.java | 4 +-
.../referencing/crs/DefaultEngineeringCRSTest.java | 10 +-
.../sis/referencing/crs/DefaultImageCRSTest.java | 10 +-
.../referencing/crs/DefaultTemporalCRSTest.java | 6 +-
.../apache/sis/referencing/crs/HardCodedCRS.java | 11 +-
.../apache/sis/referencing/cs/AbstractCSTest.java | 18 +-
.../sis/referencing/cs/CoordinateSystemsTest.java | 16 +-
.../sis/referencing/cs/DefaultCartesianCSTest.java | 9 +-
.../sis/referencing/cs/DefaultCompoundCSTest.java | 5 +-
.../cs/DefaultCoordinateSystemAxisTest.java | 4 +-
.../referencing/cs/DefaultCylindricalCSTest.java | 4 +-
.../sis/referencing/cs/DefaultPolarCSTest.java | 4 +-
.../sis/referencing/cs/DefaultSphericalCSTest.java | 4 +-
.../org/apache/sis/referencing/cs/HardCodedCS.java | 31 +-
.../apache/sis/referencing/cs/NormalizerTest.java | 8 +-
.../datum/DefaultPrimeMeridianTest.java | 5 +-
.../datum/DefaultVerticalDatumTest.java | 11 +-
.../factory/CommonAuthorityFactoryTest.java | 18 +-
.../factory/IdentifiedObjectFinderTest.java | 4 +-
.../factory/MultiAuthoritiesFactoryTest.java | 30 +-
.../factory/sql/epsg/DataScriptFormatter.java | 3 +-
.../operation/CoordinateOperationFinderTest.java | 11 +-
.../DefaultConcatenatedOperationTest.java | 12 +-
.../operation/DefaultConversionTest.java | 13 +-
.../operation/HardCodedConversions.java | 12 +-
.../builder/LinearTransformBuilderTest.java | 7 +-
.../sis/referencing/operation/projection/NoOp.java | 6 +-
.../projection/SatelliteTrackingTest.java | 4 +-
.../operation/transform/CoordinateDomain.java | 2 +-
.../transform/DefaultMathTransformFactoryTest.java | 3 +-
.../transform/MathTransformFactoryBase.java | 3 +-
.../transform/MathTransformFactoryMock.java | 3 +-
.../transform/OperationMethodSetTest.java | 10 +-
.../operation/transform/SinusoidalShiftGrid.java | 4 +-
.../transform/WraparoundTransformTest.java | 10 +-
.../report/CoordinateOperationMethods.java | 2 +-
.../sis/test/integration/ConsistencyTest.java | 7 +-
.../apache/sis/test/integration/MetadataTest.java | 90 +++--
core/sis-utility/pom.xml | 16 -
.../sis/internal/converter/SystemRegistry.java | 7 +-
.../sis/internal/converter/package-info.java | 7 +-
.../sis/internal/{jdk9 => jdk17}/HexFormat.java | 2 +-
.../java/org/apache/sis/internal/jdk17/JDK17.java | 72 ++++
.../sis/internal/{jdk9 => jdk17}/package-info.java | 6 +-
.../java/org/apache/sis/internal/jdk9/JDK9.java | 366 ---------------------
.../sis/internal/system/DefaultFactories.java | 76 +++--
.../apache/sis/internal/system/SystemListener.java | 3 +-
.../apache/sis/internal/system/package-info.java | 2 +-
.../java/org/apache/sis/internal/util/Cloner.java | 8 +-
.../apache/sis/internal/util/CollectionsExt.java | 232 ++++---------
.../apache/sis/internal/util/DefinitionURI.java | 13 +-
.../apache/sis/internal/util/FinalFieldSetter.java | 6 +-
.../org/apache/sis/internal/util/Numerics.java | 16 +-
.../org/apache/sis/internal/util/package-info.java | 2 +-
.../main/java/org/apache/sis/math/ArrayVector.java | 13 +-
.../main/java/org/apache/sis/math/Fraction.java | 17 +-
.../org/apache/sis/math/LinearlyDerivedVector.java | 8 +-
.../java/org/apache/sis/math/MathFunctions.java | 2 +-
.../java/org/apache/sis/math/SequenceVector.java | 5 +-
.../java/org/apache/sis/math/StatisticsFormat.java | 2 +-
.../src/main/java/org/apache/sis/math/Vector.java | 41 +--
.../org/apache/sis/measure/AbstractConverter.java | 3 +-
.../java/org/apache/sis/measure/UnitDimension.java | 23 +-
.../java/org/apache/sis/measure/UnitFormat.java | 10 +-
.../src/main/java/org/apache/sis/setup/About.java | 3 +-
.../java/org/apache/sis/setup/GeometryLibrary.java | 2 -
.../main/java/org/apache/sis/setup/OptionKey.java | 2 +-
.../apache/sis/setup/OptionalInstallations.java | 3 +-
.../java/org/apache/sis/util/CharSequences.java | 4 +-
.../src/main/java/org/apache/sis/util/Classes.java | 4 +-
.../sis/util/DefaultInternationalString.java | 10 +-
.../src/main/java/org/apache/sis/util/Locales.java | 2 +-
.../sis/util/collection/BackingStoreException.java | 2 +-
.../sis/util/collection/DefaultTreeTable.java | 20 +-
.../sis/util/collection/FrequencySortedSet.java | 3 +-
.../apache/sis/util/collection/IntegerList.java | 9 +-
.../apache/sis/util/collection/TableColumn.java | 3 +-
.../sis/util/collection/TreeTableFormat.java | 4 +-
.../java/org/apache/sis/util/logging/Logging.java | 86 ++---
.../apache/sis/util/logging/PerformanceLevel.java | 8 +-
.../org/apache/sis/util/logging/package-info.java | 2 +-
.../java/org/apache/sis/util/resources/Loader.java | 3 +-
.../apache/sis/internal/util/AbstractMapTest.java | 3 +-
.../sis/internal/util/CheckedArrayListTest.java | 6 +-
.../sis/internal/util/CollectionsExtTest.java | 27 +-
.../org/apache/sis/internal/util/NumericsTest.java | 35 +-
.../org/apache/sis/measure/SystemUnitTest.java | 9 +-
.../org/apache/sis/measure/UnitDimensionTest.java | 3 +-
.../org/apache/sis/measure/UnitServicesTest.java | 4 +-
.../org/apache/sis/test/ProjectDirectories.java | 3 +-
.../test/java/org/apache/sis/test/TestRunner.java | 3 +-
.../org/apache/sis/util/collection/CacheTest.java | 10 +-
.../sis/util/collection/CodeListSetTest.java | 2 +-
.../apache/sis/util/collection/DerivedSetTest.java | 10 +-
.../util/collection/FrequencySortedSetTest.java | 3 +-
.../sis/util/collection/IntegerListTest.java | 5 +-
.../apache/sis/util/collection/LargeCodeList.java | 2 +-
ide-project/NetBeans/nbproject/build-impl.xml | 25 +-
ide-project/NetBeans/nbproject/genfiles.properties | 6 +-
ide-project/NetBeans/nbproject/project.properties | 17 +-
ide-project/NetBeans/nbproject/project.xml | 1 -
pom.xml | 28 +-
.../profile/fra/DirectReferenceSystemTest.java | 6 +-
.../apache/sis/internal/earth/netcdf/GCOM_C.java | 33 +-
.../apache/sis/internal/earth/netcdf/GCOM_W.java | 32 +-
src/main/javadoc/overview.html | 2 +-
storage/pom.xml | 5 +
.../storage/inflater/CompressionChannel.java | 3 +-
.../internal/storage/inflater/CopyFromBytes.java | 8 +-
.../storage/inflater/HorizontalPredictor.java | 4 +-
.../storage/inflater/PredictorChannel.java | 4 +-
.../apache/sis/internal/storage/inflater/ZIP.java | 31 +-
.../internal/storage/inflater/package-info.java | 2 +-
.../org/apache/sis/storage/geotiff/CRSBuilder.java | 7 +-
.../sis/storage/geotiff/CompressedSubset.java | 2 +-
.../org/apache/sis/storage/geotiff/DataSubset.java | 2 +-
.../apache/sis/storage/geotiff/Localization.java | 2 +-
.../sis/storage/geotiff/MultiResolutionImage.java | 2 +-
.../sis/storage/geotiff/ReversedBitsChannel.java | 2 +-
.../apache/sis/storage/geotiff/XMLMetadata.java | 4 +-
.../java/org/apache/sis/internal/netcdf/Axis.java | 2 +-
.../org/apache/sis/internal/netcdf/CRSBuilder.java | 3 +-
.../org/apache/sis/internal/netcdf/Convention.java | 5 +-
.../org/apache/sis/internal/netcdf/FeatureSet.java | 2 +-
.../apache/sis/internal/netcdf/GridMapping.java | 3 +-
.../apache/sis/internal/netcdf/RasterResource.java | 5 +-
.../org/apache/sis/internal/netcdf/Variable.java | 2 +-
.../sis/internal/netcdf/impl/ChannelDecoder.java | 10 +-
.../sis/internal/netcdf/impl/VariableInfo.java | 3 +-
.../sis/internal/netcdf/ucar/DecoderWrapper.java | 6 +-
.../sis/internal/netcdf/ucar/VariableWrapper.java | 4 +-
.../apache/sis/storage/netcdf/MetadataReader.java | 16 +-
.../org/apache/sis/storage/netcdf/NetcdfStore.java | 2 +-
storage/sis-sqlstore/pom.xml | 5 +
.../apache/sis/internal/sql/feature/Analyzer.java | 3 +-
.../sis/internal/sql/feature/BinaryEncoding.java | 2 +-
.../apache/sis/internal/sql/feature/Database.java | 4 +-
.../sis/internal/sql/feature/PrimaryKey.java | 5 +-
.../sis/internal/sql/feature/QueryAnalyzer.java | 2 +-
.../sis/internal/sql/feature/TableAnalyzer.java | 2 +-
.../sis/internal/sql/postgis/RasterReader.java | 3 +-
.../apache/sis/storage/sql/ResourceDefinition.java | 6 +-
.../sis/internal/storage/StoreUtilities.java | 3 +-
.../sis/internal/storage/TiledGridCoverage.java | 2 +-
.../org/apache/sis/internal/storage/csv/Store.java | 5 +-
.../sis/internal/storage/esri/CharactersView.java | 6 +-
.../sis/internal/storage/esri/RawRasterReader.java | 2 +-
.../apache/sis/internal/storage/folder/Store.java | 5 +-
.../apache/sis/internal/storage/io/ByteWriter.java | 5 +-
.../sis/internal/storage/io/ChannelFactory.java | 3 +-
.../sis/internal/storage/wkt/FirstKeywordPeek.java | 2 +-
.../sis/internal/storage/xml/AbstractProvider.java | 45 ++-
.../org/apache/sis/internal/storage/xml/Store.java | 3 +-
.../sis/internal/storage/xml/StoreProvider.java | 19 +-
.../sis/internal/storage/xml/package-info.java | 2 +-
.../sis/storage/AbstractGridCoverageResource.java | 3 +-
.../java/org/apache/sis/storage/FeatureNaming.java | 6 +-
.../apache/sis/storage/GridCoverageResource.java | 5 +-
.../org/apache/sis/storage/StorageConnector.java | 7 +-
.../storage/aggregate/AggregatedFeatureSet.java | 4 +-
.../aggregate/ConcatenatedGridResource.java | 3 +-
.../sis/storage/aggregate/GroupBySample.java | 2 +-
.../sis/storage/aggregate/JoinFeatureSet.java | 13 +-
.../apache/sis/storage/event/StoreListeners.java | 53 +--
.../org/apache/sis/storage/event/package-info.java | 2 +-
.../sis/internal/storage/MetadataBuilderTest.java | 7 +-
.../apache/sis/internal/storage/csv/StoreTest.java | 26 +-
.../sis/internal/storage/folder/StoreTest.java | 6 +-
.../internal/storage/xml/MimeTypeDetectorTest.java | 11 +-
.../org/apache/sis/storage/GridResourceMock.java | 3 +-
.../aggregate/ConcatenatedFeatureSetTest.java | 17 +-
.../sis/storage/aggregate/JoinFeatureSetTest.java | 6 +-
.../sis/test/storage/CoverageReadConsistency.java | 2 +-
.../apache/sis/internal/storage/gpx/Copyright.java | 4 +-
.../storage/gpx/GroupAsPolylineOperation.java | 6 +-
.../apache/sis/internal/storage/gpx/Metadata.java | 2 +-
.../org/apache/sis/internal/storage/gpx/Store.java | 2 +-
.../sis/internal/storage/gpx/StoreProvider.java | 11 +-
.../org/apache/sis/internal/storage/gpx/Types.java | 7 +-
.../sis/internal/storage/gpx/WritableStore.java | 2 +-
.../sis/internal/storage/gpx/package-info.java | 2 +-
.../storage/xml/stream/FormattedWriter.java | 6 +-
.../storage/xml/stream/StaxDataStoreProvider.java | 12 +-
.../internal/storage/xml/stream/package-info.java | 2 +-
.../sis/internal/storage/gpx/MetadataTest.java | 10 +-
.../sis/internal/storage/gpx/UpdaterTest.java | 6 +-
.../sis/internal/storage/gpx/WriterTest.java | 31 +-
532 files changed, 2084 insertions(+), 3209 deletions(-)
diff --cc application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
index 508305767e,d4bcfba71c..9a8b168400
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
@@@ -68,10 -68,10 +68,10 @@@ import org.apache.sis.gui.Widget
*
* <h2>Limitations</h2>
* Current implementation is restricted to {@link GridCoverage} instances, but a future
- * implementation may generalize to {@link org.opengis.coverage.Coverage} instances.
+ * implementation may generalize to {@code org.opengis.coverage.Coverage} instances.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.3
+ * @version 1.4
*
* @see CoverageCanvas
* @see GridView
diff --cc application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandedFeature.java
index 64c8a59f87,26a78bc4ea..edec90fd8b
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandedFeature.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandedFeature.java
@@@ -19,9 -19,10 +19,11 @@@ package org.apache.sis.gui.dataset
import java.util.Arrays;
import java.util.Map;
import java.util.Collection;
- import java.util.Collections;
+ import java.util.List;
-import org.opengis.feature.Feature;
-import org.opengis.feature.FeatureType;
-import org.opengis.feature.Property;
++
++// Branch-dependent imports
+import org.apache.sis.feature.AbstractFeature;
+import org.apache.sis.feature.DefaultFeatureType;
/**
diff --cc core/sis-feature/src/main/java/org/apache/sis/coverage/grid/BufferedGridCoverage.java
index e434b87630,07a0549ee3..a18028f358
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/BufferedGridCoverage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/BufferedGridCoverage.java
@@@ -39,9 -39,8 +39,8 @@@ import org.apache.sis.util.collection.C
import org.apache.sis.image.DataType;
// Branch-specific imports
- import org.apache.sis.internal.jdk9.JDK9;
-import org.opengis.coverage.CannotEvaluateException;
-import org.opengis.coverage.PointOutsideCoverageException;
+import org.apache.sis.coverage.CannotEvaluateException;
+import org.apache.sis.coverage.PointOutsideCoverageException;
/**
diff --cc core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoordinatesView.java
index 09e1193d49,92d67f4201..ad8f132b6d
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoordinatesView.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoordinatesView.java
@@@ -17,8 -17,9 +17,7 @@@
package org.apache.sis.coverage.grid;
import java.util.Arrays;
-import org.opengis.coverage.grid.GridCoordinates;
-import org.apache.sis.util.resources.Errors;
import org.apache.sis.util.ArgumentChecks;
- import org.apache.sis.internal.jdk9.JDK9;
/**
diff --cc core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
index 3f1c4397fb,45742cebb2..30bbeab54a
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAttribute.java
@@@ -150,9 -156,9 +150,9 @@@ public abstract class AbstractAttribute
*/
private void writeObject(final ObjectOutputStream out) throws IOException {
out.defaultWriteObject();
- final Attribute<?>[] characterizedBy;
+ final AbstractAttribute<?>[] characterizedBy;
if (characteristics instanceof CharacteristicMap) {
- characterizedBy = characteristics.values().toArray(new AbstractAttribute<?>[characteristics.size()]);
- characterizedBy = characteristics.values().toArray(Attribute[]::new);
++ characterizedBy = characteristics.values().toArray(AbstractAttribute[]::new);
} else {
characterizedBy = null;
}
@@@ -351,13 -356,13 +351,13 @@@
* This method does not store the new map in the {@link #characteristics} field;
* it is caller responsibility to do so if desired.
*/
- private Map<String,Attribute<?>> newCharacteristicsMap() {
+ private Map<String,AbstractAttribute<?>> newCharacteristicsMap() {
if (type instanceof DefaultAttributeType<?>) {
- Map<String, AttributeType<?>> map = ((DefaultAttributeType<?>) type).characteristics();
+ Map<String, DefaultAttributeType<?>> map = type.characteristics();
if (!map.isEmpty()) {
if (!(map instanceof CharacteristicTypeMap)) {
- final Collection<AttributeType<?>> types = map.values();
- map = CharacteristicTypeMap.create(type, types.toArray(AttributeType<?>[]::new));
+ final Collection<DefaultAttributeType<?>> types = map.values();
- map = CharacteristicTypeMap.create(type, types.toArray(new DefaultAttributeType<?>[types.size()]));
++ map = CharacteristicTypeMap.create(type, types.toArray(DefaultAttributeType<?>[]::new));
}
return new CharacteristicMap(this, (CharacteristicTypeMap) map);
}
diff --cc core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
index fca73023b3,193da7f434..25d5c47511
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultFeatureType.java
@@@ -353,7 -353,7 +353,7 @@@ public class DefaultFeatureType extend
assignableTo = new HashSet<>(4);
assignableTo.add(super.getName());
scanPropertiesFrom(this, properties);
- allProperties = UnmodifiableArrayList.wrap(byName.values().toArray(new AbstractIdentifiedType[byName.size()]));
- allProperties = UnmodifiableArrayList.wrap(byName.values().toArray(PropertyType[]::new));
++ allProperties = UnmodifiableArrayList.wrap(byName.values().toArray(AbstractIdentifiedType[]::new));
/*
* Now check if the feature is simple/complex or dense/sparse. We perform this check after we finished
* to create the list of all properties, because some properties may be overridden and we want to take
diff --cc core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java
index cb464a4653,98b969b62e..262a89b6f1
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/FeatureTypeBuilder.java
@@@ -412,8 -407,8 +411,8 @@@ public class FeatureTypeBuilder extend
*
* @see DefaultFeatureType#getSuperTypes()
*/
- public FeatureType[] getSuperTypes() {
- return superTypes.toArray(FeatureType[]::new);
+ public DefaultFeatureType[] getSuperTypes() {
- return superTypes.toArray(new DefaultFeatureType[superTypes.size()]);
++ return superTypes.toArray(DefaultFeatureType[]::new);
}
/**
@@@ -1015,7 -991,7 +1014,7 @@@
}
}
feature = new DefaultFeatureType(identification(), isAbstract(),
- superTypes.toArray(new DefaultFeatureType[superTypes.size()]),
- superTypes.toArray(FeatureType[]::new),
++ superTypes.toArray(DefaultFeatureType[]::new),
ArraysExt.resize(propertyTypes, propertyCursor));
}
return feature;
diff --cc core/sis-feature/src/main/java/org/apache/sis/filter/IdentifierFilter.java
index 23884bae02,83ee72bbfe..02dc5e2182
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/IdentifierFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/IdentifierFilter.java
@@@ -21,8 -21,11 +21,9 @@@ import java.util.Collection
import org.apache.sis.util.ArgumentChecks;
import org.apache.sis.internal.feature.AttributeConvention;
+ // Branch-dependent imports
-import org.opengis.feature.Feature;
-import org.opengis.filter.Expression;
-import org.opengis.filter.ResourceId;
++import org.apache.sis.feature.AbstractFeature;
+
/**
* Filter features using a set of predefined identifiers and discarding features
diff --cc core/sis-feature/src/main/java/org/apache/sis/filter/Optimization.java
index d7ff6e6d13,ffc8e17298..93048e4ea3
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/Optimization.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/Optimization.java
@@@ -423,9 -425,9 +422,9 @@@ public class Optimization
*/
private static <R> List<Filter<? super R>> toAndOperands(final Filter<R> filter) {
if (filter == null) {
- return Collections.emptyList();
+ return List.of();
}
- final CodeList<?> type = filter.getOperatorType();
+ final Enum<?> type = filter.getOperatorType();
if (type == LogicalOperatorName.AND) {
return ((LogicalOperator<R>) filter).getOperands();
}
diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java
index 50b461ab77,5062863567..36442c9c6f
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/AttributeConvention.java
@@@ -102,15 -106,15 +102,15 @@@ public final class AttributeConvention
* <p>The {@linkplain org.apache.sis.feature.DefaultAttributeType#getValueClass() value class} can be
* the {@link com.esri.core.geometry.Geometry} class from ESRI's API, or the {@code Geometry} class from
* <cite>Java Topology Suite</cite> (JTS) library, or any other class defined in future SIS versions.
- * See {@link #isGeometryAttribute(IdentifiedType)} for testing whether the value is a supported type.</p>
+ * See {@code isGeometryAttribute(IdentifiedType)} for testing whether the value is a supported type.</p>
*
- * @see #isGeometryAttribute(IdentifiedType)
+ * @see #isGeometryAttribute(AbstractIdentifiedType)
*/
- public static final ScopedName GEOMETRY_PROPERTY;
+ public static final ScopedName GEOMETRY_PROPERTY = Names.createScopedName(SCOPE, null, "geometry");
/**
- * Conventional name for fetching the envelope encompassing all geometries in a feature. Most {@code FeatureType}s
- * have at most one geometry, which is also the {@link #GEOMETRY_PROPERTY default geometry}.
+ * Conventional name for fetching the envelope encompassing all geometries in a feature.
+ * Most {@code FeatureType}s have at most one geometry, which is also the {@link #GEOMETRY_PROPERTY default geometry}.
* But if several geometries exist, then the value for this synthetic property is the union of all geometries.
*
* <p>Properties of this name are usually
@@@ -136,9 -140,9 +136,9 @@@
* <p>The {@linkplain org.apache.sis.feature.DefaultAttributeType#getValueClass() value class} should be
* {@link org.opengis.referencing.crs.CoordinateReferenceSystem}.</p>
*
- * @see #getCRSCharacteristic(Property)
+ * @see #getCRSCharacteristic(Object)
*/
- public static final ScopedName CRS_CHARACTERISTIC;
+ public static final ScopedName CRS_CHARACTERISTIC = Names.createScopedName(SCOPE, null, "crs");
/**
* Conventional name for fetching the unit of measurement of a property.
@@@ -166,9 -170,9 +166,9 @@@
* <p>The {@linkplain org.apache.sis.feature.DefaultAttributeType#getValueClass() value class} should be
* {@link Integer}.</p>
*
- * @see #getMaximalLengthCharacteristic(Property)
+ * @see #getMaximalLengthCharacteristic(Object)
*/
- public static final ScopedName MAXIMAL_LENGTH_CHARACTERISTIC;
+ public static final ScopedName MAXIMAL_LENGTH_CHARACTERISTIC = Names.createScopedName(SCOPE, null, "maximalLength");
/**
* Conventional name for fetching the enumeration of valid values.
diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/feature/MovingFeatures.java
index 46f52afd4f,fec27f404f..8824c781f0
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/MovingFeatures.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/MovingFeatures.java
@@@ -54,11 -53,10 +52,10 @@@ public class MovingFeatures
* This characteristic uses the same name than {@code TIME_AS_INSTANTS}. Consequently, at most one
* of {@code TIME_AS_INSTANTS} and {@code TIME_AS_NUMBERS} can be used on the same property.
*/
- private static final AttributeType<Number> TIME_AS_NUMBERS;
+ private static final DefaultAttributeType<Number> TIME_AS_NUMBERS;
static {
- final LocalName scope = Names.createLocalName("OGC", null, "MF");
- final Map<String,Object> properties = Collections.singletonMap(
- DefaultAttributeType.NAME_KEY, Names.createScopedName(scope, null, "datetimes"));
+ final var scope = Names.createLocalName("OGC", null, "MF");
+ final var properties = Map.of(DefaultAttributeType.NAME_KEY, Names.createScopedName(scope, null, "datetimes"));
TIME_AS_INSTANTS = new DefaultAttributeType<>(properties, Instant.class, 0, Integer.MAX_VALUE, null);
TIME_AS_NUMBERS = new DefaultAttributeType<>(properties, Number.class, 0, Integer.MAX_VALUE, null);
}
diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/filter/Node.java
index cd78942517,4fe8e0e1f7..944184c617
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/Node.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/Node.java
@@@ -84,9 -86,10 +84,10 @@@ public abstract class Node implements S
*
* @see Expression#getFunctionName()
*/
- protected static <T> AttributeType<T> createType(final Class<T> type, final Object name) {
+ protected static <T> DefaultAttributeType<T> createType(final Class<T> type, final Object name) {
+ // We do not use `Map.of(…)` for letting the attribute type constructor do the null check.
return new DefaultAttributeType<>(Collections.singletonMap(DefaultAttributeType.NAME_KEY, name),
- type, 1, 1, null, (AttributeType<?>[]) null);
+ type, 1, 1, null, (DefaultAttributeType<?>[]) null);
}
/**
diff --cc core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/Registry.java
index 9202548677,397f181b00..163349e1bd
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/Registry.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/Registry.java
@@@ -20,10 -20,10 +20,10 @@@ import java.util.Arrays
import java.util.Collection;
import org.apache.sis.internal.feature.Geometries;
import org.apache.sis.internal.filter.FunctionRegister;
- import org.apache.sis.internal.jdk9.JDK9;
+ import org.apache.sis.internal.jdk17.JDK17;
// Branch-dependent imports
-import org.opengis.filter.Expression;
+import org.apache.sis.filter.Expression;
/**
diff --cc core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java
index d7ae539fe2,8246b7add6..e8e34acf50
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/CharacteristicTypeMapTest.java
@@@ -114,12 -116,12 +113,12 @@@ public final strictfp class Characteris
@Test
public void testQualifiedNames() {
final DefaultAttributeType<?> a1, a2, a3, tp;
- a1 = new DefaultAttributeType<>(singletonMap(NAME_KEY, Names.parseGenericName(null, null, "ns1:accuracy")), Float.class, 1, 1, 0.1f);
- a2 = new DefaultAttributeType<>(singletonMap(NAME_KEY, Names.parseGenericName(null, null, "ns2:accuracy")), Float.class, 1, 1, 0.1f);
- a3 = new DefaultAttributeType<>(singletonMap(NAME_KEY, Names.parseGenericName(null, null, "ns2:s3:units")), String.class, 1, 1, "°C");
- tp = new DefaultAttributeType<>(singletonMap(NAME_KEY, "temperature"), Float.class, 1, 1, null, a1, a2, a3);
+ a1 = new DefaultAttributeType<>(Map.of(NAME_KEY, Names.parseGenericName(null, null, "ns1:accuracy")), Float.class, 1, 1, 0.1f);
+ a2 = new DefaultAttributeType<>(Map.of(NAME_KEY, Names.parseGenericName(null, null, "ns2:accuracy")), Float.class, 1, 1, 0.1f);
+ a3 = new DefaultAttributeType<>(Map.of(NAME_KEY, Names.parseGenericName(null, null, "ns2:s3:units")), String.class, 1, 1, "°C");
+ tp = new DefaultAttributeType<>(Map.of(NAME_KEY, "temperature"), Float.class, 1, 1, null, a1, a2, a3);
- final Map<String, AttributeType<?>> characteristics = tp.characteristics();
+ final Map<String, DefaultAttributeType<?>> characteristics = tp.characteristics();
assertSame("ns1:accuracy", a1, characteristics.get("ns1:accuracy"));
assertSame("ns2:accuracy", a2, characteristics.get("ns2:accuracy"));
assertSame("ns2:s3:units", a3, characteristics.get("ns2:s3:units"));
diff --cc core/sis-feature/src/test/java/org/apache/sis/feature/CustomAttribute.java
index ac8fa16a9b,d2fd163eb4..4b48808ac1
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/CustomAttribute.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/CustomAttribute.java
@@@ -23,8 -24,9 +24,6 @@@ import org.apache.sis.metadata.iso.qual
import org.apache.sis.util.SimpleInternationalString;
import org.apache.sis.referencing.NamedIdentifier;
- import static java.util.Collections.singleton;
-// Branch-dependent imports
-import org.opengis.feature.AttributeType;
--
/**
* For testing {@link AbstractAttribute} customization.
diff --cc core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAssociationRoleTest.java
index 9cb66a9ce6,614b81cfe0..1491a6be2d
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAssociationRoleTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultAssociationRoleTest.java
@@@ -83,10 -86,10 +82,10 @@@ public final strictfp class DefaultAsso
* @return the feature type to use for testing purpose.
*/
private static DefaultFeatureType createType(final Object name,
- final FeatureType parent, final FeatureAssociationRole... property)
+ final DefaultFeatureType parent, final DefaultAssociationRole... property)
{
- return new DefaultFeatureType(singletonMap(NAME_KEY, name),
+ return new DefaultFeatureType(Map.of(NAME_KEY, name),
- false, new FeatureType[] {parent}, property);
+ false, new DefaultFeatureType[] {parent}, property);
}
/**
diff --cc core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java
index 362a8cde02,ccd058b601..33335b48e4
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/DefaultFeatureTypeTest.java
@@@ -30,8 -30,11 +30,7 @@@ import org.junit.Test
import static org.apache.sis.test.Assert.*;
import static org.apache.sis.test.TestUtilities.getSingleton;
- import static java.util.Collections.singletonMap;
-// Branch-dependent imports
-import org.opengis.feature.PropertyType;
-import org.opengis.feature.AttributeType;
-
/**
* Tests {@link DefaultFeatureType}.
diff --cc core/sis-feature/src/test/java/org/apache/sis/feature/FeatureMemoryBenchmark.java
index e420655a40,3112dd90a1..6d65371eb7
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureMemoryBenchmark.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureMemoryBenchmark.java
@@@ -19,11 -19,11 +19,10 @@@ package org.apache.sis.feature
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+ import java.util.Map;
import java.util.Random;
-import org.opengis.feature.Feature;
import org.apache.sis.internal.util.StandardDateFormat;
- import static java.util.Collections.singletonMap;
-
/**
* Compares {@link org.apache.sis.feature} memory usage with a plain {@link HashMap}.
diff --cc core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java
index 3226c00e59,a6a8b8b5bf..ebc2600cff
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/builder/FeatureTypeBuilderTest.java
@@@ -368,15 -370,15 +368,15 @@@ public final strictfp class FeatureType
@Test
public void testOverrideByOperation() {
FeatureTypeBuilder builder = new FeatureTypeBuilder().setName("Parent").setAbstract(true);
- final AttributeType<Integer> pa = builder.addAttribute(Integer.class).setName("A").build();
+ final DefaultAttributeType<Integer> pa = builder.addAttribute(Integer.class).setName("A").build();
builder.addAttribute(Integer.class).setName("B");
- final FeatureType parentType = builder.build();
+ final DefaultFeatureType parentType = builder.build();
builder = new FeatureTypeBuilder().setName("Child").setSuperTypes(parentType);
- builder.addProperty(FeatureOperations.link(Collections.singletonMap(AbstractOperation.NAME_KEY, "B"), pa));
+ builder.addProperty(FeatureOperations.link(Map.of(AbstractOperation.NAME_KEY, "B"), pa));
- final FeatureType childType = builder.build();
+ final DefaultFeatureType childType = builder.build();
- final Iterator<? extends PropertyType> it = childType.getProperties(true).iterator();
+ final Iterator<? extends AbstractIdentifiedType> it = childType.getProperties(true).iterator();
assertPropertyEquals("A", Integer.class, it.next());
assertPropertyEquals("B", Integer.class, it.next());
assertFalse(it.hasNext());
diff --cc core/sis-feature/src/test/java/org/apache/sis/filter/LogicalFilterTest.java
index 673d92052f,7faabe4268..9776c0b849
--- a/core/sis-feature/src/test/java/org/apache/sis/filter/LogicalFilterTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/filter/LogicalFilterTest.java
@@@ -139,7 -143,7 +139,7 @@@ public final strictfp class LogicalFilt
assertEquals(expected, filter.test(null));
assertSerializedEquals(filter);
- filter = (LogicalOperator<AbstractFeature>) anyArity.apply(Arrays.asList(f1, f2, f1));
- filter = anyArity.apply(List.of(f1, f2, f1));
++ filter = (LogicalOperator<AbstractFeature>) anyArity.apply(List.of(f1, f2, f1));
assertArrayEquals(new Filter<?>[] {f1, f2, f1}, filter.getOperands().toArray());
assertEquals(expected, filter.test(null));
assertSerializedEquals(filter);
diff --cc core/sis-feature/src/test/java/org/apache/sis/internal/feature/AttributeConventionTest.java
index 231bd46595,a13bd75df7..f42c890475
--- a/core/sis-feature/src/test/java/org/apache/sis/internal/feature/AttributeConventionTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/internal/feature/AttributeConventionTest.java
@@@ -93,10 -94,10 +92,10 @@@ public final strictfp class AttributeCo
/*
* Test again AttributeConvention.getCRSCharacteristic(…, PropertyType), but following link.
*/
- final AbstractOperation link = FeatureOperations.link(Collections.singletonMap(DefaultAttributeType.NAME_KEY, "geom"), type);
- final DefaultFeatureType feat = new DefaultFeatureType(Collections.singletonMap(DefaultAttributeType.NAME_KEY, "feat"), false, null, type, link);
- assertEquals(HardCodedCRS.WGS84, AttributeConvention.getCRSCharacteristic(feat, link));
- assertNull( AttributeConvention.getCRSCharacteristic(null, link));
- final Operation link = FeatureOperations.link(Map.of(DefaultAttributeType.NAME_KEY, "geom"), type);
++ final var link = FeatureOperations.link(Map.of(DefaultAttributeType.NAME_KEY, "geom"), type);
+ final var feature = new DefaultFeatureType(Map.of(DefaultAttributeType.NAME_KEY, "feat"), false, null, type, link);
+ assertEquals(HardCodedCRS.WGS84, AttributeConvention.getCRSCharacteristic(feature, link));
+ assertNull(AttributeConvention.getCRSCharacteristic(null, link));
}
/**
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
index a5703b1071,066c1b896e..fafa9b4d94
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultExtendedElementInformation.java
@@@ -577,10 -574,32 +577,10 @@@ public class DefaultExtendedElementInfo
* @return reason for creating the extended element.
*/
@Override
- @Deprecated
+ @Deprecated(since="1.0")
@Dependencies("getRationale")
public Collection<InternationalString> getRationales() {
- return new AbstractSet<InternationalString>() {
- /** Returns 0 if empty, or 1 if a density has been specified. */
- @Override public int size() {
- return getRationale() != null ? 1 : 0;
- }
-
- /** Returns an iterator over 0 or 1 element. Current iterator implementation is unmodifiable. */
- @Override public Iterator<InternationalString> iterator() {
- return CollectionsExt.singletonOrEmpty(getRationale()).iterator();
- }
-
- /** Adds an element only if the set is empty. This method is invoked by JAXB at unmarshalling time. */
- @Override public boolean add(final InternationalString newValue) {
- if (isEmpty()) {
- setRationale(newValue);
- return true;
- } else {
- LegacyPropertyAdapter.warnIgnoredExtraneous(InternationalString.class,
- DefaultExtendedElementInformation.class, "setRationales");
- return false;
- }
- }
- };
+ return rationales = nonNullCollection(rationales, InternationalString.class);
}
/**
@@@ -588,9 -607,10 +588,9 @@@
*
* @param newValues the new rationales.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setRationales(final Collection<? extends InternationalString> newValues) {
- setRationale(LegacyPropertyAdapter.getSingleton(newValues, InternationalString.class,
- null, DefaultExtendedElementInformation.class, "setRationales"));
+ rationales = writeCollection(newValues, rationales, InternationalString.class);
}
/**
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
index 2b9c948b1e,5e8f5bf5bd..3be0e055b4
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultResponsibleParty.java
@@@ -268,9 -255,9 +268,9 @@@ public class DefaultResponsibleParty ex
*
* @deprecated As of ISO 19115:2014, replaced by {@code setName(InternationalString)} in {@link DefaultIndividual}.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setIndividualName(final String newValue) {
- setName(Individual.class, false, Types.toInternationalString(newValue), DefaultResponsibleParty::individual);
+ setName(DefaultIndividual.class, false, Types.toInternationalString(newValue), DefaultResponsibleParty::individual);
}
/**
@@@ -312,9 -299,9 +312,9 @@@
*
* @deprecated As of ISO 19115:2014, replaced by {@code setName(InternationalString)} in {@link DefaultOrganisation}.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setOrganisationName(final InternationalString newValue) {
- setName(Organisation.class, false, newValue, DefaultResponsibleParty::organisation);
+ setName(DefaultOrganisation.class, false, newValue, DefaultResponsibleParty::organisation);
}
/**
@@@ -410,19 -397,21 +410,19 @@@
*
* @deprecated As of ISO 19115:2014, replaced by {@link AbstractParty#setContactInfo(Collection)}.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setContactInfo(final Contact newValue) {
- final Collection<Party> parties = getParties();
+ final Collection<AbstractParty> parties = getParties();
checkWritePermission(valueIfDefined(parties));
if (parties != null) { // May be null on unmarshalling.
- final Iterator<Party> it = parties.iterator();
+ final Iterator<AbstractParty> it = parties.iterator();
while (it.hasNext()) {
- final Party party = it.next();
- if (party instanceof AbstractParty) {
- ((AbstractParty) party).setContactInfo(newValue != null ? Collections.singleton(newValue) : null);
- if (((AbstractParty) party).isEmpty()) {
- it.remove();
- }
- return;
+ final AbstractParty party = it.next();
+ party.setContactInfo(newValue != null ? Collections.singleton(newValue) : null);
+ if (party.isEmpty()) {
+ it.remove();
}
+ return;
}
}
/*
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
index c3893476c8,17a8901433..69a0ad0f2a
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/DefaultTelephone.java
@@@ -325,10 -274,10 +325,10 @@@ public class DefaultTelephone extends I
* @return telephone numbers by which individuals can speak to the responsible organization or individual.
*
* @deprecated As of ISO 19115:2014, replaced by a {@linkplain #getNumber() number}
- * with {@link TelephoneType#VOICE}.
+ * with {@code TelephoneType.VOICE}.
*/
@Override
- @Deprecated
+ @Deprecated(since="1.0")
@Dependencies({"getNumber", "getNumberType"})
@XmlElement(name = "voice", namespace = LegacyNamespaces.GMD)
public final Collection<String> getVoices() {
@@@ -346,9 -295,9 +346,9 @@@
* @param newValues the new telephone numbers, or {@code null} if none.
*
* @deprecated As of ISO 19115:2014, replaced by a {@linkplain #setNumber(String) number}
- * with {@link TelephoneType#VOICE}.
+ * code {@code TelephoneType.VOICE}.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setVoices(final Collection<? extends String> newValues) {
((LegacyTelephones) getVoices()).setValues(newValues);
}
@@@ -361,10 -310,10 +361,10 @@@
* @return telephone numbers of a facsimile machine for the responsible organization or individual.
*
* @deprecated As of ISO 19115:2014, replaced by a {@linkplain #getNumber() number}
- * with {@link TelephoneType#FACSIMILE}.
+ * code {@code TelephoneType.FACSIMILE}.
*/
@Override
- @Deprecated
+ @Deprecated(since="1.0")
@Dependencies({"getNumber", "getNumberType"})
@XmlElement(name = "facsimile", namespace = LegacyNamespaces.GMD)
public final Collection<String> getFacsimiles() {
@@@ -382,9 -331,9 +382,9 @@@
* @param newValues the new telephone number, or {@code null} if none.
*
* @deprecated As of ISO 19115:2014, replaced by a {@linkplain #setNumber(String) number}
- * with {@link TelephoneType#FACSIMILE}.
+ * with {@code TelephoneType.FACSIMILE}.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setFacsimiles(final Collection<? extends String> newValues) {
((LegacyTelephones) getFacsimiles()).setValues(newValues);
}
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
index 407029973e,d482dba13c..f40c44a34a
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/DefaultReleasability.java
@@@ -128,29 -137,12 +128,17 @@@ public class DefaultReleasability exten
/**
* Sets the parties to which the release statement applies.
*
+ * <div class="warning"><b>Upcoming API change — generalization</b><br>
+ * The element type will be changed to the {@code Responsibility} interface
+ * when GeoAPI will provide it (tentatively in GeoAPI 3.1).
+ * </div>
+ *
* @param newValues the new parties.
*/
- public void setAddressees(final Collection<? extends Responsibility> newValues) {
- addressees = writeCollection(newValues, addressees, Responsibility.class);
+ public void setAddressees(final Collection<? extends DefaultResponsibility> newValues) {
+ addressees = writeCollection(newValues, addressees, DefaultResponsibility.class);
}
- /**
- * Sets the parties to which the release statement applies.
- *
- * @param newValues the new parties.
- *
- * @deprecated Renamed {@link #setAddressees(Collection)}.
- */
- @Deprecated
- public void getAddressees(final Collection<? extends DefaultResponsibility> newValues) {
- setAddressees(newValues);
- }
-
/**
* Returns the release statement.
*
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
index fcf15df6cc,1e68d884c0..a0a42dfeb0
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultMedium.java
@@@ -273,9 -288,9 +273,9 @@@ public class DefaultMedium extends ISOM
*
* @param newValues the new densities.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setDensities(final Collection<? extends Double> newValues) {
- setDensity(LegacyPropertyAdapter.getSingleton(newValues, Double.class, null, DefaultMedium.class, "setDensities"));
+ densities = writeCollection(newValues, densities, Double.class);
}
/**
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
index 9e18c382ff,acb7f2142d..0c99ec9c11
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/AbstractIdentification.java
@@@ -830,22 -837,9 +830,22 @@@ public class AbstractIdentification ext
*
* @deprecated As of ISO 19115:2014, replaced by {@link #setAssociatedResources(Collection)}.
*/
- @Deprecated
+ @Deprecated(since="1.0")
public void setAggregationInfo(final Collection<? extends AggregateInformation> newValues) {
- setAssociatedResources(newValues);
+ checkWritePermission(associatedResources);
+ /*
+ * We can not invoke getAggregationInfo().setValues(newValues) because this method
+ * is invoked by the constructor, which is itself invoked at JAXB marshalling time,
+ * in which case getAggregationInfo() may return null.
+ */
+ List<DefaultAssociatedResource> r = null;
+ if (newValues != null) {
+ r = new ArrayList<DefaultAssociatedResource>(newValues.size());
+ for (final AggregateInformation value : newValues) {
+ r.add(DefaultAssociatedResource.castOrCopy(value));
+ }
+ }
+ setAssociatedResources(r);
}
diff --cc core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
index c57ce2a093,75f2966485..686b6494d4
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/DefaultMaintenanceInformation.java
@@@ -257,11 -241,11 +257,11 @@@ public class DefaultMaintenanceInformat
* @return scheduled revision date, or {@code null}.
*
* @deprecated As of ISO 19115:2014, replaced by {@link #getMaintenanceDates()} in order to enable inclusion
- * of a {@link DateType} to describe the type of the date. Note that {@link DateType#NEXT_UPDATE}
- * was added to that code list.
+ * of a {@link DateType} to describe the type of the date. The associated date type is
+ * {@code DateType.valueOf("NEXT_UPDATE")}.
*/
@Override
- @Deprecated
+ @Deprecated(since="1.0")
@Dependencies("getMaintenanceDates")
@XmlElement(name = "dateOfNextUpdate", namespace = LegacyNamespaces.GMD)
public Date getDateOfNextUpdate() {
diff --cc core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecord.java
index 0cb736e75a,e70021ff00..1eb0b616a1
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecord.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecord.java
@@@ -178,28 -177,12 +177,28 @@@ public class DefaultRecord implements R
*
* @return the dictionary of all (<var>name</var>, <var>value</var>) pairs in this record.
*
- * @see RecordType#getFieldTypes()
+ * @see RecordType#getMemberTypes()
+ *
+ * @deprecated Renamed {@link #getFields()} for consistency with the 2015 revision of ISO 19103 standard.
*/
@Override
+ @Deprecated
+ public Map<MemberName, Object> getAttributes() {
+ return getFields();
+ }
+
+ /**
+ * Returns the dictionary of all (<var>name</var>, <var>value</var>) pairs in this record.
+ * This method returns a view which will delegate all {@code get} and {@code put} operations to
+ * the {@link #locate(MemberName)} and {@link #set(MemberName, Object)} methods respectively.
+ *
+ * @return the dictionary of all (<var>name</var>, <var>value</var>) pairs in this record.
+ *
+ * @since 1.1
+ */
public Map<MemberName, Object> getFields() {
if (values == null) { // Should never be null, except temporarily at XML unmarshalling time.
- return Collections.emptyMap();
+ return Map.of();
}
return new AbstractMap<MemberName, Object>() {
/** Returns the number of fields in the record. */
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
index 87186e4871,a23ef5488b..86d531f8ad
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/CustomMetadataTest.java
@@@ -110,28 -105,12 +110,28 @@@ public final strictfp class CustomMetad
return factory.createInternationalString(names);
}
- @Override public Citation getCitation() {return null;}
- @Override public Collection<TopicCategory> getTopicCategories() {return null;}
- @Override public Collection<Extent> getExtents() {return null;}
+ @Override public InternationalString getSupplementalInformation() {return null;}
+ @Override public Citation getCitation() {return null;}
+ @Override public InternationalString getPurpose() {return null;}
+ @Override public Collection<SpatialRepresentationType> getSpatialRepresentationTypes() {return null;}
+ @Override public Collection<Resolution> getSpatialResolutions() {return null;}
+ @Override public Collection<Locale> getLanguages() {return null;}
+ @Override public Collection<CharacterSet> getCharacterSets() {return null;}
+ @Override public Collection<TopicCategory> getTopicCategories() {return null;}
+ @Override public Collection<Extent> getExtents() {return null;}
+ @Override public Collection<String> getCredits() {return null;}
+ @Override public Collection<Progress> getStatus() {return null;}
+ @Override public Collection<ResponsibleParty> getPointOfContacts() {return null;}
+ @Override public Collection<MaintenanceInformation> getResourceMaintenances() {return null;}
+ @Override public Collection<BrowseGraphic> getGraphicOverviews() {return null;}
+ @Override public Collection<Format> getResourceFormats() {return null;}
+ @Override public Collection<Keywords> getDescriptiveKeywords() {return null;}
+ @Override public Collection<Usage> getResourceSpecificUsages() {return null;}
+ @Override public Collection<Constraints> getResourceConstraints() {return null;}
+@Deprecated @Override public Collection<AggregateInformation> getAggregationInfo() {return null;}
};
final DefaultMetadata data = new DefaultMetadata();
- data.setIdentificationInfo(singleton(identification));
+ data.setIdentificationInfo(Set.of(identification));
final String xml = XML.marshal(data);
/*
* A few simple checks.
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/CitationsTest.java
index e7494bc585,c9faf85073..963983e9c4
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/CitationsTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/CitationsTest.java
@@@ -287,14 -284,14 +286,14 @@@ public final strictfp class CitationsTe
*/
@Test
public void testIdentifierMatches() {
- final Identifier ogc = new DefaultIdentifier("OGC", "06-042", null);
- final Identifier iso = new DefaultIdentifier("ISO", "19128", null);
+ final Identifier ogc = new Id("OGC", "06-042");
+ final Identifier iso = new Id("ISO", "19128");
final DefaultCitation citation = new DefaultCitation("Web Map Server");
- citation.setIdentifiers(Arrays.asList(ogc, iso, new DefaultIdentifier("Foo", "06-042", null)));
+ citation.setIdentifiers(List.of(ogc, iso, new DefaultIdentifier("Foo", "06-042", null)));
assertTrue ("With full identifier", Citations.identifierMatches(citation, ogc, ogc.getCode()));
assertTrue ("With full identifier", Citations.identifierMatches(citation, iso, iso.getCode()));
- assertFalse("With wrong code", Citations.identifierMatches(citation, new DefaultIdentifier("ISO", "19115", null), "19115"));
- assertFalse("With wrong code space", Citations.identifierMatches(citation, new DefaultIdentifier("Foo", "19128", null), "19128"));
+ assertFalse("With wrong code", Citations.identifierMatches(citation, new Id("ISO", "19115"), "19115"));
+ assertFalse("With wrong code space", Citations.identifierMatches(citation, new Id("Foo", "19128"), "19128"));
assertFalse("With wrong code", Citations.identifierMatches(citation, "Foo"));
assertTrue ("Without identifier", Citations.identifierMatches(citation, "19128"));
assertTrue ("With parsing", Citations.identifierMatches(citation, "ISO:19128"));
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationTest.java
index b3ec5b107e,8fe47ab471..05093683ca
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultCitationTest.java
@@@ -88,13 -90,13 +88,13 @@@ public final strictfp class DefaultCita
new SimpleInternationalString("Andākarento"))); // Actually a different script of the Japanese title.
final DefaultResponsibleParty author = new DefaultResponsibleParty(Role.AUTHOR);
- author.setParties(Collections.singleton(new DefaultIndividual("Testsuya Toyoda", null, null)));
+ author.setParties(Set.of(new DefaultIndividual("Testsuya Toyoda", null, null)));
- final DefaultResponsibleParty editor = new DefaultResponsibleParty(Role.EDITOR);
+ final DefaultResponsibleParty editor = new DefaultResponsibleParty(Role.valueOf("EDITOR"));
- editor.setParties(Collections.singleton(new DefaultOrganisation("Kōdansha", null, null, null)));
- editor.setExtents(Collections.singleton(Extents.WORLD));
+ editor.setParties(Set.of(new DefaultOrganisation("Kōdansha", null, null, null)));
+ editor.setExtents(Set.of(Extents.WORLD));
- citation.setCitedResponsibleParties(Arrays.asList(author, editor));
+ citation.setCitedResponsibleParties(List.of(author, editor));
return citation;
}
@@@ -253,12 -255,12 +253,12 @@@
contact.getIdentifierMap().putSpecialized(IdentifierSpace.ID, "ip-protocol");
final DefaultCitation c = new DefaultCitation("Fight against poverty");
final DefaultResponsibleParty r1 = new DefaultResponsibleParty(Role.ORIGINATOR);
- final DefaultResponsibleParty r2 = new DefaultResponsibleParty(Role.FUNDER);
+ final DefaultResponsibleParty r2 = new DefaultResponsibleParty(Role.valueOf("funder"));
- r1.setParties(Collections.singleton(new DefaultIndividual("Maid Marian", null, contact)));
- r2.setParties(Collections.singleton(new DefaultIndividual("Robin Hood", null, contact)));
- c.setCitedResponsibleParties(Arrays.asList(r1, r2));
+ r1.setParties(Set.of(new DefaultIndividual("Maid Marian", null, contact)));
+ r2.setParties(Set.of(new DefaultIndividual("Robin Hood", null, contact)));
+ c.setCitedResponsibleParties(List.of(r1, r2));
- c.getDates().add(new DefaultCitationDate(TestUtilities.date("2015-10-17 00:00:00"), DateType.ADOPTED));
- c.getPresentationForms().add(PresentationForm.PHYSICAL_OBJECT);
+ c.getDates().add(new DefaultCitationDate(TestUtilities.date("2015-10-17 00:00:00"), DateType.valueOf("adopted")));
+ c.getPresentationForms().add(PresentationForm.valueOf("physicalObject"));
/*
* Check that XML file built by the marshaller is the same as the example file.
*/
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultContactTest.java
index ce74e4c5eb,1f001a364b..3f71e90576
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultContactTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/citation/DefaultContactTest.java
@@@ -82,13 -82,13 +82,13 @@@ public final strictfp class DefaultCont
@SuppressWarnings("deprecation")
public void testSetPhones() {
init();
- final DefaultTelephone tel1 = new DefaultTelephone("00.01", TelephoneType.SMS);
- final DefaultTelephone tel2 = new DefaultTelephone("00.02", TelephoneType.VOICE);
- final DefaultTelephone tel3 = new DefaultTelephone("00.03", TelephoneType.FACSIMILE);
- final DefaultTelephone tel4 = new DefaultTelephone("00.04", TelephoneType.VOICE);
+ final DefaultTelephone tel1 = new DefaultTelephone("00.01", UnsupportedCodeList.valueOf("SMS"));
+ final DefaultTelephone tel2 = new DefaultTelephone("00.02", UnsupportedCodeList.VOICE);
+ final DefaultTelephone tel3 = new DefaultTelephone("00.03", UnsupportedCodeList.FACSIMILE);
+ final DefaultTelephone tel4 = new DefaultTelephone("00.04", UnsupportedCodeList.VOICE);
final DefaultTelephone[] tels = new DefaultTelephone[] {tel1, tel2, tel3, tel4};
final DefaultContact contact = new DefaultContact();
- contact.setPhones(Arrays.asList(tel1, tel2, tel3, tel4));
+ contact.setPhones(List.of(tel1, tel2, tel3, tel4));
assertArrayEquals("getPhones", tels, contact.getPhones().toArray());
/*
* Test the deprecated 'getPhone()' method. Invoking that method shall emit
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraintsTest.java
index 6bb9b4d7f9,1e41e1df9b..085444c50e
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraintsTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/constraint/DefaultLegalConstraintsTest.java
@@@ -84,10 -85,10 +84,10 @@@ public final strictfp class DefaultLega
"</mco:MD_LegalConstraints>\n";
final DefaultLegalConstraints c = new DefaultLegalConstraints();
- c.setUseConstraints(singleton(Restriction.LICENSE));
- c.setUseConstraints(Set.of(Restriction.LICENCE));
++ c.setUseConstraints(Set.of(Restriction.LICENSE));
assertXmlEquals(xml, marshal(c), "xmlns:*");
DefaultLegalConstraints actual = unmarshal(DefaultLegalConstraints.class, xml);
- assertSame(Restriction.LICENCE, getSingleton(actual.getUseConstraints()));
+ assertSame(Restriction.LICENSE, getSingleton(actual.getUseConstraints()));
assertEquals(c, actual);
/*
* Above code tested ISO 19115-3 (un)marshalling. Code below test legacy ISO 19139:2007 (un)marshalling.
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultCoupledResourceTest.java
index 6ebf23e54f,1d98dd9363..7130c595a2
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultCoupledResourceTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultCoupledResourceTest.java
@@@ -46,11 -47,10 +46,11 @@@ public final strictfp class DefaultCoup
* Creates the resource to use for testing purpose.
*/
static DefaultCoupledResource create(final NameFactory factory) {
- final DefaultOperationMetadata operation = new DefaultOperationMetadata("Get Map",
- DistributedComputingPlatform.WEB_SERVICES, null);
+ final DefaultOperationMetadata operation = new DefaultOperationMetadata();
+ operation.setOperationName("Get Map");
- operation.setDistributedComputingPlatforms(singleton(UnsupportedCodeList.valueOf("WEB_SERVICES")));
- operation.setParameters(singleton((ParameterDescriptor<?>) ServiceParameterTest.create()));
- operation.setConnectPoints(singleton(NilReason.MISSING.createNilObject(OnlineResource.class)));
++ operation.setDistributedComputingPlatforms(Set.of(UnsupportedCodeList.valueOf("WEB_SERVICES")));
+ operation.setParameters(Set.of((ParameterDescriptor<?>) ServiceParameterTest.create()));
+ operation.setConnectPoints(Set.of(NilReason.MISSING.createNilObject(OnlineResource.class)));
final DefaultCoupledResource resource = new DefaultCoupledResource();
resource.setScopedName((ScopedName) factory.createGenericName(null, "mySpace", "ABC-123"));
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultServiceIdentificationTest.java
index b27d919138,3c26eac39b..41fdcc0039
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultServiceIdentificationTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/identification/DefaultServiceIdentificationTest.java
@@@ -16,11 -16,17 +16,12 @@@
*/
package org.apache.sis.metadata.iso.identification;
+ import java.util.Set;
import javax.xml.bind.JAXBException;
import org.opengis.util.NameFactory;
-import org.opengis.parameter.ParameterDirection;
import org.opengis.parameter.ParameterDescriptor;
import org.opengis.metadata.citation.Citation;
-import org.opengis.metadata.identification.CouplingType;
-import org.opengis.metadata.identification.CoupledResource;
-import org.opengis.metadata.identification.OperationMetadata;
-import org.opengis.metadata.identification.ServiceIdentification;
-import org.opengis.metadata.identification.DistributedComputingPlatform;
+import org.apache.sis.internal.geoapi.evolution.UnsupportedCodeList;
import org.apache.sis.metadata.iso.citation.DefaultCitation;
import org.apache.sis.internal.system.DefaultFactories;
import org.apache.sis.metadata.xml.TestUsingFile;
@@@ -63,10 -68,10 +63,10 @@@ public final strictfp class DefaultServ
factory.createGenericName(null, "Web Map Server"), // serviceType
NilReason.MISSING.createNilObject(Citation.class), // citation
"A dummy service for testing purpose."); // abstract
- id.setServiceTypeVersions(singleton("1.0"));
- id.setCoupledResources(singleton(resource));
+ id.setServiceTypeVersions(Set.of("1.0"));
+ id.setCoupledResources(Set.of(resource));
- id.setCouplingType(CouplingType.LOOSE);
+ id.setCouplingType(UnsupportedCodeList.valueOf("LOOSE"));
- id.setContainsOperations(singleton(resource.getOperation()));
+ id.setContainsOperations(Set.of(resource.getOperation()));
return id;
}
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/MetadataFallbackVerifier.java
index 3cfbd28bec,9429c08c41..99ddaa8efc
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/MetadataFallbackVerifier.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/MetadataFallbackVerifier.java
@@@ -16,13 -16,12 +16,11 @@@
*/
package org.apache.sis.metadata.sql;
- import java.util.Arrays;
import java.util.Set;
- import java.util.HashSet;
import org.opengis.util.InternationalString;
import org.opengis.metadata.Identifier;
-import org.opengis.metadata.citation.Party;
import org.opengis.metadata.citation.Citation;
-import org.opengis.metadata.citation.Responsibility;
+import org.opengis.metadata.citation.ResponsibleParty;
import org.apache.sis.internal.simple.CitationConstant;
import org.apache.sis.metadata.iso.citation.Citations;
import org.apache.sis.metadata.MetadataStandard;
diff --cc core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/MetadataWriterTest.java
index 4cb97f8907,24401459ae..01f8227743
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/MetadataWriterTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/sql/MetadataWriterTest.java
@@@ -16,7 -16,8 +16,7 @@@
*/
package org.apache.sis.metadata.sql;
- import java.util.Collections;
+ import java.util.Set;
-import org.opengis.metadata.citation.Contact;
import org.opengis.metadata.citation.Citation;
import org.opengis.metadata.citation.PresentationForm;
import org.opengis.metadata.citation.OnLineFunction;
diff --cc core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
index 4e99c36c1c,04269a6334..79aa4b20af
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/MetadataAssert.java
@@@ -121,10 -117,10 +120,10 @@@ public strictfp class MetadataAssert ex
*/
public static void assertFeatureSourceEquals(final String name, final String[] features, final Source source) {
assertEquals("metadata.lineage.source.sourceCitation.title", name, String.valueOf(source.getSourceCitation().getTitle()));
- final Scope scope = source.getScope();
+ final DefaultScope scope = (DefaultScope) ((DefaultSource) source).getScope();
assertNotNull("metadata.lineage.source.scope", scope);
assertEquals("metadata.lineage.source.scope.level", ScopeCode.FEATURE_TYPE, scope.getLevel());
- final Object[] actual = CollectionsExt.toArray(getSingleton(scope.getLevelDescription()).getFeatures(), Object.class);
- final var actual = getSingleton(scope.getLevelDescription()).getFeatures().toArray(CharSequence[]::new);
++ final Object[] actual = getSingleton(scope.getLevelDescription()).getFeatures().toArray();
for (int i=0; i<actual.length; i++) {
actual[i] = actual[i].toString();
}
diff --cc core/sis-metadata/src/test/java/org/apache/sis/test/mock/MetadataMock.java
index 5479bc2022,3303ddb1cf..bcdd092e7f
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/mock/MetadataMock.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/mock/MetadataMock.java
@@@ -16,9 -16,12 +16,9 @@@
*/
package org.apache.sis.test.mock;
-import java.util.Map;
+import java.util.Locale;
+ import java.util.Set;
import java.util.Collection;
--import java.util.Collections;
-import java.util.Locale;
-import java.nio.charset.Charset;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
@@@ -72,8 -85,9 +72,8 @@@ public final strictfp class MetadataMoc
* @return {@link #language}
*/
@Override
- @Deprecated
public Collection<Locale> getLanguages() {
- return (language != null) ? Collections.singleton(language) : Collections.emptySet();
+ return (language != null) ? Set.of(language) : Set.of();
}
/**
diff --cc core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/FinalLocationType.java
index 3bf250350b,9c1d259e12..60605b3c2d
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/FinalLocationType.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/FinalLocationType.java
@@@ -161,12 -163,12 +161,12 @@@ final class FinalLocationType extends A
* @param rs the reference system to assign to the new location types.
* @param existing an initially empty identity hash map for internal usage by this method.
*/
- static List<LocationType> snapshot(final Collection<? extends LocationType> types,
- final ReferenceSystemUsingIdentifiers rs, final Map<LocationType, FinalLocationType> existing)
+ static List<AbstractLocationType> snapshot(final Collection<? extends AbstractLocationType> types,
+ final ReferencingByIdentifiers rs, final Map<AbstractLocationType, FinalLocationType> existing)
{
- final AbstractLocationType[] array = types.toArray(new AbstractLocationType[types.size()]);
- final LocationType[] array = types.toArray(LocationType[]::new);
++ final AbstractLocationType[] array = types.toArray(AbstractLocationType[]::new);
for (int i=0; i < array.length; i++) {
- final LocationType source = array[i];
+ final AbstractLocationType source = array[i];
ArgumentChecks.ensureNonNullElement("types", i, source);
FinalLocationType copy = existing.get(source);
if (copy == null) {
diff --cc core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystem.java
index 923bb4a085,d80d5ca66d..c5b80c0144
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystem.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystem.java
@@@ -76,10 -80,12 +76,9 @@@ import org.apache.sis.measure.Latitude
import org.apache.sis.measure.Quantities;
import org.apache.sis.measure.Units;
-import static java.util.logging.Logger.getLogger;
// Branch-dependent imports
-import org.opengis.metadata.citation.Party;
-import org.opengis.referencing.gazetteer.Location;
-import org.opengis.referencing.gazetteer.LocationType;
+import org.apache.sis.metadata.iso.citation.AbstractParty;
- import org.apache.sis.internal.jdk9.JDK9;
/**
diff --cc core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationTypeTest.java
index e69e23ae97,e0c1bbe950..a7a335d818
--- a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationTypeTest.java
+++ b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationTypeTest.java
@@@ -180,8 -182,7 +179,7 @@@ public final strictfp class LocationTyp
@Test
@DependsOnMethod("testInheritance")
public void testSnapshot() {
- final List<AbstractLocationType> snapshot = ModifiableLocationType.snapshot(null, create(true));
- verify(snapshot.toArray(new AbstractLocationType[snapshot.size()]));
- verify(ModifiableLocationType.snapshot(null, create(true)).toArray(LocationType[]::new));
++ verify(ModifiableLocationType.snapshot(null, create(true)).toArray(AbstractLocationType[]::new));
}
/**
diff --cc core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
index e018487c84,02d8863e5a..30dc73773e
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Formatter.java
@@@ -853,12 -851,12 +852,12 @@@ public class Formatter implements Local
appendForSubtypes(object);
}
if (showIDs) {
- Collection<? extends Identifier> identifiers = object.getIdentifiers();
+ Collection<ReferenceIdentifier> identifiers = object.getIdentifiers();
if (identifiers != null) { // Paranoiac check
if (filterID) {
- for (final Identifier id : identifiers) {
+ for (final ReferenceIdentifier id : identifiers) {
if (Citations.identifierMatches(authority, id.getAuthority())) {
- identifiers = Collections.singleton(id);
+ identifiers = Set.of(id);
break;
}
}
diff --cc core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
index e6f7e8b8be,2c7b8ab36e..d77873c5bd
--- a/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/internal/jaxb/referencing/CodeTest.java
@@@ -16,9 -16,9 +16,9 @@@
*/
package org.apache.sis.internal.jaxb.referencing;
- import java.util.Collections;
+ import java.util.Set;
import org.opengis.referencing.crs.GeographicCRS;
-import org.opengis.metadata.Identifier;
+import org.opengis.referencing.ReferenceIdentifier;
import org.apache.sis.internal.util.Constants;
import org.apache.sis.internal.simple.SimpleCitation;
import org.apache.sis.referencing.ImmutableIdentifier;
@@@ -94,8 -94,8 +94,8 @@@ public final strictfp class CodeTest ex
@Test
@DependsOnMethod("testWithVersion")
public void testForIdentifiedObject() {
- final Identifier id = new ImmutableIdentifier(Citations.EPSG, "EPSG", "4326", "8.2", null);
+ final ReferenceIdentifier id = new ImmutableIdentifier(Citations.EPSG, "EPSG", "4326", "8.2", null);
- final Code value = Code.forIdentifiedObject(GeographicCRS.class, Collections.singleton(id));
+ final Code value = Code.forIdentifiedObject(GeographicCRS.class, Set.of(id));
assertNotNull(value);
assertEquals("codeSpace", Constants.IOGP, value.codeSpace);
assertEquals("code", "urn:ogc:def:crs:EPSG:8.2:4326", value.code);
@@@ -111,8 -111,8 +111,8 @@@
final DefaultCitation authority = new DefaultCitation("EPSG");
authority.getIdentifiers().add(new ImmutableIdentifier(null, "OGP", "EPSG"));
- final Identifier id = new ImmutableIdentifier(authority, "EPSG", "4326", "8.2", null);
+ final ReferenceIdentifier id = new ImmutableIdentifier(authority, "EPSG", "4326", "8.2", null);
- final Code value = Code.forIdentifiedObject(GeographicCRS.class, Collections.singleton(id));
+ final Code value = Code.forIdentifiedObject(GeographicCRS.class, Set.of(id));
assertNotNull(value);
assertEquals("codeSpace", "OGP", value.codeSpace);
assertEquals("code", "urn:ogc:def:crs:EPSG:8.2:4326", value.code);
diff --cc core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
index d9c709e326,88e0487826..61a10bf572
--- a/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/parameter/DefaultParameterDescriptorGroupTest.java
@@@ -19,7 -19,7 +19,6 @@@ package org.apache.sis.parameter
import java.util.Map;
import java.util.List;
import java.util.HashMap;
- import java.util.Collections;
-import org.opengis.parameter.ParameterDirection;
import org.opengis.parameter.GeneralParameterDescriptor;
import org.opengis.parameter.ParameterNotFoundException;
import org.apache.sis.internal.util.Constants;
diff --cc core/sis-referencing/src/test/java/org/apache/sis/parameter/ParametersTest.java
index 278e8dbecd,d985502dce..b7ae48f2d0
--- a/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParametersTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/parameter/ParametersTest.java
@@@ -16,13 -16,15 +16,13 @@@
*/
package org.apache.sis.parameter;
+ import java.util.Map;
import java.util.Set;
import java.util.Collection;
- import java.util.Collections;
import javax.measure.Unit;
import org.opengis.parameter.ParameterDescriptor;
-import org.opengis.parameter.ParameterDirection;
import org.opengis.parameter.ParameterValue;
import org.opengis.parameter.ParameterValueGroup;
-import org.opengis.util.TypeName;
import org.opengis.util.GenericName;
import org.opengis.util.InternationalString;
import org.apache.sis.measure.Range;
diff --cc core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java
index a89901ea3b,bb1969ebd1..79f7e49504
--- a/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/parameter/TensorParametersTest.java
@@@ -29,7 -29,7 +29,6 @@@ import org.apache.sis.test.TestCase
import org.junit.AfterClass;
import org.junit.Test;
- import static java.util.Collections.singletonMap;
-import static org.opengis.test.Validators.validate;
import static org.apache.sis.test.ReferencingAssert.*;
import static org.apache.sis.internal.util.Constants.NUM_ROW;
import static org.apache.sis.internal.util.Constants.NUM_COL;
@@@ -319,7 -319,8 +318,7 @@@ public strictfp class TensorParametersT
}
}
final ParameterValueGroup group = param.createValueGroup(
- singletonMap(ParameterDescriptor.NAME_KEY, "Test"), matrix);
+ Map.of(ParameterDescriptor.NAME_KEY, "Test"), matrix);
- validate(group);
assertEquals(NUM_ROW, numRow, group.parameter(NUM_ROW).intValue());
assertEquals(NUM_COL, numCol, group.parameter(NUM_COL).intValue());
assertEquals("elements", matrix, param.toMatrix(group));
diff --cc core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
index cf85e0fa75,7d6e3a7da0..10d438272f
--- a/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/test/integration/MetadataTest.java
@@@ -155,12 -139,12 +153,12 @@@ public final strictfp class MetadataTes
online.setProtocol("http");
final DefaultContact contact = new DefaultContact(online);
contact.getIdentifierMap().putSpecialized(IdentifierSpace.ID, "IFREMER");
- contact.setPhones(Arrays.asList(
+ contact.setPhones(List.of(
- new DefaultTelephone("+33 (0)2 xx.xx.xx.x6", TelephoneType.VOICE),
- new DefaultTelephone("+33 (0)2 xx.xx.xx.x4", TelephoneType.FACSIMILE)
+ telephone("+33 (0)2 xx.xx.xx.x6", "VOICE"),
+ telephone("+33 (0)2 xx.xx.xx.x4", "FACSIMILE")
));
final DefaultAddress address = new DefaultAddress();
- address.setDeliveryPoints(singleton("Brest institute"));
+ address.setDeliveryPoints(Set.of("Brest institute"));
address.setCity(new SimpleInternationalString("Plouzane"));
address.setPostalCode("29280");
address.setCountry(country);
@@@ -184,12 -168,12 +182,12 @@@
final DefaultOnlineResource online = new DefaultOnlineResource(URI.create("http://www.com.univ-mrs.fr/LOB/"));
online.setProtocol("http");
final DefaultContact contact = new DefaultContact(online);
- contact.setPhones(Arrays.asList(
+ contact.setPhones(List.of(
- new DefaultTelephone("+33 (0)4 xx.xx.xx.x5", TelephoneType.VOICE),
- new DefaultTelephone("+33 (0)4 xx.xx.xx.x8", TelephoneType.FACSIMILE)
+ telephone("+33 (0)4 xx.xx.xx.x5", "VOICE"),
+ telephone("+33 (0)4 xx.xx.xx.x8", "FACSIMILE")
));
final DefaultAddress address = new DefaultAddress();
- address.setDeliveryPoints(singleton("Oceanology institute"));
+ address.setDeliveryPoints(Set.of("Oceanology institute"));
address.setCity(new SimpleInternationalString("Marseille"));
address.setPostalCode("13288");
address.setCountry(country);
@@@ -236,22 -220,22 +234,22 @@@
*/
{
final DefaultLegalConstraints constraint = new DefaultLegalConstraints();
- constraint.setAccessConstraints(singleton(Restriction.LICENSE));
- identification.setResourceConstraints(singleton(constraint));
- constraint.setAccessConstraints(Set.of(Restriction.LICENCE));
++ constraint.setAccessConstraints(Set.of(Restriction.LICENSE));
+ identification.setResourceConstraints(Set.of(constraint));
}
/*
* Data indentification / Aggregate information.
*/
{
@SuppressWarnings("deprecation")
- final DefaultAssociatedResource aggregateInfo = new DefaultAggregateInformation();
+ final DefaultAggregateInformation aggregateInfo = new DefaultAggregateInformation();
final DefaultCitation name = new DefaultCitation("Some oceanographic campaign");
- name.setAlternateTitles(singleton(new SimpleInternationalString("Pseudo group of data")));
- name.setDates(singleton(new DefaultCitationDate(TestUtilities.date("1990-06-04 22:00:00"), DateType.REVISION)));
+ name.setAlternateTitles(Set.of(new SimpleInternationalString("Pseudo group of data")));
+ name.setDates(Set.of(new DefaultCitationDate(TestUtilities.date("1990-06-04 22:00:00"), DateType.REVISION)));
aggregateInfo.setName(name);
aggregateInfo.setInitiativeType(InitiativeType.CAMPAIGN);
- aggregateInfo.setAssociationType(AssociationType.LARGER_WORK_CITATION);
+ aggregateInfo.setAssociationType(AssociationType.LARGER_WORD_CITATION); // There is a typo ("WORD" → "WORK"), but we have to use the wrong spelling for this branch.
- identification.setAggregationInfo(singleton(aggregateInfo));
+ identification.setAssociatedResources(Set.of(aggregateInfo));
}
/*
* Data indentification / Extent.
diff --cc ide-project/NetBeans/nbproject/genfiles.properties
index 9598b10f14,874d87f86b..b73c624292
--- a/ide-project/NetBeans/nbproject/genfiles.properties
+++ b/ide-project/NetBeans/nbproject/genfiles.properties
@@@ -3,6 -3,6 +3,6 @@@
build.xml.data.CRC32=58e6b21c
build.xml.script.CRC32=462eaba0
build.xml.stylesheet.CRC32=28e38971@1.53.1.46
- nbproject/build-impl.xml.data.CRC32=f188e30a
- nbproject/build-impl.xml.script.CRC32=933f5834
- nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.101.0.48
-nbproject/build-impl.xml.data.CRC32=e6c2891e
-nbproject/build-impl.xml.script.CRC32=02d4f276
++nbproject/build-impl.xml.data.CRC32=61740f25
++nbproject/build-impl.xml.script.CRC32=101e7069
+ nbproject/build-impl.xml.stylesheet.CRC32=12e0a6c2@1.104.0.48
diff --cc pom.xml
index db966691dc,1e8f742594..c24c9dff72
--- a/pom.xml
+++ b/pom.xml
@@@ -873,9 -867,9 +867,9 @@@
<validateLinks>true</validateLinks> <!-- Validates content of package-list resources. -->
<detectJavaApiLink>false</detectJavaApiLink> <!-- Let us declare link to Java API. -->
<links>
- <link>https://docs.oracle.com/javase/8/docs/api</link>
+ <link>https://docs.oracle.com/en/java/javase/11/docs/api</link>
<link>http://unitsofmeasurement.github.io/unit-api/site/apidocs</link>
- <link>http://www.geoapi.org/snapshot/javadoc</link>
+ <link>http://www.geoapi.org/3.0/javadoc</link>
</links>
<additionalOptions>
diff --cc storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
index 3bc391981f,ed51bc0d94..080ca1f106
--- a/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
+++ b/storage/sis-netcdf/src/main/java/org/apache/sis/storage/netcdf/MetadataReader.java
@@@ -80,8 -79,8 +79,7 @@@ import ucar.nc2.constants.ACDD
import ucar.nc2.constants.CDM;
import ucar.nc2.constants.CF;
- import static java.util.Collections.singleton;
import static org.apache.sis.storage.netcdf.AttributeNames.*;
-import static org.apache.sis.internal.util.CollectionsExt.first;
/**
@@@ -513,11 -518,13 +511,13 @@@ split: while ((start = CharSequences.s
if (individualName != null || organisationName != null || contact != null) { // Do not test role.
AbstractParty party = null;
if (individualName != null) party = new DefaultIndividual(individualName, null, null);
- if (organisationName != null) party = new DefaultOrganisation(organisationName, null, (Individual) party, null);
+ if (organisationName != null) party = new DefaultOrganisation(organisationName, null, (DefaultIndividual) party, null);
if (party == null) party = isOrganisation(keys) ? new DefaultOrganisation() : new DefaultIndividual();
- if (contact != null) party.setContactInfo(singleton(contact));
+ if (contact != null) party.setContactInfo(Set.of(contact));
responsibility = new DefaultResponsibleParty(role);
- ((DefaultResponsibleParty) responsibility).setParties(singleton(party));
+ if (party != null) {
+ ((DefaultResponsibleParty) responsibility).setParties(Set.of(party));
+ }
}
}
return responsibility;
diff --cc storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
index eed2b67459,4c5370968e..64427ed861
--- a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/csv/Store.java
@@@ -576,20 -578,21 +576,21 @@@ final class Store extends URIDataStore
}
properties.add(createProperty(name, type, minOccurrence, maxOccurrence, characteristics));
}
+ // Do not use Map.of(…) because `name` may be null. Let constructor throw the exception.
final String name = IOUtilities.filenameWithoutExtension(super.getDisplayName());
return new DefaultFeatureType(Collections.singletonMap(DefaultFeatureType.NAME_KEY, name),
- false, null, properties.toArray(new AbstractIdentifiedType[properties.size()]));
- false, null, properties.toArray(PropertyType[]::new));
++ false, null, properties.toArray(AbstractIdentifiedType[]::new));
}
/**
* Creates a property type for the given name and type.
* This is a helper method for {@link #parseFeatureType(List)}.
*/
- private static PropertyType createProperty(final String name, final Class<?> type,
- final int minOccurrence, final int maxOccurrence, final AttributeType<?>[] characteristics)
+ private static AbstractIdentifiedType createProperty(final String name, final Class<?> type,
+ final int minOccurrence, final int maxOccurrence, final DefaultAttributeType<?>[] characteristics)
{
return new DefaultAttributeType<>(Collections.singletonMap(DefaultAttributeType.NAME_KEY, name),
- type, minOccurrence, maxOccurrence, null, characteristics);
+ type, minOccurrence, maxOccurrence, null, characteristics);
}
/**
diff --cc storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/JoinFeatureSet.java
index 9d7d340da0,d8297aff83..c8dfd8d964
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/JoinFeatureSet.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/JoinFeatureSet.java
@@@ -231,16 -232,16 +230,16 @@@ public class JoinFeatureSet extends Agg
* We could build the FeatureType only when first needed, but the type is required by the iterators.
* Since we are going to need the type for any use of this JoinFeatureSet, better to create it now.
*/
- PropertyType[] properties = new PropertyType[] {
+ AbstractIdentifiedType[] properties = new AbstractIdentifiedType[] {
- new DefaultAssociationRole(name(leftAlias), leftType, joinType.minimumOccurs(false), 1),
- new DefaultAssociationRole(name(rightAlias), rightType, joinType.minimumOccurs(true), 1)
+ new DefaultAssociationRole(properties(leftAlias), leftType, joinType.minimumOccurs(false), 1),
+ new DefaultAssociationRole(properties(rightAlias), rightType, joinType.minimumOccurs(true), 1)
};
final String identifierDelimiter = Containers.property(featureInfo, "identifierDelimiter", String.class);
if (identifierDelimiter != null && AttributeConvention.hasIdentifier(leftType)
&& AttributeConvention.hasIdentifier(rightType))
{
- final Operation identifier = FeatureOperations.compound(
+ final AbstractOperation identifier = FeatureOperations.compound(
- name(AttributeConvention.IDENTIFIER_PROPERTY), identifierDelimiter,
+ properties(AttributeConvention.IDENTIFIER_PROPERTY), identifierDelimiter,
Containers.property(featureInfo, "identifierPrefix", String.class),
Containers.property(featureInfo, "identifierSuffix", String.class), properties);
properties = ArraysExt.insert(properties, 0, 1);
diff --cc storage/sis-storage/src/test/java/org/apache/sis/internal/storage/csv/StoreTest.java
index 06f07681d3,421e59a612..46fdbe2bb0
--- a/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/csv/StoreTest.java
+++ b/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/csv/StoreTest.java
@@@ -98,10 -101,10 +102,10 @@@ public final strictfp class StoreTest e
@Test
public void testGetMetadata() throws DataStoreException {
final Metadata metadata;
- try (Store store = open()) {
+ try (Store store = open(true)) {
metadata = store.getMetadata();
}
- final Extent extent = getSingleton(getSingleton(metadata.getIdentificationInfo()).getExtents());
+ final Extent extent = getSingleton(((AbstractIdentification) getSingleton(metadata.getIdentificationInfo())).getExtents());
final GeographicBoundingBox bbox = (GeographicBoundingBox) getSingleton(extent.getGeographicElements());
assertEquals("westBoundLongitude", 50.23, bbox.getWestBoundLongitude(), STRICT);
assertEquals("eastBoundLongitude", 50.31, bbox.getEastBoundLongitude(), STRICT);
@@@ -117,10 -120,10 +121,10 @@@
*/
@Test
public void testStaticFeatures() throws DataStoreException {
- try (Store store = open()) {
+ try (Store store = open(true)) {
verifyFeatureType(store.featureType, double[].class, 1);
assertEquals("foliation", Foliation.TIME, store.foliation);
- final Iterator<Feature> it = store.features(false).iterator();
+ final Iterator<AbstractFeature> it = store.features(false).iterator();
assertPropertyEquals(it.next(), "a", "12:33:51", "12:36:11", new double[] {11, 2, 12, 3}, "walking", 1);
assertPropertyEquals(it.next(), "b", "12:33:51", "12:36:51", new double[] {10, 2, 11, 3}, "walking", 2);
assertPropertyEquals(it.next(), "a", "12:36:11", "12:36:51", new double[] {12, 3, 10, 3}, "walking", 2);
@@@ -146,13 -149,13 +150,13 @@@
@Test
public void testMovingFeatures() throws DataStoreException {
isMovingFeature = true;
- try (Store store = new Store(null, new StorageConnector(testData()))) {
+ try (Store store = open(false)) {
verifyFeatureType(store.featureType, Polyline.class, Integer.MAX_VALUE);
assertEquals("foliation", Foliation.TIME, store.foliation);
- final Iterator<Feature> it = store.features(false).iterator();
+ final Iterator<AbstractFeature> it = store.features(false).iterator();
- assertPropertyEquals(it.next(), "a", "12:33:51", "12:36:51", new double[] {11, 2, 12, 3, 10, 3}, singletonList("walking"), Arrays.asList(1, 2));
- assertPropertyEquals(it.next(), "b", "12:33:51", "12:36:51", new double[] {10, 2, 11, 3}, singletonList("walking"), singletonList(2));
- assertPropertyEquals(it.next(), "c", "12:33:51", "12:36:51", new double[] {12, 1, 10, 2, 11, 3}, singletonList("vehicle"), singletonList(1));
+ assertPropertyEquals(it.next(), "a", "12:33:51", "12:36:51", new double[] {11, 2, 12, 3, 10, 3}, List.of("walking"), List.of(1, 2));
+ assertPropertyEquals(it.next(), "b", "12:33:51", "12:36:51", new double[] {10, 2, 11, 3}, List.of("walking"), List.of(2));
+ assertPropertyEquals(it.next(), "c", "12:33:51", "12:36:51", new double[] {12, 1, 10, 2, 11, 3}, List.of("vehicle"), List.of(1));
assertFalse(it.hasNext());
}
}
diff --cc storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/ConcatenatedFeatureSetTest.java
index cb882b1817,e507067c89..c743a128bc
--- a/storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/ConcatenatedFeatureSetTest.java
+++ b/storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/ConcatenatedFeatureSetTest.java
@@@ -60,10 -58,10 +59,10 @@@ public final strictfp class Concatenate
builder.addAttribute(String.class).setName("name");
builder.addAttribute(Integer.class).setName("population");
- final FeatureType ft = builder.build();
+ final DefaultFeatureType ft = builder.build();
final FeatureSet cfs = ConcatenatedFeatureSet.create(
- new MemoryFeatureSet(null, ft, Arrays.asList(ft.newInstance(), ft.newInstance())),
- new MemoryFeatureSet(null, ft, Arrays.asList(ft.newInstance())));
+ new MemoryFeatureSet(null, ft, List.of(ft.newInstance(), ft.newInstance())),
+ new MemoryFeatureSet(null, ft, List.of(ft.newInstance())));
assertSame("getType()", ft, cfs.getType());
assertEquals("features.count()", 3, cfs.features(false).count());
@@@ -109,10 -107,10 +108,10 @@@
t1f2.setPropertyValue("value", 3);
t1f2.setPropertyValue("label", "first-second");
- final FeatureSet t1fs = new MemoryFeatureSet(null, t1, Arrays.asList(t1f1, t1f2));
+ final FeatureSet t1fs = new MemoryFeatureSet(null, t1, List.of(t1f1, t1f2));
// Populate a feature set for second type.
- final Feature t2f1 = t2.newInstance();
+ final AbstractFeature t2f1 = t2.newInstance();
t2f1.setPropertyValue("value", 3);
t2f1.setPropertyValue("label", "second-first");
@@@ -153,11 -151,11 +152,11 @@@
public void noCommonType() {
final FeatureTypeBuilder builder = new FeatureTypeBuilder();
builder.setName("super");
- final FeatureType mockSuperType = builder.build();
- final FeatureType firstType = builder.setSuperTypes(mockSuperType).setName("first").build();
- final FeatureType secondType = builder.clear().setName("second").build();
+ final DefaultFeatureType mockSuperType = builder.build();
+ final DefaultFeatureType firstType = builder.setSuperTypes(mockSuperType).setName("first").build();
+ final DefaultFeatureType secondType = builder.clear().setName("second").build();
- final FeatureSet fs1 = new MemoryFeatureSet(null, firstType, Collections.emptyList());
- final FeatureSet fs2 = new MemoryFeatureSet(null, secondType, Collections.emptyList());
+ final FeatureSet fs1 = new MemoryFeatureSet(null, firstType, List.of());
+ final FeatureSet fs2 = new MemoryFeatureSet(null, secondType, List.of());
try {
FeatureSet concatenation = ConcatenatedFeatureSet.create(fs1, fs2);
fail("Concatenation succeeded despite the lack of common type. Result is:\n" + concatenation);
@@@ -182,8 -180,8 +181,8 @@@
// This is the expected exception.
}
final FeatureTypeBuilder builder = new FeatureTypeBuilder().setName("mock");
- final FeatureType mockType = builder.build();
+ final DefaultFeatureType mockType = builder.build();
- final FeatureSet fs1 = new MemoryFeatureSet(null, mockType, Collections.emptyList());
+ final FeatureSet fs1 = new MemoryFeatureSet(null, mockType, List.of());
final FeatureSet set = ConcatenatedFeatureSet.create(fs1);
assertSame("A concatenation has been created from a single type.", fs1, set);
}
diff --cc storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/JoinFeatureSetTest.java
index 8b3806694f,4c5191ff10..d10f93d9b9
--- a/storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/JoinFeatureSetTest.java
+++ b/storage/sis-storage/src/test/java/org/apache/sis/storage/aggregate/JoinFeatureSetTest.java
@@@ -71,8 -71,8 +71,8 @@@ public final strictfp class JoinFeature
builder.addAttribute( String.class).setName(AttributeConvention.IDENTIFIER_PROPERTY);
builder.addAttribute( String.class).setName("myNameSpace", "att1");
builder.addAttribute(Integer.class).setName("myNameSpace", "att2");
- final FeatureType type1 = builder.build();
+ final DefaultFeatureType type1 = builder.build();
- featureSet1 = new MemoryFeatureSet(null, type1, Arrays.asList(
+ featureSet1 = new MemoryFeatureSet(null, type1, List.of(
newFeature1(type1, "fid_1_0", "str1", 1),
newFeature1(type1, "fid_1_1", "str2", 2),
newFeature1(type1, "fid_1_2", "str3", 3),
@@@ -83,8 -83,8 +83,8 @@@
builder.addAttribute( String.class).setName(AttributeConvention.IDENTIFIER_PROPERTY);
builder.addAttribute(Integer.class).setName("otherNameSpace", "att3");
builder.addAttribute( Double.class).setName("otherNameSpace", "att4");
- final FeatureType type2 = builder.build();
+ final DefaultFeatureType type2 = builder.build();
- featureSet2 = new MemoryFeatureSet(null, type2, Arrays.asList(
+ featureSet2 = new MemoryFeatureSet(null, type2, List.of(
newFeature2(type2, "fid_2_0", 1, 10),
newFeature2(type2, "fid_2_1", 2, 20),
newFeature2(type2, "fid_2_2", 2, 30),
diff --cc storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Copyright.java
index f493afd918,22eb6f12cb..178e294276
--- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Copyright.java
+++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Copyright.java
@@@ -158,7 -159,7 +158,7 @@@ resp: for (final DefaultResponsibilit
@Override
public Collection<Restriction> getUseConstraints() {
if (license != null) {
- return Arrays.asList(Restriction.COPYRIGHT, Restriction.valueOf("LICENCE"));
- return List.of(Restriction.COPYRIGHT, Restriction.LICENCE);
++ return List.of(Restriction.COPYRIGHT, Restriction.valueOf("LICENCE"));
} else {
return Collections.singleton(Restriction.COPYRIGHT);
}
diff --cc storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java
index 166da7c6b1,562f91b22b..46c5825bb5
--- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java
+++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java
@@@ -79,7 -81,8 +78,8 @@@ final class GroupAsPolylineOperation ex
/**
* The expected result type to be returned by {@link #getResult()}.
*/
+ @SuppressWarnings("serial")
- private final AttributeType<?> result;
+ private final DefaultAttributeType<?> result;
/**
* Creates a new operation which will look for geometries in the given feature association.
@@@ -100,9 -103,9 +100,9 @@@
*
* @param geometries accessor to the geometry implementation in use (Java2D, ESRI or JTS).
*/
- static <G> AttributeType<? extends G> getResult(final Geometries<G> geometries) {
+ static <G> DefaultAttributeType<? extends G> getResult(final Geometries<G> geometries) {
- return new DefaultAttributeType<>(Collections.singletonMap(NAME_KEY, AttributeConvention.ENVELOPE_PROPERTY),
- geometries.polylineClass, 1, 1, null);
+ return new DefaultAttributeType<>(Map.of(NAME_KEY, AttributeConvention.ENVELOPE_PROPERTY),
+ geometries.polylineClass, 1, 1, null);
}
/**
diff --cc storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Store.java
index 394babaa84,da0f246f30..ef48ccc435
--- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Store.java
+++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Store.java
@@@ -203,8 -203,8 +203,8 @@@ public class Store extends StaxDataStor
* @deprecated We are not sure yet if we will keep this method. Decision is pending acquisition of
* more experience with the API proposed by {@link org.apache.sis.storage.FeatureSet}.
*/
- @Deprecated
+ @Deprecated(since="0.8")
- public FeatureType getFeatureType(final String name) throws IllegalNameException {
+ public DefaultFeatureType getFeatureType(final String name) throws IllegalNameException {
return types.names.get(this, name);
}
diff --cc storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Types.java
index 0a8605abc6,c1807c50af..22dd795b66
--- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Types.java
+++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/Types.java
@@@ -100,8 -99,8 +99,8 @@@ final class Types
* @deprecated We are not sure yet if we will keep this field. Decision is pending acquisition of
* more experience with the API proposed by {@link org.apache.sis.storage.FeatureSet}.
*/
- @Deprecated
+ @Deprecated(since="0.8")
- final FeatureNaming<FeatureType> names;
+ final FeatureNaming<DefaultFeatureType> names;
/**
* Accessor to the geometry implementation in use (Java2D, ESRI or JTS).
diff --cc storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/WritableStore.java
index 44bb071d34,817ec098a6..7f5aeda791
--- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/WritableStore.java
+++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/WritableStore.java
@@@ -147,8 -147,8 +147,8 @@@ public final class WritableStore extend
*
* @see <a href="https://issues.apache.org/jira/browse/SIS-411">SIS-411</a>
*/
- @Deprecated
+ @Deprecated(since="1.3")
- public synchronized void write(final Metadata metadata, final Stream<? extends Feature> features) throws DataStoreException {
+ public synchronized void write(final Metadata metadata, final Stream<? extends AbstractFeature> features) throws DataStoreException {
try {
/*
* If we created a reader for reading metadata, we need to close that reader now otherwise the call
diff --cc storage/sis-xmlstore/src/test/java/org/apache/sis/internal/storage/gpx/WriterTest.java
index 6ca634509d,5e5de0203f..136d689e77
--- a/storage/sis-xmlstore/src/test/java/org/apache/sis/internal/storage/gpx/WriterTest.java
+++ b/storage/sis-xmlstore/src/test/java/org/apache/sis/internal/storage/gpx/WriterTest.java
@@@ -272,10 -271,10 +271,10 @@@ public final strictfp class WriterTest
point1.setPropertyValue("ageofdgpsdata", 55.55);
point1.setPropertyValue("dgpsid", 256);
point1.setPropertyValue("fix", Fix.NONE);
- point1.setPropertyValue("link", Arrays.asList(new Link(new URI("http://first-address1.org")),
- new Link(new URI("http://first-address2.org")),
- new Link(new URI("http://first-address3.org"))));
+ point1.setPropertyValue("link", List.of(new Link(new URI("http://first-address1.org")),
+ new Link(new URI("http://first-address2.org")),
+ new Link(new URI("http://first-address3.org"))));
- final Feature point3 = types.wayPoint.newInstance();
+ final AbstractFeature point3 = types.wayPoint.newInstance();
point3.setPropertyValue("sis:geometry", new Point(35, 30));
point3.setPropertyValue("time", Instant.parse("2010-01-30T00:00:00Z"));
point3.setPropertyValue("name", "third point");
@@@ -294,12 -293,12 +293,12 @@@
point3.setPropertyValue("ageofdgpsdata", 85.55);
point3.setPropertyValue("dgpsid", 456);
point3.setPropertyValue("fix", Fix.THREE_DIMENSIONAL);
- point3.setPropertyValue("link", Arrays.asList(new Link(new URI("http://third-address1.org")),
- new Link(new URI("http://third-address2.org"))));
+ point3.setPropertyValue("link", List.of(new Link(new URI("http://third-address1.org")),
+ new Link(new URI("http://third-address2.org"))));
- final Feature point2 = types.wayPoint.newInstance();
+ final AbstractFeature point2 = types.wayPoint.newInstance();
point2.setPropertyValue("sis:geometry", new Point(25, 20));
- final List<AbstractFeature> wayPoints = Arrays.asList(point1, point2, point3);
- final List<Feature> wayPoints = List.of(point1, point2, point3);
- final List<Feature> features;
++ final List<AbstractFeature> wayPoints = List.of(point1, point2, point3);
+ final List<AbstractFeature> features;
switch (type) {
case WAY_POINT: {
features = wayPoints;
@@@ -314,11 -313,11 +313,11 @@@
route1.setPropertyValue("type", "Route type");
route1.setPropertyValue("number", 7);
route1.setPropertyValue("rtept", wayPoints);
- route1.setPropertyValue("link", Arrays.asList(new Link(new URI("http://route-address1.org")),
- new Link(new URI("http://route-address2.org")),
- new Link(new URI("http://route-address3.org"))));
+ route1.setPropertyValue("link", List.of(new Link(new URI("http://route-address1.org")),
+ new Link(new URI("http://route-address2.org")),
+ new Link(new URI("http://route-address3.org"))));
- final Feature route2 = types.route.newInstance();
+ final AbstractFeature route2 = types.route.newInstance();
- features = Arrays.asList(route1, route2);
+ features = List.of(route1, route2);
break;
}
case TRACK: {
@@@ -333,12 -332,12 +332,12 @@@
track1.setPropertyValue("src", "Track source");
track1.setPropertyValue("type", "Track type");
track1.setPropertyValue("number", 7);
- track1.setPropertyValue("trkseg", Arrays.asList(seg1, seg2));
- track1.setPropertyValue("link", Arrays.asList(new Link(new URI("http://track-address1.org")),
- new Link(new URI("http://track-address2.org")),
- new Link(new URI("http://track-address3.org"))));
+ track1.setPropertyValue("trkseg", List.of(seg1, seg2));
+ track1.setPropertyValue("link", List.of(new Link(new URI("http://track-address1.org")),
+ new Link(new URI("http://track-address2.org")),
+ new Link(new URI("http://track-address3.org"))));
- final Feature track2 = types.track.newInstance();
+ final AbstractFeature track2 = types.track.newInstance();
- features = Arrays.asList(track1, track2);
+ features = List.of(track1, track2);
break;
}
default: throw new AssertionError(type);