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/11/19 15:29:13 UTC

[sis] 02/05: Fix common spelling errors.

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 38740ce45e95928bb2e00fbc1574814d4e4432c9
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Sat Nov 19 14:48:48 2022 +0100

    Fix common spelling errors.
---
 .../java/org/apache/sis/console/AboutCommand.java  |  2 +-
 .../java/org/apache/sis/console/CommandRunner.java |  8 +-
 .../org/apache/sis/console/IdentifierCommand.java  |  2 +-
 .../apache/sis/console/ResourcesDownloader.java    |  2 +-
 .../java/org/apache/sis/console/package-info.java  |  2 +-
 .../apache/sis/console/IdentifierState.properties  |  2 +-
 application/sis-javafx/pom.xml                     |  2 +-
 .../main/java/org/apache/sis/gui/DataViewer.java   |  4 +-
 .../org/apache/sis/gui/coverage/CellFormat.java    |  4 +-
 .../apache/sis/gui/coverage/CoverageCanvas.java    |  6 +-
 .../apache/sis/gui/coverage/CoverageControls.java  |  2 +-
 .../org/apache/sis/gui/coverage/GridControls.java  |  2 +-
 .../org/apache/sis/gui/coverage/GridError.java     |  2 +-
 .../apache/sis/gui/coverage/GridSliceSelector.java |  2 +-
 .../java/org/apache/sis/gui/coverage/GridView.java |  2 +-
 .../org/apache/sis/gui/coverage/GridViewSkin.java  |  4 +-
 .../apache/sis/gui/coverage/IsolineRenderer.java   |  2 +-
 .../sis/gui/coverage/StyledRenderingData.java      |  2 +-
 .../apache/sis/gui/coverage/ViewAndControls.java   |  2 +-
 .../org/apache/sis/gui/dataset/ExpandableList.java |  2 +-
 .../org/apache/sis/gui/dataset/FeatureList.java    |  4 +-
 .../org/apache/sis/gui/dataset/FeatureLoader.java  |  2 +-
 .../org/apache/sis/gui/dataset/FeatureTable.java   |  4 +-
 .../org/apache/sis/gui/dataset/PathAction.java     |  2 +-
 .../apache/sis/gui/dataset/ResourceExplorer.java   |  6 +-
 .../org/apache/sis/gui/dataset/ResourceItem.java   |  6 +-
 .../org/apache/sis/gui/dataset/ResourceTree.java   |  4 +-
 .../java/org/apache/sis/gui/map/MapCanvas.java     | 10 +--
 .../org/apache/sis/gui/map/OperationFinder.java    |  2 +-
 .../java/org/apache/sis/gui/map/StatusBar.java     | 12 +--
 .../org/apache/sis/gui/map/ValuesFormatter.java    |  2 +-
 .../sis/gui/metadata/IdentificationInfo.java       |  2 +-
 .../apache/sis/gui/metadata/MetadataSummary.java   |  2 +-
 .../org/apache/sis/gui/metadata/MetadataTree.java  |  2 +-
 .../sis/gui/metadata/RepresentationInfo.java       |  2 +-
 .../sis/gui/metadata/StandardMetadataTree.java     |  2 +-
 .../apache/sis/gui/referencing/AuthorityCodes.java |  4 +-
 .../gui/referencing/RecentReferenceSystems.java    |  8 +-
 .../apache/sis/internal/gui/DataStoreOpener.java   |  6 +-
 .../apache/sis/internal/gui/ExceptionReporter.java |  8 +-
 .../org/apache/sis/internal/gui/Resources.java     | 22 +++---
 .../apache/sis/internal/gui/Resources.properties   | 18 ++---
 .../internal/gui/control/ColorColumnHandler.java   |  2 +-
 .../sis/internal/gui/control/FormatApplicator.java |  2 +-
 .../org/apache/sis/internal/setup/FXFinder.java    |  8 +-
 .../org/apache/sis/internal/setup/Inflater.java    |  2 +-
 .../java/org/apache/sis/internal/setup/Wizard.java | 12 +--
 .../java/org/apache/sis/openoffice/CalcAddins.java |  2 +-
 .../org/apache/sis/openoffice/Registration.java    |  2 +-
 .../org/apache/sis/openoffice/Transformer.java     |  2 +-
 .../apache/sis/cloud/aws/internal/Resources.java   |  6 +-
 .../sis/cloud/aws/internal/Resources.properties    |  4 +-
 .../apache/sis/cloud/aws/s3/CachedByteChannel.java |  2 +-
 .../org/apache/sis/cloud/aws/s3/FileService.java   |  4 +-
 .../java/org/apache/sis/cloud/aws/s3/KeyPath.java  |  8 +-
 .../apache/sis/cloud/aws/s3/ObjectAttributes.java  |  4 +-
 core/sis-build-helper/pom.xml                      |  2 +-
 .../org/apache/sis/internal/book/Assembler.java    |  2 +-
 .../apache/sis/internal/book/CodeColorizer.java    |  6 +-
 .../org/apache/sis/internal/doclet/Doclet.java     |  2 +-
 .../org/apache/sis/internal/doclet/Preformat.java  |  2 +-
 .../org/apache/sis/internal/doclet/Taglet.java     |  2 +-
 .../apache/sis/internal/maven/JarCollector.java    |  4 +-
 .../util/resources/IndexedResourceCompiler.java    |  4 +-
 .../sis/util/resources/ResourceCompilerMojo.java   |  2 +-
 .../src/main/java/org/apache/sis/cql/CQL.java      |  2 +-
 .../main/java/org/apache/sis/cql/CQLException.java |  2 +-
 .../org/apache/sis/cql/FilterToCQLVisitor.java     |  4 +-
 .../org/apache/sis/coverage/BandedCoverage.java    |  4 +-
 .../java/org/apache/sis/coverage/Category.java     |  6 +-
 .../java/org/apache/sis/coverage/CategoryList.java | 22 +++---
 .../org/apache/sis/coverage/ConvertedRange.java    |  2 +-
 .../coverage/IllegalSampleDimensionException.java  |  2 +-
 .../org/apache/sis/coverage/RegionOfInterest.java  |  2 +-
 .../org/apache/sis/coverage/SampleDimension.java   | 26 +++----
 .../sis/coverage/grid/BufferedGridCoverage.java    |  2 +-
 .../sis/coverage/grid/ConvertedGridCoverage.java   |  8 +-
 .../coverage/grid/CoordinateOperationFinder.java   | 12 +--
 .../apache/sis/coverage/grid/DefaultEvaluator.java | 10 +--
 .../apache/sis/coverage/grid/DimensionReducer.java |  8 +-
 .../apache/sis/coverage/grid/DomainLinearizer.java |  4 +-
 .../apache/sis/coverage/grid/EvaluatorWrapper.java |  2 +-
 .../coverage/grid/FractionalGridCoordinates.java   | 10 +--
 .../org/apache/sis/coverage/grid/GridCoverage.java |  4 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |  8 +-
 .../sis/coverage/grid/GridCoverageBuilder.java     |  8 +-
 .../sis/coverage/grid/GridCoverageProcessor.java   | 14 ++--
 .../apache/sis/coverage/grid/GridDerivation.java   | 22 +++---
 .../org/apache/sis/coverage/grid/GridExtent.java   | 14 ++--
 .../apache/sis/coverage/grid/GridExtentCRS.java    |  4 +-
 .../org/apache/sis/coverage/grid/GridGeometry.java | 26 +++----
 .../apache/sis/coverage/grid/ImageRenderer.java    | 10 +--
 .../grid/IncompleteGridGeometryException.java      |  2 +-
 .../sis/coverage/grid/ResampledGridCoverage.java   | 16 ++--
 .../apache/sis/coverage/grid/SliceGeometry.java    |  6 +-
 .../apache/sis/feature/AbstractAssociation.java    |  2 +-
 .../org/apache/sis/feature/AbstractAttribute.java  |  2 +-
 .../org/apache/sis/feature/AbstractFeature.java    | 14 ++--
 .../org/apache/sis/feature/AbstractOperation.java  |  4 +-
 .../apache/sis/feature/CharacteristicTypeMap.java  |  2 +-
 .../apache/sis/feature/DefaultAssociationRole.java |  2 +-
 .../apache/sis/feature/DefaultAttributeType.java   |  2 +-
 .../org/apache/sis/feature/DefaultFeatureType.java |  4 +-
 .../java/org/apache/sis/feature/DenseFeature.java  |  6 +-
 .../org/apache/sis/feature/EnvelopeOperation.java  |  4 +-
 .../java/org/apache/sis/feature/FeatureFormat.java |  2 +-
 .../sis/feature/FeatureOperationException.java     |  2 +-
 .../org/apache/sis/feature/FeatureOperations.java  |  6 +-
 .../main/java/org/apache/sis/feature/Features.java |  2 +-
 .../java/org/apache/sis/feature/FieldType.java     |  4 +-
 .../apache/sis/feature/MultiValuedAssociation.java |  4 +-
 .../apache/sis/feature/MultiValuedAttribute.java   |  4 +-
 .../java/org/apache/sis/feature/PropertyView.java  |  2 +-
 .../java/org/apache/sis/feature/SparseFeature.java |  6 +-
 .../apache/sis/feature/StringJoinOperation.java    |  4 +-
 .../java/org/apache/sis/feature/Validator.java     |  4 +-
 .../apache/sis/feature/builder/AttributeRole.java  |  8 +-
 .../sis/feature/builder/AttributeTypeBuilder.java  | 12 +--
 .../feature/builder/CharacteristicTypeBuilder.java |  6 +-
 .../sis/feature/builder/FeatureTypeBuilder.java    |  6 +-
 .../sis/feature/builder/OperationWrapper.java      |  2 +-
 .../apache/sis/feature/builder/TypeBuilder.java    |  2 +-
 .../org/apache/sis/filter/AssociationValue.java    |  4 +-
 .../java/org/apache/sis/filter/BinaryFunction.java | 14 ++--
 .../apache/sis/filter/BinaryGeometryFilter.java    |  2 +-
 .../org/apache/sis/filter/BinarySpatialFilter.java |  2 +-
 .../org/apache/sis/filter/ComparisonFilter.java    |  4 +-
 .../org/apache/sis/filter/ConvertFunction.java     |  6 +-
 .../apache/sis/filter/DefaultFilterFactory.java    |  2 +-
 .../java/org/apache/sis/filter/DistanceFilter.java |  2 +-
 .../java/org/apache/sis/filter/FilterNode.java     |  2 +-
 .../java/org/apache/sis/filter/LeafExpression.java |  4 +-
 .../java/org/apache/sis/filter/Optimization.java   |  6 +-
 .../java/org/apache/sis/filter/PropertyValue.java  |  6 +-
 .../java/org/apache/sis/filter/UnaryFunction.java  |  2 +-
 .../java/org/apache/sis/image/AnnotatedImage.java  |  6 +-
 .../java/org/apache/sis/image/BandedIterator.java  |  4 +-
 .../apache/sis/image/BandedSampleConverter.java    |  2 +-
 .../java/org/apache/sis/image/ComputedImage.java   |  4 +-
 .../java/org/apache/sis/image/ComputedTiles.java   |  2 +-
 .../main/java/org/apache/sis/image/DataType.java   |  4 +-
 .../java/org/apache/sis/image/ImageCombiner.java   |  4 +-
 .../java/org/apache/sis/image/ImageProcessor.java  | 18 ++---
 .../java/org/apache/sis/image/Interpolation.java   |  2 +-
 .../java/org/apache/sis/image/PlanarImage.java     |  2 +-
 .../java/org/apache/sis/image/PrefetchedImage.java |  2 +-
 .../java/org/apache/sis/image/RecoloredImage.java  |  4 +-
 .../java/org/apache/sis/image/ResampledImage.java  | 14 ++--
 .../java/org/apache/sis/image/ResamplingGrid.java  |  6 +-
 .../main/java/org/apache/sis/image/TileCache.java  |  2 +-
 .../main/java/org/apache/sis/image/Transferer.java |  4 +-
 .../java/org/apache/sis/image/Visualization.java   |  6 +-
 .../org/apache/sis/index/tree/NodeIterator.java    |  4 +-
 .../java/org/apache/sis/index/tree/PointTree.java  |  4 +-
 .../sis/internal/coverage/CompoundTransform.java   |  4 +-
 .../internal/coverage/CompoundTransformOf1D.java   |  2 +-
 .../sis/internal/coverage/CoverageCombiner.java    |  4 +-
 .../internal/coverage/j2d/ColorModelFactory.java   |  6 +-
 .../sis/internal/coverage/j2d/ColorModelType.java  |  2 +-
 .../sis/internal/coverage/j2d/Colorizer.java       |  8 +-
 .../internal/coverage/j2d/DeferredProperty.java    |  2 +-
 .../sis/internal/coverage/j2d/FillValues.java      |  2 +-
 .../sis/internal/coverage/j2d/ImageLayout.java     |  4 +-
 .../sis/internal/coverage/j2d/ImageUtilities.java  |  6 +-
 .../sis/internal/coverage/j2d/TileOpExecutor.java  |  8 +-
 .../sis/internal/coverage/j2d/TilePlaceholder.java |  4 +-
 .../sis/internal/feature/FeatureExpression.java    |  6 +-
 .../apache/sis/internal/feature/Geometries.java    | 10 +--
 .../sis/internal/feature/GeometryWrapper.java      | 32 ++++----
 .../sis/internal/feature/MovingFeatures.java       |  2 +-
 .../org/apache/sis/internal/feature/Resources.java | 38 ++++-----
 .../sis/internal/feature/Resources.properties      | 36 ++++-----
 .../internal/feature/SpatialOperationContext.java  |  4 +-
 .../apache/sis/internal/feature/j2d/Factory.java   |  2 +-
 .../apache/sis/internal/feature/j2d/Wrapper.java   |  4 +-
 .../apache/sis/internal/feature/jts/Factory.java   |  4 +-
 .../org/apache/sis/internal/feature/jts/JTS.java   | 16 ++--
 .../sis/internal/feature/jts/ShapeConverter.java   |  2 +-
 .../apache/sis/internal/feature/jts/Wrapper.java   | 12 +--
 .../apache/sis/internal/feature/package-info.java  |  2 +-
 .../sis/internal/filter/GeometryConverter.java     |  2 +-
 .../sis/internal/filter/sqlmm/ST_Transform.java    |  2 +-
 .../sis/internal/filter/sqlmm/SpatialFunction.java |  2 +-
 .../internal/processing/image/TiledProcess.java    |  2 +-
 .../sis/internal/processing/isoline/Isolines.java  |  4 +-
 .../sis/internal/processing/isoline/Joiner.java    |  2 +-
 .../sis/internal/processing/isoline/Tracer.java    |  6 +-
 .../org/apache/sis/coverage/CategoryListTest.java  |  2 +-
 .../apache/sis/coverage/grid/GridGeometryTest.java |  6 +-
 .../coverage/grid/ResampledGridCoverageTest.java   | 36 ++++-----
 .../apache/sis/feature/AbstractFeatureTest.java    |  2 +-
 .../sis/feature/DefaultAssociationRoleTest.java    |  4 +-
 .../apache/sis/feature/DefaultFeatureTypeTest.java | 14 ++--
 .../org/apache/sis/feature/FeatureTestCase.java    |  4 +-
 .../apache/sis/feature/PropertySingletonTest.java  |  2 +-
 .../java/org/apache/sis/image/ImageTestCase.java   |  4 +-
 .../org/apache/sis/image/ResamplingGridTest.java   |  6 +-
 .../apache/sis/index/tree/PointTreeNodeTest.java   |  2 +-
 .../sis/internal/coverage/j2d/ColorizerTest.java   |  4 +-
 .../coverage/j2d/SampleModelFactoryTest.java       |  2 +-
 .../apache/sis/internal/feature/jts/JTSTest.java   | 16 ++--
 .../internal/processing/isoline/IsolinesTest.java  | 14 ++--
 .../sis/internal/jaxb/AdapterReplacement.java      |  6 +-
 .../sis/internal/jaxb/ModifiableIdentifierMap.java |  4 +-
 .../sis/internal/jaxb/PrimitiveTypeProperties.java |  6 +-
 .../sis/internal/jaxb/SpecializedIdentifier.java   |  2 +-
 .../apache/sis/internal/jaxb/cat/CodeListUID.java  |  2 +-
 .../apache/sis/internal/jaxb/gco/GO_DateTime.java  |  2 +-
 .../sis/internal/jaxb/gco/GO_GenericName.java      |  2 +-
 .../sis/internal/jaxb/gco/ObjectReference.java     |  2 +-
 .../apache/sis/internal/jaxb/gco/PropertyType.java | 18 ++---
 .../org/apache/sis/internal/jaxb/gcx/Anchor.java   |  2 +-
 .../sis/internal/jaxb/geometry/package-info.java   |  2 +-
 .../org/apache/sis/internal/jaxb/gml/Measure.java  |  4 +-
 .../apache/sis/internal/jaxb/gml/MeasureList.java  |  2 +-
 .../apache/sis/internal/jaxb/gml/package-info.java |  2 +-
 .../org/apache/sis/internal/jaxb/lan/Country.java  |  2 +-
 .../apache/sis/internal/jaxb/lan/LanguageCode.java |  2 +-
 .../sis/internal/jaxb/lan/LocaleAndCharset.java    |  4 +-
 .../apache/sis/internal/jaxb/lan/TextGroup.java    |  2 +-
 .../sis/internal/jaxb/metadata/package-info.java   |  2 +-
 .../internal/jaxb/metadata/replace/Parameter.java  |  2 +-
 .../jaxb/metadata/replace/QualityParameter.java    |  2 +-
 .../jaxb/metadata/replace/ServiceParameter.java    |  2 +-
 .../jaxb/metadata/replace/package-info.java        |  2 +-
 .../apache/sis/internal/metadata/AxisNames.java    |  4 +-
 .../apache/sis/internal/metadata/ExcludedSet.java  |  2 +-
 .../apache/sis/internal/metadata/Identifiers.java  |  2 +-
 .../org/apache/sis/internal/metadata/Merger.java   |  4 +-
 .../apache/sis/internal/metadata/NameMeaning.java  |  2 +-
 .../sis/internal/metadata/ReferencingServices.java |  2 +-
 .../apache/sis/internal/metadata/Resources.java    |  2 +-
 .../apache/sis/internal/metadata/SensorType.java   |  2 +-
 .../metadata/legacy/LegacyPropertyAdapter.java     |  4 +-
 .../apache/sis/internal/metadata/sql/Dialect.java  |  4 +-
 .../sis/internal/metadata/sql/Initializer.java     |  4 +-
 .../sis/internal/metadata/sql/LocalDataSource.java |  2 +-
 .../sis/internal/metadata/sql/ScriptRunner.java    |  2 +-
 .../apache/sis/internal/simple/SimpleCitation.java |  2 +-
 .../org/apache/sis/internal/xml/XmlUtilities.java  |  4 +-
 .../org/apache/sis/metadata/AbstractMetadata.java  |  6 +-
 .../org/apache/sis/metadata/MetadataCopier.java    |  4 +-
 .../org/apache/sis/metadata/MetadataStandard.java  |  8 +-
 .../apache/sis/metadata/ModifiableMetadata.java    |  8 +-
 .../org/apache/sis/metadata/PropertyAccessor.java  |  6 +-
 .../apache/sis/metadata/PropertyComparator.java    |  6 +-
 .../sis/metadata/StandardImplementation.java       |  4 +-
 .../org/apache/sis/metadata/TitleProperty.java     |  2 +-
 .../java/org/apache/sis/metadata/TreeNode.java     | 22 +++---
 .../org/apache/sis/metadata/TreeNodeChildren.java  |  2 +-
 .../apache/sis/metadata/iso/DefaultMetadata.java   |  2 +-
 .../org/apache/sis/metadata/iso/ISOMetadata.java   |  2 +-
 .../sis/metadata/iso/acquisition/package-info.java |  2 +-
 .../sis/metadata/iso/citation/Citations.java       |  4 +-
 .../metadata/iso/citation/DefaultTelephone.java    |  4 +-
 .../sis/metadata/iso/citation/package-info.java    |  2 +-
 .../sis/metadata/iso/constraint/package-info.java  |  2 +-
 .../sis/metadata/iso/content/package-info.java     |  2 +-
 .../metadata/iso/distribution/DefaultFormat.java   |  4 +-
 .../metadata/iso/distribution/package-info.java    |  2 +-
 .../iso/extent/DefaultGeographicBoundingBox.java   |  8 +-
 .../iso/extent/DefaultSpatialTemporalExtent.java   |  2 +-
 .../metadata/iso/extent/DefaultTemporalExtent.java |  2 +-
 .../metadata/iso/extent/DefaultVerticalExtent.java |  4 +-
 .../apache/sis/metadata/iso/extent/Extents.java    |  2 +-
 .../sis/metadata/iso/extent/package-info.java      |  6 +-
 .../metadata/iso/identification/OperationName.java |  2 +-
 .../metadata/iso/identification/package-info.java  |  2 +-
 .../sis/metadata/iso/lineage/package-info.java     |  2 +-
 .../sis/metadata/iso/maintenance/package-info.java |  2 +-
 .../org/apache/sis/metadata/iso/package-info.java  |  2 +-
 .../sis/metadata/iso/quality/package-info.java     |  2 +-
 .../sis/metadata/iso/spatial/package-info.java     |  2 +-
 .../java/org/apache/sis/metadata/package-info.java |  4 +-
 .../apache/sis/metadata/sql/CachedStatement.java   |  6 +-
 .../org/apache/sis/metadata/sql/Dispatcher.java    |  2 +-
 .../org/apache/sis/metadata/sql/LookupInfo.java    |  2 +-
 .../apache/sis/metadata/sql/MetadataFallback.java  |  2 +-
 .../apache/sis/metadata/sql/MetadataSource.java    | 24 +++---
 .../apache/sis/metadata/sql/MetadataWriter.java    |  6 +-
 .../apache/sis/metadata/sql/TableHierarchy.java    |  2 +-
 .../java/org/apache/sis/util/iso/AbstractName.java |  2 +-
 .../org/apache/sis/util/iso/DefaultLocalName.java  |  4 +-
 .../org/apache/sis/util/iso/DefaultMemberName.java |  2 +-
 .../apache/sis/util/iso/DefaultNameFactory.java    |  2 +-
 .../org/apache/sis/util/iso/DefaultNameSpace.java  |  2 +-
 .../org/apache/sis/util/iso/DefaultRecord.java     |  4 +-
 .../apache/sis/util/iso/DefaultRecordSchema.java   |  2 +-
 .../org/apache/sis/util/iso/DefaultRecordType.java |  2 +-
 .../org/apache/sis/util/iso/DefaultScopedName.java |  2 +-
 .../org/apache/sis/util/iso/DefaultTypeName.java   |  8 +-
 .../main/java/org/apache/sis/util/iso/Names.java   |  4 +-
 .../org/apache/sis/util/iso/RecordDefinition.java  |  2 +-
 .../java/org/apache/sis/xml/IdentifierSpace.java   |  2 +-
 .../main/java/org/apache/sis/xml/InputFactory.java | 12 +--
 .../java/org/apache/sis/xml/MarshallerPool.java    |  4 +-
 .../main/java/org/apache/sis/xml/Namespaces.java   |  6 +-
 .../org/apache/sis/xml/NilInternationalString.java |  2 +-
 .../main/java/org/apache/sis/xml/NilObject.java    |  2 +-
 .../main/java/org/apache/sis/xml/NilReason.java    | 10 +--
 .../java/org/apache/sis/xml/OutputFactory.java     | 12 +--
 .../java/org/apache/sis/xml/ReferenceResolver.java |  6 +-
 .../java/org/apache/sis/xml/TransformedEvent.java  |  6 +-
 .../main/java/org/apache/sis/xml/Transformer.java  |  2 +-
 .../org/apache/sis/xml/TransformingNamespaces.java |  2 +-
 .../java/org/apache/sis/xml/ValueConverter.java    | 16 ++--
 .../src/main/java/org/apache/sis/xml/XLink.java    |  6 +-
 .../src/main/java/org/apache/sis/xml/XML.java      |  8 +-
 .../src/main/java/org/apache/sis/xml/XPointer.java |  2 +-
 .../org/apache/sis/metadata/sql/Citations.sql      |  2 +-
 .../internal/jaxb/lan/FreeTextMarshallingTest.java |  6 +-
 .../sis/internal/jaxb/lan/OtherLocalesTest.java    |  2 +-
 .../apache/sis/internal/xml/XmlUtilitiesTest.java  |  2 +-
 .../apache/sis/metadata/AbstractMetadataTest.java  |  2 +-
 .../java/org/apache/sis/metadata/HashCodeTest.java |  2 +-
 .../apache/sis/metadata/MetadataStandardTest.java  |  4 +-
 .../apache/sis/metadata/PropertyAccessorTest.java  | 14 ++--
 .../sis/metadata/PropertyConsistencyCheck.java     |  6 +-
 .../java/org/apache/sis/metadata/PrunerTest.java   |  2 +-
 .../java/org/apache/sis/metadata/TreeNodeTest.java |  2 +-
 .../org/apache/sis/metadata/TreeTableViewTest.java |  2 +-
 .../metadata/iso/citation/DefaultContactTest.java  |  4 +-
 .../sis/metadata/iso/extent/ExtentsTest.java       |  2 +-
 .../metadata/iso/quality/AbstractElementTest.java  |  4 +-
 .../sis/test/xml/AnnotationConsistencyCheck.java   |  2 +-
 .../apache/sis/test/xml/DocumentComparator.java    | 10 +--
 .../org/apache/sis/test/xml/PackageVerifier.java   |  2 +-
 .../org/apache/sis/test/xml/SchemaCompliance.java  |  2 +-
 .../apache/sis/util/iso/NameMarshallingTest.java   |  6 +-
 .../java/org/apache/sis/util/iso/NamesTest.java    |  2 +-
 .../apache/sis/xml/NilReasonMarshallingTest.java   |  2 +-
 .../java/org/apache/sis/xml/NilReasonTest.java     |  6 +-
 .../test/java/org/apache/sis/xml/XLinkTest.java    | 22 +++---
 .../org/apache/sis/internal/map/SEPortrayer.java   | 12 +--
 .../coverage/MultiResolutionCoverageLoader.java    |  6 +-
 .../sis/internal/map/coverage/RenderingData.java   |  6 +-
 .../main/java/org/apache/sis/portrayal/Canvas.java | 24 +++---
 .../org/apache/sis/portrayal/CanvasExtent.java     |  4 +-
 .../org/apache/sis/portrayal/CanvasFollower.java   |  6 +-
 .../java/org/apache/sis/portrayal/Observable.java  |  2 +-
 .../apache/sis/portrayal/TransformChangeEvent.java |  2 +-
 .../apache/sis/internal/gazetteer/Resources.java   |  4 +-
 .../sis/internal/gazetteer/Resources.properties    |  4 +-
 .../referencing/gazetteer/GazetteerException.java  |  2 +-
 .../referencing/gazetteer/GazetteerFactory.java    |  4 +-
 .../gazetteer/GeohashReferenceSystem.java          |  6 +-
 .../gazetteer/MilitaryGridReferenceSystem.java     | 12 +--
 .../gazetteer/ModifiableLocationType.java          |  2 +-
 .../gazetteer/GazetteerFactoryTest.java            |  2 +-
 .../sis/referencing/gazetteer/LocationViewer.java  |  6 +-
 .../gazetteer/MilitaryGridReferenceSystemTest.java |  2 +-
 .../sis/geometry/AbstractDirectPosition.java       |  2 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  |  2 +-
 .../org/apache/sis/geometry/ArrayEnvelope.java     |  2 +-
 .../org/apache/sis/geometry/CoordinateFormat.java  | 12 +--
 .../org/apache/sis/geometry/CurveExtremum.java     |  2 +-
 .../org/apache/sis/geometry/DirectPosition1D.java  |  2 +-
 .../org/apache/sis/geometry/DirectPosition2D.java  |  2 +-
 .../java/org/apache/sis/geometry/Envelope2D.java   | 16 ++--
 .../org/apache/sis/geometry/EnvelopeReducer.java   |  2 +-
 .../java/org/apache/sis/geometry/Envelopes.java    | 20 ++---
 .../apache/sis/geometry/GeneralDirectPosition.java |  2 +-
 .../org/apache/sis/geometry/GeneralEnvelope.java   | 12 +--
 .../org/apache/sis/geometry/ImmutableEnvelope.java |  4 +-
 .../java/org/apache/sis/geometry/Shapes2D.java     |  2 +-
 .../apache/sis/geometry/WraparoundAdjustment.java  |  4 +-
 .../referencing/CC_GeneralOperationParameter.java  | 18 ++---
 .../jaxb/referencing/CC_GeneralParameterValue.java |  2 +-
 .../jaxb/referencing/CC_OperationMethod.java       |  4 +-
 .../referencing/CC_OperationParameterGroup.java    |  6 +-
 .../apache/sis/internal/jaxb/referencing/Code.java |  6 +-
 .../jaxb/referencing/SecondDefiningParameter.java  |  2 +-
 .../internal/jaxb/referencing/package-info.java    |  2 +-
 .../sis/internal/referencing/AxesMapper.java       |  2 +-
 .../sis/internal/referencing/AxisDirections.java   | 10 +--
 .../internal/referencing/CoordinateOperations.java |  2 +-
 .../internal/referencing/DefinitionVerifier.java   |  2 +-
 .../apache/sis/internal/referencing/Formulas.java  |  2 +-
 .../referencing/GeodeticObjectBuilder.java         | 16 ++--
 .../referencing/MathTransformsOrFactory.java       |  8 +-
 .../sis/internal/referencing/MergedProperties.java | 14 ++--
 .../internal/referencing/PositionTransformer.java  |  2 +-
 .../referencing/ReferencingFactoryContainer.java   |  8 +-
 .../internal/referencing/ReferencingUtilities.java |  2 +-
 .../apache/sis/internal/referencing/Resources.java | 56 +++++++-------
 .../sis/internal/referencing/Resources.properties  | 56 +++++++-------
 .../internal/referencing/ServicesForMetadata.java  |  6 +-
 .../internal/referencing/VerticalDatumTypes.java   |  6 +-
 .../sis/internal/referencing/WKTKeywords.java      |  2 +-
 .../sis/internal/referencing/WKTUtilities.java     |  6 +-
 .../internal/referencing/WraparoundApplicator.java |  6 +-
 .../referencing/j2d/AffineTransform2D.java         |  2 +-
 .../sis/internal/referencing/j2d/Bezier.java       | 14 ++--
 .../referencing/j2d/ImmutableAffineTransform.java  |  2 +-
 .../referencing/j2d/IntervalRectangle.java         |  2 +-
 .../referencing/j2d/LinearTransform2D.java         |  2 +-
 .../apache/sis/internal/referencing/j2d/Tile.java  |  4 +-
 .../internal/referencing/j2d/TileOrganizer.java    |  4 +-
 .../referencing/provider/AbridgedMolodensky.java   |  2 +-
 .../referencing/provider/AbstractProvider.java     |  2 +-
 .../provider/DatumShiftGridCompressed.java         |  2 +-
 .../referencing/provider/DatumShiftGridGroup.java  |  2 +-
 .../referencing/provider/DatumShiftGridLoader.java |  2 +-
 .../referencing/provider/Equirectangular.java      |  2 +-
 .../provider/FranceGeocentricInterpolation.java    |  4 +-
 .../referencing/provider/GeocentricAffine.java     |  6 +-
 .../GeocentricAffineBetweenGeographic.java         |  2 +-
 .../referencing/provider/GeodeticOperation.java    |  4 +-
 .../provider/GeographicAndVerticalOffsets.java     |  2 +-
 .../referencing/provider/LambertConformal2SP.java  |  2 +-
 .../referencing/provider/MapProjection.java        |  2 +-
 .../internal/referencing/provider/Mercator2SP.java |  4 +-
 .../internal/referencing/provider/Molodensky.java  |  4 +-
 .../sis/internal/referencing/provider/NTv2.java    |  2 +-
 .../referencing/provider/NorthPoleRotation.java    |  2 +-
 .../referencing/provider/PolarStereographicB.java  |  2 +-
 .../referencing/provider/PseudoSinusoidal.java     |  2 +-
 .../referencing/provider/SouthPoleRotation.java    |  2 +-
 .../internal/referencing/provider/Wraparound.java  |  2 +-
 .../provider/ZonedTransverseMercator.java          |  2 +-
 .../java/org/apache/sis/io/wkt/AbstractParser.java | 12 +--
 .../java/org/apache/sis/io/wkt/Convention.java     |  2 +-
 .../main/java/org/apache/sis/io/wkt/Element.java   |  8 +-
 .../org/apache/sis/io/wkt/FormattableObject.java   | 14 ++--
 .../main/java/org/apache/sis/io/wkt/Formatter.java | 14 ++--
 .../apache/sis/io/wkt/GeodeticObjectParser.java    | 78 +++++++++----------
 .../org/apache/sis/io/wkt/MathTransformParser.java | 24 +++---
 .../org/apache/sis/io/wkt/SingletonElement.java    |  2 +-
 .../java/org/apache/sis/io/wkt/StoredTree.java     |  2 +-
 .../main/java/org/apache/sis/io/wkt/Symbols.java   |  4 +-
 .../java/org/apache/sis/io/wkt/Transliterator.java |  4 +-
 .../sis/io/wkt/UnformattableObjectException.java   |  6 +-
 .../sis/io/wkt/UnparsableObjectException.java      |  6 +-
 .../java/org/apache/sis/io/wkt/VerticalInfo.java   |  6 +-
 .../java/org/apache/sis/io/wkt/WKTDictionary.java  |  8 +-
 .../main/java/org/apache/sis/io/wkt/WKTFormat.java |  8 +-
 .../main/java/org/apache/sis/io/wkt/Warnings.java  |  4 +-
 .../sis/parameter/AbstractParameterDescriptor.java |  2 +-
 .../sis/parameter/DefaultParameterDescriptor.java  |  8 +-
 .../parameter/DefaultParameterDescriptorGroup.java |  2 +-
 .../sis/parameter/DefaultParameterValue.java       |  8 +-
 .../sis/parameter/DefaultParameterValueGroup.java  |  2 +-
 .../sis/parameter/MapProjectionParameters.java     |  4 +-
 .../org/apache/sis/parameter/ParameterBuilder.java |  8 +-
 .../org/apache/sis/parameter/ParameterFormat.java  |  6 +-
 .../apache/sis/parameter/ParameterValueList.java   |  4 +-
 .../java/org/apache/sis/parameter/Parameters.java  |  2 +-
 .../org/apache/sis/parameter/TensorParameters.java |  6 +-
 .../sis/parameter/UnmodifiableParameterValue.java  |  2 +-
 .../parameter/UnmodifiableParameterValueGroup.java |  2 +-
 .../java/org/apache/sis/parameter/Verifier.java    |  2 +-
 .../org/apache/sis/parameter/package-info.java     |  2 +-
 .../sis/referencing/AbstractIdentifiedObject.java  | 14 ++--
 .../sis/referencing/AbstractReferenceSystem.java   |  2 +-
 .../java/org/apache/sis/referencing/Builder.java   | 14 ++--
 .../main/java/org/apache/sis/referencing/CRS.java  | 16 ++--
 .../java/org/apache/sis/referencing/CommonCRS.java |  2 +-
 .../sis/referencing/EPSGFactoryFallback.java       |  4 +-
 .../referencing/EllipsoidalHeightSeparator.java    |  8 +-
 .../sis/referencing/GeodesicsOnEllipsoid.java      |  6 +-
 .../apache/sis/referencing/GeodeticCalculator.java | 38 ++++-----
 .../apache/sis/referencing/GeodeticException.java  |  2 +-
 .../apache/sis/referencing/IdentifiedObjects.java  |  8 +-
 .../sis/referencing/ImmutableIdentifier.java       |  6 +-
 .../org/apache/sis/referencing/NameIterator.java   |  2 +-
 .../apache/sis/referencing/NamedIdentifier.java    |  6 +-
 .../sis/referencing/StandardDefinitions.java       |  4 +-
 .../apache/sis/referencing/crs/AbstractCRS.java    |  4 +-
 .../sis/referencing/crs/AbstractDerivedCRS.java    |  4 +-
 .../apache/sis/referencing/crs/ConversionKeys.java |  6 +-
 .../sis/referencing/crs/DefaultCompoundCRS.java    |  2 +-
 .../sis/referencing/crs/DefaultDerivedCRS.java     |  6 +-
 .../sis/referencing/crs/DefaultEngineeringCRS.java |  2 +-
 .../sis/referencing/crs/DefaultGeocentricCRS.java  |  2 +-
 .../sis/referencing/crs/DefaultGeodeticCRS.java    |  6 +-
 .../sis/referencing/crs/DefaultGeographicCRS.java  |  2 +-
 .../sis/referencing/crs/DefaultImageCRS.java       |  2 +-
 .../sis/referencing/crs/DefaultParametricCRS.java  |  2 +-
 .../sis/referencing/crs/DefaultProjectedCRS.java   |  2 +-
 .../sis/referencing/crs/DefaultTemporalCRS.java    |  6 +-
 .../sis/referencing/crs/DefaultVerticalCRS.java    |  2 +-
 .../org/apache/sis/referencing/cs/AbstractCS.java  |  4 +-
 .../java/org/apache/sis/referencing/cs/Codes.java  |  2 +-
 .../sis/referencing/cs/CoordinateSystems.java      |  4 +-
 .../apache/sis/referencing/cs/DefaultAffineCS.java |  2 +-
 .../sis/referencing/cs/DefaultCartesianCS.java     |  2 +-
 .../sis/referencing/cs/DefaultCompoundCS.java      |  2 +-
 .../cs/DefaultCoordinateSystemAxis.java            |  8 +-
 .../sis/referencing/cs/DefaultCylindricalCS.java   |  2 +-
 .../sis/referencing/cs/DefaultEllipsoidalCS.java   |  2 +-
 .../apache/sis/referencing/cs/DefaultLinearCS.java |  2 +-
 .../sis/referencing/cs/DefaultParametricCS.java    |  2 +-
 .../apache/sis/referencing/cs/DefaultPolarCS.java  |  2 +-
 .../sis/referencing/cs/DefaultSphericalCS.java     |  2 +-
 .../apache/sis/referencing/cs/DefaultTimeCS.java   |  2 +-
 .../sis/referencing/cs/DefaultUserDefinedCS.java   |  2 +-
 .../sis/referencing/cs/DefaultVerticalCS.java      |  2 +-
 .../org/apache/sis/referencing/cs/Normalizer.java  |  2 +-
 .../sis/referencing/datum/AbstractDatum.java       |  2 +-
 .../sis/referencing/datum/BursaWolfParameters.java |  2 +-
 .../sis/referencing/datum/DatumShiftGrid.java      |  4 +-
 .../sis/referencing/datum/DefaultEllipsoid.java    |  6 +-
 .../referencing/datum/DefaultEngineeringDatum.java |  2 +-
 .../referencing/datum/DefaultGeodeticDatum.java    |  8 +-
 .../sis/referencing/datum/DefaultImageDatum.java   |  2 +-
 .../referencing/datum/DefaultParametricDatum.java  |  2 +-
 .../referencing/datum/DefaultPrimeMeridian.java    |  4 +-
 .../referencing/datum/DefaultTemporalDatum.java    |  2 +-
 .../referencing/datum/DefaultVerticalDatum.java    |  4 +-
 .../referencing/factory/AuthorityFactoryProxy.java |  4 +-
 .../factory/CommonAuthorityFactory.java            |  6 +-
 .../factory/ConcurrentAuthorityFactory.java        | 14 ++--
 .../factory/GeodeticAuthorityFactory.java          | 82 ++++++++++----------
 .../referencing/factory/GeodeticObjectFactory.java |  6 +-
 .../factory/IdentifiedObjectFinder.java            |  4 +-
 .../referencing/factory/IdentifiedObjectSet.java   |  2 +-
 .../factory/MissingFactoryResourceException.java   |  4 +-
 .../factory/MultiAuthoritiesFactory.java           |  6 +-
 .../factory/UnavailableFactoryException.java       |  6 +-
 .../sis/referencing/factory/package-info.java      |  2 +-
 .../referencing/factory/sql/AuthorityCodes.java    |  2 +-
 .../sis/referencing/factory/sql/BursaWolfInfo.java |  2 +-
 .../factory/sql/CoordinateOperationSet.java        |  2 +-
 .../referencing/factory/sql/EPSGDataAccess.java    | 20 ++---
 .../sis/referencing/factory/sql/EPSGFactory.java   |  6 +-
 .../sis/referencing/factory/sql/EPSGInstaller.java |  2 +-
 .../sis/referencing/factory/sql/SQLTranslator.java |  4 +-
 .../operation/AbstractCoordinateOperation.java     |  8 +-
 .../operation/AbstractSingleOperation.java         | 20 ++---
 .../operation/CoordinateOperationContext.java      |  4 +-
 .../operation/CoordinateOperationFinder.java       | 32 ++++----
 .../operation/CoordinateOperationRegistry.java     | 24 +++---
 .../operation/DefaultConcatenatedOperation.java    | 10 +--
 .../referencing/operation/DefaultConversion.java   |  8 +-
 .../DefaultCoordinateOperationFactory.java         |  6 +-
 .../operation/DefaultOperationMethod.java          | 14 ++--
 .../operation/DefaultPassThroughOperation.java     |  2 +-
 .../operation/DefaultTransformation.java           |  2 +-
 .../operation/InverseOperationMethod.java          |  2 +-
 .../referencing/operation/SubOperationInfo.java    |  6 +-
 .../operation/builder/LinearTransformBuilder.java  | 24 +++---
 .../referencing/operation/builder/Linearizer.java  |  4 +-
 .../operation/builder/LocalizationGridBuilder.java | 12 +--
 .../builder/LocalizationGridException.java         |  4 +-
 .../operation/builder/ProjectedTransformTry.java   |  4 +-
 .../operation/builder/ResidualGrid.java            |  4 +-
 .../operation/builder/TransformBuilder.java        |  4 +-
 .../operation/matrix/AffineTransforms2D.java       |  6 +-
 .../operation/matrix/GeneralMatrix.java            |  8 +-
 .../sis/referencing/operation/matrix/Matrices.java | 10 +--
 .../sis/referencing/operation/matrix/Matrix1.java  |  2 +-
 .../sis/referencing/operation/matrix/Matrix2.java  |  2 +-
 .../sis/referencing/operation/matrix/Matrix3.java  |  2 +-
 .../sis/referencing/operation/matrix/Matrix4.java  |  2 +-
 .../referencing/operation/matrix/MatrixSIS.java    |  2 +-
 .../matrix/MismatchedMatrixSizeException.java      |  2 +-
 .../matrix/NoninvertibleMatrixException.java       |  2 +-
 .../sis/referencing/operation/matrix/Solver.java   |  2 +-
 .../sis/referencing/operation/package-info.java    |  2 +-
 .../operation/projection/AlbersEqualArea.java      |  4 +-
 .../operation/projection/AuthalicConversion.java   |  2 +-
 .../operation/projection/AuthalicMercator.java     |  4 +-
 .../operation/projection/AzimuthalEquidistant.java |  4 +-
 .../operation/projection/CassiniSoldner.java       |  4 +-
 .../operation/projection/ConformalProjection.java  |  2 +-
 .../operation/projection/CylindricalEqualArea.java |  6 +-
 .../operation/projection/Initializer.java          |  6 +-
 .../projection/LambertAzimuthalEqualArea.java      |  6 +-
 .../projection/LambertConicConformal.java          |  8 +-
 .../operation/projection/LongitudeWraparound.java  |  4 +-
 .../referencing/operation/projection/Mercator.java | 10 +--
 .../operation/projection/MeridianArcBased.java     |  2 +-
 .../projection/ModifiedAzimuthalEquidistant.java   |  2 +-
 .../operation/projection/Mollweide.java            |  2 +-
 .../operation/projection/NormalizedProjection.java | 12 +--
 .../operation/projection/ObliqueMercator.java      |  4 +-
 .../operation/projection/ObliqueStereographic.java | 12 +--
 .../operation/projection/Orthographic.java         |  2 +-
 .../operation/projection/PolarStereographic.java   |  4 +-
 .../operation/projection/Polyconic.java            |  4 +-
 .../operation/projection/ProjectionException.java  |  2 +-
 .../operation/projection/SatelliteTracking.java    |  8 +-
 .../operation/projection/Sinusoidal.java           |  2 +-
 .../operation/projection/TransverseMercator.java   | 14 ++--
 .../operation/projection/ZonedGridSystem.java      |  4 +-
 .../operation/transform/AbstractMathTransform.java | 28 +++----
 .../transform/AbstractMathTransform1D.java         |  8 +-
 .../transform/AbstractMathTransform2D.java         |  8 +-
 .../operation/transform/ConcatenatedTransform.java |  6 +-
 .../operation/transform/ContextualParameters.java  |  4 +-
 .../operation/transform/DatumShiftTransform.java   |  2 +-
 .../transform/DefaultMathTransformFactory.java     | 18 ++---
 .../operation/transform/DomainDefinition.java      | 10 +--
 .../transform/EllipsoidToCentricTransform.java     |  6 +-
 .../transform/InterpolatedGeocentricTransform.java |  6 +-
 .../transform/InterpolatedMolodenskyTransform.java | 12 +--
 .../operation/transform/InterpolatedTransform.java | 24 +++---
 .../operation/transform/LinearTransform.java       |  4 +-
 .../operation/transform/MathTransformProvider.java |  2 +-
 .../operation/transform/MathTransforms.java        |  6 +-
 .../operation/transform/MolodenskyFormula.java     |  2 +-
 .../operation/transform/MolodenskyTransform.java   |  4 +-
 .../operation/transform/PassThroughTransform.java  |  6 +-
 .../operation/transform/PoleRotation.java          |  2 +-
 .../operation/transform/TransferFunction.java      |  2 +-
 .../operation/transform/TransformSeparator.java    |  8 +-
 .../operation/transform/WraparoundTransform.java   |  4 +-
 .../org/apache/sis/referencing/package-info.java   |  2 +-
 .../sis/referencing/factory/sql/EPSG_Finish.sql    |  2 +-
 .../org/apache/sis/geometry/EnvelopesTest.java     |  2 +-
 .../apache/sis/geometry/GeneralEnvelopeTest.java   |  4 +-
 .../java/org/apache/sis/geometry/Shapes2DTest.java |  2 +-
 .../org/apache/sis/geometry/TransformTestCase.java |  2 +-
 .../referencing/EllipsoidalHeightCombinerTest.java |  4 +-
 .../sis/internal/referencing/WKTKeywordsTest.java  |  2 +-
 .../internal/referencing/provider/AffineTest.java  |  2 +-
 .../referencing/provider/DatumShiftTestCase.java   |  6 +-
 .../FranceGeocentricInterpolationTest.java         |  6 +-
 .../internal/referencing/provider/NADCONTest.java  |  2 +-
 .../internal/referencing/provider/NTv2Test.java    |  2 +-
 .../org/apache/sis/io/wkt/ComparisonWithEPSG.java  |  2 +-
 .../java/org/apache/sis/io/wkt/ElementTest.java    |  6 +-
 .../sis/io/wkt/GeodeticObjectParserTest.java       |  2 +-
 .../org/apache/sis/io/wkt/WKTDictionaryTest.java   |  6 +-
 .../java/org/apache/sis/io/wkt/WKTFormatTest.java  |  2 +-
 .../java/org/apache/sis/io/wkt/package-info.txt    |  2 +-
 .../parameter/DefaultParameterDescriptorTest.java  |  6 +-
 .../parameter/DefaultParameterValueGroupTest.java  |  2 +-
 .../sis/parameter/DefaultParameterValueTest.java   |  4 +-
 .../org/apache/sis/parameter/ParametersTest.java   |  2 +-
 .../parameter/UnmodifiableParameterValueTest.java  |  2 +-
 .../sis/referencing/AuthorityFactoriesTest.java    |  2 +-
 .../java/org/apache/sis/referencing/CRSTest.java   |  8 +-
 .../sis/referencing/EPSGFactoryFallbackTest.java   | 16 ++--
 .../sis/referencing/GeodeticCalculatorTest.java    |  4 +-
 .../sis/referencing/ImmutableIdentifierTest.java   |  6 +-
 .../referencing/crs/DefaultCompoundCRSTest.java    |  2 +-
 .../referencing/crs/DefaultGeographicCRSTest.java  |  2 +-
 .../cs/DefaultCoordinateSystemAxisTest.java        |  2 +-
 .../referencing/cs/DefaultCylindricalCSTest.java   |  2 +-
 .../sis/referencing/cs/DefaultPolarCSTest.java     |  2 +-
 .../apache/sis/referencing/cs/HardCodedAxes.java   |  2 +-
 .../apache/sis/referencing/cs/NormalizerTest.java  |  2 +-
 .../referencing/datum/BursaWolfParametersTest.java |  2 +-
 .../datum/DefaultPrimeMeridianTest.java            |  2 +-
 .../datum/DefaultVerticalDatumTest.java            |  2 +-
 .../factory/ConcurrentAuthorityFactoryTest.java    |  2 +-
 .../referencing/factory/sql/EPSGFactoryTest.java   |  4 +-
 .../factory/sql/epsg/DataScriptFormatter.java      |  2 +-
 .../sis/referencing/factory/sql/epsg/package.html  |  2 +-
 .../referencing/geoapi/AuthorityFactoryTest.java   |  2 +-
 .../geoapi/ParameterizedTransformTest.java         |  8 +-
 .../operation/CoordinateOperationFinderTest.java   | 56 +++++++-------
 .../operation/CoordinateOperationRegistryTest.java | 20 ++---
 .../DefaultCoordinateOperationFactoryTest.java     | 16 ++--
 .../builder/LinearTransformBuilderTest.java        | 20 ++---
 .../operation/matrix/GeneralMatrixTest.java        |  2 +-
 .../operation/matrix/MatrixTestCase.java           | 10 +--
 .../operation/matrix/NonSquareMatrixTest.java      | 12 +--
 .../referencing/operation/matrix/SolverTest.java   |  2 +-
 .../operation/projection/AlbersEqualAreaTest.java  |  2 +-
 .../projection/LambertAzimuthalEqualAreaTest.java  |  2 +-
 .../projection/LambertConicConformalTest.java      |  2 +-
 .../projection/MapProjectionTestCase.java          |  4 +-
 .../operation/projection/MercatorTest.java         |  4 +-
 .../operation/projection/MeridianArcTest.java      |  2 +-
 .../operation/projection/PolyconicTest.java        |  2 +-
 .../transform/AbstractMathTransformTest.java       |  4 +-
 .../operation/transform/CartesianToPolarTest.java  | 24 +++---
 .../transform/CartesianToSphericalTest.java        | 12 +--
 .../transform/ConcatenatedTransformTest.java       |  8 +-
 .../transform/MathTransformFactoryMock.java        |  2 +-
 .../operation/transform/MathTransformWrapper.java  |  4 +-
 .../transform/OperationMethodSetTest.java          |  2 +-
 .../transform/PassThroughTransformTest.java        |  2 +-
 .../operation/transform/PolarToCartesianTest.java  | 24 +++---
 .../operation/transform/PoleRotationTest.java      | 20 ++---
 .../transform/ProjectiveTransformTest.java         |  4 +-
 .../operation/transform/PseudoTransform.java       |  4 +-
 .../transform/SphericalToCartesianTest.java        | 12 +--
 .../transform/TransformSeparatorTest.java          |  4 +-
 .../transform/WraparoundTransformTest.java         |  6 +-
 .../report/CoordinateReferenceSystems.java         |  4 +-
 .../sis/referencing/report/HTMLGenerator.java      |  2 +-
 .../sis/test/integration/ConsistencyTest.java      | 10 +--
 .../apache/sis/test/integration/MetadataTest.java  |  4 +-
 .../apache/sis/test/widget/SwingAssertions.java    |  2 +-
 .../sis/internal/converter/ArrayConverter.java     |  4 +-
 .../internal/converter/CharSequenceConverter.java  |  2 +-
 .../sis/internal/converter/ConverterRegistry.java  | 12 +--
 .../sis/internal/converter/FallbackConverter.java  |  8 +-
 .../sis/internal/converter/NumberConverter.java    |  2 +-
 .../sis/internal/converter/ObjectToString.java     |  2 +-
 .../sis/internal/converter/SystemConverter.java    |  8 +-
 .../sis/internal/converter/SystemRegistry.java     |  2 +-
 .../apache/sis/internal/system/DaemonThread.java   |  2 +-
 .../apache/sis/internal/system/OSGiActivator.java  |  2 +-
 .../org/apache/sis/internal/system/Shutdown.java   |  2 +-
 .../apache/sis/internal/system/SystemListener.java |  2 +-
 .../org/apache/sis/internal/system/Threads.java    |  2 +-
 .../org/apache/sis/internal/util/AbstractMap.java  | 10 +--
 .../java/org/apache/sis/internal/util/Bag.java     |  2 +-
 .../apache/sis/internal/util/CheckedArrayList.java |  2 +-
 .../apache/sis/internal/util/CheckedHashSet.java   |  2 +-
 .../java/org/apache/sis/internal/util/Cloner.java  | 10 +--
 .../apache/sis/internal/util/CollectionsExt.java   |  6 +-
 .../apache/sis/internal/util/DefinitionURI.java    |  2 +-
 .../org/apache/sis/internal/util/DoubleDouble.java | 30 ++++----
 .../apache/sis/internal/util/FinalFieldSetter.java |  4 +-
 .../sis/internal/util/LocalizedParseException.java |  6 +-
 .../apache/sis/internal/util/PropertyFormat.java   |  2 +-
 .../apache/sis/internal/util/SetOfUnknownSize.java |  6 +-
 .../sis/internal/util/StandardDateFormat.java      |  6 +-
 .../java/org/apache/sis/io/AppendableWriter.java   |  2 +-
 .../main/java/org/apache/sis/io/ClassFormat.java   |  2 +-
 .../java/org/apache/sis/io/CompoundFormat.java     |  2 +-
 .../org/apache/sis/io/IdentifiedObjectFormat.java  |  2 +-
 .../org/apache/sis/io/InvalidSeekException.java    |  2 +-
 .../main/java/org/apache/sis/io/LineAppender.java  |  2 +-
 .../main/java/org/apache/sis/io/TableAppender.java |  2 +-
 .../main/java/org/apache/sis/io/TabularFormat.java |  2 +-
 .../main/java/org/apache/sis/math/ArrayVector.java |  8 +-
 .../java/org/apache/sis/math/DecimalFunctions.java | 18 ++---
 .../main/java/org/apache/sis/math/Fraction.java    | 20 ++---
 .../java/org/apache/sis/math/FunctionProperty.java |  4 +-
 .../java/org/apache/sis/math/MathFunctions.java    |  8 +-
 .../java/org/apache/sis/math/PackedVector.java     |  2 +-
 .../java/org/apache/sis/math/RepeatedVector.java   |  2 +-
 .../java/org/apache/sis/math/SequenceVector.java   |  2 +-
 .../main/java/org/apache/sis/math/Statistics.java  |  6 +-
 .../src/main/java/org/apache/sis/math/Vector.java  | 32 ++++----
 .../java/org/apache/sis/measure/AbstractUnit.java  |  4 +-
 .../main/java/org/apache/sis/measure/Angle.java    |  2 +-
 .../java/org/apache/sis/measure/AngleFormat.java   | 14 ++--
 .../org/apache/sis/measure/ConventionalUnit.java   |  4 +-
 .../java/org/apache/sis/measure/FormatField.java   |  2 +-
 .../org/apache/sis/measure/LinearConverter.java    |  2 +-
 .../org/apache/sis/measure/MeasurementRange.java   |  8 +-
 .../java/org/apache/sis/measure/NumberRange.java   | 18 ++---
 .../java/org/apache/sis/measure/Quantities.java    |  4 +-
 .../main/java/org/apache/sis/measure/Range.java    |  4 +-
 .../java/org/apache/sis/measure/RangeFormat.java   | 12 +--
 .../java/org/apache/sis/measure/ScalarFactory.java |  2 +-
 .../apache/sis/measure/SexagesimalConverter.java   |  6 +-
 .../java/org/apache/sis/measure/SystemUnit.java    | 10 +--
 .../java/org/apache/sis/measure/UnitFormat.java    |  8 +-
 .../java/org/apache/sis/measure/UnitServices.java  |  2 +-
 .../main/java/org/apache/sis/measure/Units.java    | 22 +++---
 .../java/org/apache/sis/measure/ValueRange.java    |  2 +-
 .../src/main/java/org/apache/sis/setup/About.java  |  2 +-
 .../java/org/apache/sis/setup/Configuration.java   |  2 +-
 .../main/java/org/apache/sis/setup/OptionKey.java  |  2 +-
 .../apache/sis/setup/OptionalInstallations.java    |  2 +-
 .../java/org/apache/sis/util/ArgumentChecks.java   |  2 +-
 .../main/java/org/apache/sis/util/ArraysExt.java   | 22 +++---
 .../java/org/apache/sis/util/CharSequences.java    | 26 +++----
 .../main/java/org/apache/sis/util/Characters.java  |  8 +-
 .../src/main/java/org/apache/sis/util/Classes.java | 18 ++---
 .../java/org/apache/sis/util/ComparisonMode.java   |  2 +-
 .../apache/sis/util/CorruptedObjectException.java  |  2 +-
 .../sis/util/DefaultInternationalString.java       | 10 +--
 .../main/java/org/apache/sis/util/Disposable.java  |  2 +-
 .../org/apache/sis/util/LocalizedException.java    |  2 +-
 .../src/main/java/org/apache/sis/util/Numbers.java | 12 +--
 .../java/org/apache/sis/util/ObjectConverter.java  |  8 +-
 .../java/org/apache/sis/util/ObjectConverters.java |  2 +-
 .../sis/util/ResourceInternationalString.java      |  8 +-
 .../sis/util/UnconvertibleObjectException.java     |  2 +-
 .../org/apache/sis/util/UnknownNameException.java  |  2 +-
 .../util/UnsupportedImplementationException.java   |  2 +-
 .../main/java/org/apache/sis/util/Utilities.java   |  2 +-
 .../src/main/java/org/apache/sis/util/Version.java |  4 +-
 .../main/java/org/apache/sis/util/Workaround.java  |  2 +-
 .../java/org/apache/sis/util/collection/Cache.java |  4 +-
 .../apache/sis/util/collection/CodeListSet.java    |  4 +-
 .../org/apache/sis/util/collection/Containers.java | 14 ++--
 .../sis/util/collection/DefaultTreeTable.java      | 18 ++---
 .../sis/util/collection/DerivedIterator.java       |  2 +-
 .../org/apache/sis/util/collection/DerivedMap.java |  2 +-
 .../org/apache/sis/util/collection/DerivedSet.java |  2 +-
 .../sis/util/collection/FrequencySortedSet.java    |  4 +-
 .../apache/sis/util/collection/TableColumn.java    |  4 +-
 .../apache/sis/util/collection/TreeNodeList.java   | 12 +--
 .../org/apache/sis/util/collection/TreeTable.java  | 10 +--
 .../sis/util/collection/TreeTableFormat.java       |  8 +-
 .../org/apache/sis/util/collection/TreeTables.java |  4 +-
 .../org/apache/sis/util/collection/WeakEntry.java  |  2 +-
 .../apache/sis/util/collection/WeakHashSet.java    |  2 +-
 .../sis/util/collection/WeakValueHashMap.java      | 10 +--
 .../apache/sis/util/collection/package-info.java   |  4 +-
 .../java/org/apache/sis/util/logging/Logging.java  |  2 +-
 .../apache/sis/util/logging/MonolineFormatter.java |  4 +-
 .../java/org/apache/sis/util/resources/Errors.java | 90 +++++++++++-----------
 .../apache/sis/util/resources/Errors.properties    | 84 ++++++++++----------
 .../sis/util/resources/IndexedResourceBundle.java  |  4 +-
 .../org/apache/sis/util/resources/Messages.java    |  8 +-
 .../apache/sis/util/resources/Messages.properties  |  8 +-
 .../resources/ResourceInternationalString.java     |  2 +-
 .../org/apache/sis/util/resources/Vocabulary.java  |  2 +-
 .../internal/converter/NumberConverterTest.java    |  2 +-
 .../sis/internal/util/CheckedArrayListTest.java    | 10 +--
 .../internal/util/LocalizedParseExceptionTest.java |  2 +-
 .../java/org/apache/sis/io/EchoAppendable.java     |  2 +-
 .../java/org/apache/sis/io/TableAppenderTest.java  |  2 +-
 .../org/apache/sis/math/DecimalFunctionsTest.java  |  2 +-
 .../org/apache/sis/measure/AngleFormatTest.java    |  2 +-
 .../java/org/apache/sis/measure/PrefixesTest.java  |  4 +-
 .../sis/measure/SexagesimalConverterTest.java      |  4 +-
 .../org/apache/sis/measure/SystemUnitTest.java     |  6 +-
 .../org/apache/sis/measure/UnitFormatTest.java     |  2 +-
 .../java/org/apache/sis/measure/UnitsTest.java     |  4 +-
 .../java/org/apache/sis/setup/OptionKeyTest.java   |  2 +-
 .../src/test/java/org/apache/sis/test/Assert.java  |  2 +-
 .../test/java/org/apache/sis/test/DependsOn.java   |  2 +-
 .../java/org/apache/sis/test/DependsOnMethod.java  |  4 +-
 .../test/java/org/apache/sis/test/TestCase.java    |  2 +-
 .../test/java/org/apache/sis/test/TestSuite.java   |  2 +-
 .../java/org/apache/sis/test/TestUtilities.java    |  2 +-
 .../test/foreigner/SerializableTableColumn.java    |  2 +-
 .../java/org/apache/sis/test/package-info.java     |  2 +-
 .../java/org/apache/sis/util/CharactersTest.java   |  2 +-
 .../java/org/apache/sis/util/ExceptionsTest.java   |  8 +-
 .../org/apache/sis/util/collection/CacheTest.java  |  4 +-
 .../sis/util/collection/CodeListSetTest.java       |  4 +-
 .../sis/util/collection/DefaultTreeTableTest.java  |  2 +-
 .../sis/util/collection/WeakHashSetTest.java       |  2 +-
 .../sis/util/collection/WeakValueHashMapTest.java  |  4 +-
 ide-project/NetBeans/build.xml                     |  4 +-
 non-free/README                                    |  2 +-
 .../profile/fra/DirectReferenceSystemTest.java     |  2 +-
 .../apache/sis/internal/earth/netcdf/GCOM_C.java   |  4 +-
 .../apache/sis/internal/earth/netcdf/GCOM_W.java   |  4 +-
 .../apache/sis/storage/landsat/LandsatStore.java   |  2 +-
 .../apache/sis/storage/landsat/MetadataReader.java |  6 +-
 .../storage/landsat/doc-files/MetadataMapping.html |  2 +-
 .../sis/storage/landsat/MetadataReaderTest.java    |  2 +-
 .../apache/sis/internal/geotiff/Compression.java   |  2 +-
 .../org/apache/sis/internal/geotiff/Resources.java |  6 +-
 .../sis/internal/geotiff/Resources.properties      |  4 +-
 .../sis/internal/storage/inflater/CCITTRLE.java    |  4 +-
 .../storage/inflater/CompressionChannel.java       |  2 +-
 .../storage/inflater/HorizontalPredictor.java      |  4 +-
 .../sis/internal/storage/inflater/Inflater.java    |  4 +-
 .../apache/sis/internal/storage/inflater/LZW.java  | 10 +--
 .../sis/internal/storage/inflater/PackBits.java    |  4 +-
 .../internal/storage/inflater/PixelChannel.java    |  2 +-
 .../storage/inflater/PredictorChannel.java         |  2 +-
 .../apache/sis/internal/storage/inflater/ZIP.java  |  4 +-
 .../org/apache/sis/storage/geotiff/CRSBuilder.java | 32 ++++----
 .../org/apache/sis/storage/geotiff/DataSubset.java |  6 +-
 .../apache/sis/storage/geotiff/GeoKeysLoader.java  |  2 +-
 .../apache/sis/storage/geotiff/GeoTiffStore.java   |  6 +-
 .../sis/storage/geotiff/GridGeometryBuilder.java   |  6 +-
 .../sis/storage/geotiff/ImageFileDirectory.java    | 14 ++--
 .../apache/sis/storage/geotiff/Localization.java   |  2 +-
 .../apache/sis/storage/geotiff/NativeMetadata.java |  2 +-
 .../org/apache/sis/storage/geotiff/Reader.java     |  8 +-
 .../java/org/apache/sis/storage/geotiff/Type.java  | 26 +++----
 .../java/org/apache/sis/internal/netcdf/Axis.java  | 20 ++---
 .../org/apache/sis/internal/netcdf/CRSBuilder.java | 12 +--
 .../org/apache/sis/internal/netcdf/Convention.java |  6 +-
 .../org/apache/sis/internal/netcdf/DataType.java   |  2 +-
 .../org/apache/sis/internal/netcdf/Decoder.java    |  8 +-
 .../org/apache/sis/internal/netcdf/Dimension.java  |  2 +-
 .../sis/internal/netcdf/DiscreteSampling.java      |  2 +-
 .../org/apache/sis/internal/netcdf/FeatureSet.java |  8 +-
 .../java/org/apache/sis/internal/netcdf/Grid.java  |  8 +-
 .../apache/sis/internal/netcdf/GridMapping.java    |  6 +-
 .../org/apache/sis/internal/netcdf/Linearizer.java |  8 +-
 .../apache/sis/internal/netcdf/RasterResource.java |  6 +-
 .../org/apache/sis/internal/netcdf/Resources.java  | 26 +++----
 .../sis/internal/netcdf/Resources.properties       | 20 ++---
 .../org/apache/sis/internal/netcdf/Variable.java   | 16 ++--
 .../sis/internal/netcdf/impl/DimensionInfo.java    |  2 +-
 .../sis/internal/netcdf/impl/VariableInfo.java     |  6 +-
 .../sis/internal/netcdf/ucar/DecoderWrapper.java   |  2 +-
 .../sis/internal/netcdf/ucar/GridWrapper.java      |  6 +-
 .../sis/internal/netcdf/ucar/VariableWrapper.java  |  6 +-
 .../apache/sis/storage/netcdf/AttributeNames.java  |  2 +-
 .../apache/sis/storage/netcdf/MetadataReader.java  |  6 +-
 .../org/apache/sis/storage/netcdf/NetcdfStore.java |  4 +-
 .../sis/storage/netcdf/NetcdfStoreProvider.java    |  4 +-
 .../apache/sis/storage/netcdf/package-info.java    |  2 +-
 .../apache/sis/internal/sql/feature/Column.java    |  4 +-
 .../apache/sis/internal/sql/feature/Database.java  | 12 +--
 .../sis/internal/sql/feature/FeatureAdapter.java   |  4 +-
 .../sis/internal/sql/feature/FeatureAnalyzer.java  |  2 +-
 .../sis/internal/sql/feature/FeatureIterator.java  |  6 +-
 .../sis/internal/sql/feature/FeatureStream.java    |  8 +-
 .../sis/internal/sql/feature/GeometryGetter.java   |  2 +-
 .../sis/internal/sql/feature/InfoStatements.java   | 16 ++--
 .../sis/internal/sql/feature/QueryAnalyzer.java    |  2 +-
 .../apache/sis/internal/sql/feature/Relation.java  |  2 +-
 .../apache/sis/internal/sql/feature/Resources.java |  6 +-
 .../sis/internal/sql/feature/Resources.properties  |  4 +-
 .../sis/internal/sql/feature/SelectionClause.java  |  4 +-
 .../sql/feature/SelectionClauseWriter.java         |  4 +-
 .../sis/internal/sql/feature/TableReference.java   |  2 +-
 .../sis/internal/sql/feature/ValueGetter.java      |  2 +-
 .../apache/sis/internal/sql/postgis/Postgres.java  |  2 +-
 .../sis/internal/sql/postgis/RasterGetter.java     |  2 +-
 .../apache/sis/internal/stream/DeferredStream.java |  2 +-
 .../apache/sis/internal/stream/StreamWrapper.java  |  2 +-
 .../org/apache/sis/storage/sql/package-info.java   |  2 +-
 .../internal/sql/feature/GeometryGetterTest.java   |  2 +-
 .../org/apache/sis/storage/sql/SQLStoreTest.java   |  4 +-
 .../apache/sis/internal/storage/Capability.java    |  2 +-
 .../org/apache/sis/internal/storage/CodeType.java  |  6 +-
 .../sis/internal/storage/GridResourceWrapper.java  |  8 +-
 .../sis/internal/storage/MemoryGridResource.java   |  2 +-
 .../sis/internal/storage/MetadataBuilder.java      |  2 +-
 .../apache/sis/internal/storage/PRJDataStore.java  | 10 +--
 .../apache/sis/internal/storage/RangeArgument.java |  6 +-
 .../org/apache/sis/internal/storage/Resources.java | 42 +++++-----
 .../sis/internal/storage/Resources.properties      | 40 +++++-----
 .../apache/sis/internal/storage/StoreMetadata.java |  2 +-
 .../sis/internal/storage/StoreUtilities.java       |  8 +-
 .../sis/internal/storage/TiledGridCoverage.java    | 10 +--
 .../apache/sis/internal/storage/URIDataStore.java  |  8 +-
 .../internal/storage/WritableResourceSupport.java  |  8 +-
 .../org/apache/sis/internal/storage/csv/Store.java |  2 +-
 .../sis/internal/storage/esri/AsciiGridStore.java  |  8 +-
 .../sis/internal/storage/esri/CharactersView.java  |  4 +-
 .../sis/internal/storage/esri/RasterStore.java     |  6 +-
 .../sis/internal/storage/esri/RawRasterReader.java |  2 +-
 .../sis/internal/storage/esri/RawRasterStore.java  |  6 +-
 .../sis/internal/storage/esri/WritableStore.java   |  4 +-
 .../apache/sis/internal/storage/folder/Store.java  |  4 +-
 .../sis/internal/storage/folder/StoreProvider.java |  2 +-
 .../storage/folder/UnstructuredAggregate.java      |  2 +-
 .../sis/internal/storage/folder/WritableStore.java |  6 +-
 .../sis/internal/storage/folder/package-info.java  |  2 +-
 .../sis/internal/storage/image/WorldFileStore.java | 24 +++---
 .../sis/internal/storage/image/WritableStore.java  |  6 +-
 .../sis/internal/storage/io/ChannelData.java       | 10 +--
 .../sis/internal/storage/io/ChannelDataInput.java  | 16 ++--
 .../sis/internal/storage/io/ChannelDataOutput.java | 10 +--
 .../sis/internal/storage/io/ChannelFactory.java    | 14 ++--
 .../sis/internal/storage/io/DataTransfer.java      |  2 +-
 .../sis/internal/storage/io/IOUtilities.java       | 34 ++++----
 .../internal/storage/io/InputStreamAdapter.java    |  8 +-
 .../apache/sis/internal/storage/io/Markable.java   |  8 +-
 .../internal/storage/io/OutputStreamAdapter.java   |  6 +-
 .../internal/storage/io/RewindableLineReader.java  | 12 +--
 .../sis/internal/storage/wkt/StoreFormat.java      |  4 +-
 .../sis/internal/storage/xml/AbstractProvider.java |  2 +-
 .../sis/internal/storage/xml/MimeTypeDetector.java |  4 +-
 .../sis/storage/AbstractGridCoverageResource.java  |  2 +-
 .../org/apache/sis/storage/AbstractResource.java   |  8 +-
 .../apache/sis/storage/CanNotProbeException.java   |  4 +-
 .../sis/storage/ConcurrentReadException.java       |  4 +-
 .../sis/storage/ConcurrentWriteException.java      |  4 +-
 .../java/org/apache/sis/storage/CoverageQuery.java |  2 +-
 .../org/apache/sis/storage/CoverageSubset.java     |  4 +-
 .../main/java/org/apache/sis/storage/DataSet.java  |  2 +-
 .../java/org/apache/sis/storage/DataStore.java     |  8 +-
 .../sis/storage/DataStoreContentException.java     |  8 +-
 .../org/apache/sis/storage/DataStoreException.java | 14 ++--
 .../org/apache/sis/storage/DataStoreProvider.java  | 10 +--
 .../sis/storage/DataStoreReferencingException.java |  2 +-
 .../org/apache/sis/storage/DataStoreRegistry.java  |  2 +-
 .../java/org/apache/sis/storage/FeatureNaming.java |  6 +-
 .../java/org/apache/sis/storage/FeatureQuery.java  |  6 +-
 .../java/org/apache/sis/storage/FeatureSet.java    |  2 +-
 .../java/org/apache/sis/storage/FeatureSubset.java |  2 +-
 .../sis/storage/IllegalFeatureTypeException.java   |  4 +-
 .../sis/storage/IllegalOpenParameterException.java |  2 +-
 .../sis/storage/IncompatibleResourceException.java |  2 +-
 .../org/apache/sis/storage/ProbeInputStream.java   |  2 +-
 .../java/org/apache/sis/storage/ProbeResult.java   |  8 +-
 .../main/java/org/apache/sis/storage/Query.java    |  2 +-
 .../sis/storage/ReadOnlyStorageException.java      |  2 +-
 .../main/java/org/apache/sis/storage/Resource.java |  6 +-
 .../storage/ResourceAlreadyExistsException.java    |  2 +-
 .../org/apache/sis/storage/StorageConnector.java   | 16 ++--
 .../sis/storage/UnsupportedQueryException.java     |  2 +-
 .../sis/storage/UnsupportedStorageException.java   |  2 +-
 .../org/apache/sis/storage/WritableAggregate.java  |  2 +-
 .../org/apache/sis/storage/WritableFeatureSet.java |  2 +-
 .../sis/storage/WritableGridCoverageResource.java  |  4 +-
 .../storage/aggregate/ConcatenatedFeatureSet.java  |  2 +-
 .../aggregate/ConcatenatedGridCoverage.java        |  2 +-
 .../aggregate/ConcatenatedGridResource.java        |  2 +-
 .../sis/storage/aggregate/CoverageAggregator.java  | 14 ++--
 .../sis/storage/aggregate/DimensionSelector.java   |  2 +-
 .../sis/storage/aggregate/GridSliceLocator.java    |  2 +-
 .../sis/storage/aggregate/GroupAggregate.java      |  4 +-
 .../apache/sis/storage/aggregate/GroupByCRS.java   |  4 +-
 .../sis/storage/aggregate/GroupBySample.java       |  6 +-
 .../sis/storage/aggregate/JoinFeatureSet.java      |  6 +-
 .../sis/storage/aggregate/MergeStrategy.java       |  2 +-
 .../apache/sis/storage/event/StoreListeners.java   | 12 +--
 .../org/apache/sis/storage/tiling/TileStatus.java  |  2 +-
 .../internal/storage/esri/WritableStoreTest.java   |  4 +-
 .../sis/internal/storage/folder/StoreTest.java     |  4 +-
 .../sis/internal/storage/io/IOUtilitiesTest.java   | 32 ++++----
 .../storage/io/ImageInputStreamComparator.java     |  2 +-
 .../apache/sis/storage/DataStoreProviderTest.java  |  4 +-
 .../org/apache/sis/storage/FeatureQueryTest.java   |  2 +-
 .../org/apache/sis/storage/ProbeResultTest.java    |  2 +-
 .../apache/sis/storage/StorageConnectorTest.java   |  2 +-
 .../sis/test/storage/CoverageReadConsistency.java  |  6 +-
 .../apache/sis/test/storage/SubsampledImage.java   |  6 +-
 .../apache/sis/internal/storage/gpx/Metadata.java  |  2 +-
 .../apache/sis/internal/storage/gpx/Reader.java    |  6 +-
 .../apache/sis/internal/storage/gpx/Writer.java    |  2 +-
 .../internal/storage/xml/stream/OutputType.java    |  2 +-
 .../internal/storage/xml/stream/StaxDataStore.java | 10 +--
 .../internal/storage/xml/stream/StaxStreamIO.java  |  2 +-
 .../storage/xml/stream/StaxStreamReader.java       | 28 +++----
 .../storage/xml/stream/StaxStreamWriter.java       |  2 +-
 1011 files changed, 3004 insertions(+), 3004 deletions(-)

diff --git a/application/sis-console/src/main/java/org/apache/sis/console/AboutCommand.java b/application/sis-console/src/main/java/org/apache/sis/console/AboutCommand.java
index 80c6b47a04..d1e4e5c206 100644
--- a/application/sis-console/src/main/java/org/apache/sis/console/AboutCommand.java
+++ b/application/sis-console/src/main/java/org/apache/sis/console/AboutCommand.java
@@ -136,7 +136,7 @@ final class AboutCommand extends CommandRunner {
                 }
                 /*
                  * Logs a message telling how long it took to receive the reply.
-                 * Sometime the delay gives a hint about the server charge.
+                 * Sometimes the delay gives a hint about the server charge.
                  */
                 double delay = (System.nanoTime() - time) / (double) StandardDateFormat.NANOS_PER_SECOND;   // In seconds.
                 if (delay >= 0.1) {
diff --git a/application/sis-console/src/main/java/org/apache/sis/console/CommandRunner.java b/application/sis-console/src/main/java/org/apache/sis/console/CommandRunner.java
index 5134f9e701..11a0fb0314 100644
--- a/application/sis-console/src/main/java/org/apache/sis/console/CommandRunner.java
+++ b/application/sis-console/src/main/java/org/apache/sis/console/CommandRunner.java
@@ -56,7 +56,7 @@ abstract class CommandRunner {
     /**
      * The instance, used by {@link ResourcesDownloader} only.
      * We use this static field as a workaround for the fact that {@code ResourcesDownloader} is not
-     * instantiated by us, so we can not pass the {@code CommandRunner} instance to its constructor.
+     * instantiated by us, so we cannot pass the {@code CommandRunner} instance to its constructor.
      */
     static CommandRunner instance;
 
@@ -136,7 +136,7 @@ abstract class CommandRunner {
 
     /**
      * Copies the configuration of the given sub-command. This constructor is used
-     * only when a command needs to delegates part of its work to an other command.
+     * only when a command needs to delegates part of its work to another command.
      */
     CommandRunner(final CommandRunner parent) {
         this.commandName  = parent.commandName;
@@ -306,9 +306,9 @@ abstract class CommandRunner {
     }
 
     /**
-     * Prints the <cite>"Can not open …"</cite> error message followed by the message in the given exception.
+     * Prints the <cite>"Cannot open …"</cite> error message followed by the message in the given exception.
      *
-     * @param fileIndex  index in the {@link #files} list of the file that can not be opened.
+     * @param fileIndex  index in the {@link #files} list of the file that cannot be opened.
      * @param e          the exception which occurred.
      */
     final void canNotOpen(final int fileIndex, final Exception e) {
diff --git a/application/sis-console/src/main/java/org/apache/sis/console/IdentifierCommand.java b/application/sis-console/src/main/java/org/apache/sis/console/IdentifierCommand.java
index 91711569e6..1d0a2399ba 100644
--- a/application/sis-console/src/main/java/org/apache/sis/console/IdentifierCommand.java
+++ b/application/sis-console/src/main/java/org/apache/sis/console/IdentifierCommand.java
@@ -153,7 +153,7 @@ final class IdentifierCommand extends FormattedOutputCommand {
         String identifier = IdentifiedObjects.lookupURN(rs, null);
         if (identifier == null) {
             /*
-             * If we can not find an identifier matching the EPSG or WMS definitions,
+             * If we cannot find an identifier matching the EPSG or WMS definitions,
              * look at the identifiers declared in the CRS and verify their validity.
              */
             for (final Identifier id : rs.getIdentifiers()) {
diff --git a/application/sis-console/src/main/java/org/apache/sis/console/ResourcesDownloader.java b/application/sis-console/src/main/java/org/apache/sis/console/ResourcesDownloader.java
index 5f230bc607..d43f2c728b 100644
--- a/application/sis-console/src/main/java/org/apache/sis/console/ResourcesDownloader.java
+++ b/application/sis-console/src/main/java/org/apache/sis/console/ResourcesDownloader.java
@@ -94,7 +94,7 @@ public class ResourcesDownloader extends OptionalInstallations {
 
     /**
      * Returns the name of the authority who provides data under non-Apache terms of use.
-     * If this {@code ResourcesDownloader} can not ask user's agreement because there is
+     * If this {@code ResourcesDownloader} cannot ask user's agreement because there is
      * no {@link Console} attached to the current Java virtual machine, then this method
      * returns an empty set.
      *
diff --git a/application/sis-console/src/main/java/org/apache/sis/console/package-info.java b/application/sis-console/src/main/java/org/apache/sis/console/package-info.java
index a4df08cce3..e2a70eaf41 100644
--- a/application/sis-console/src/main/java/org/apache/sis/console/package-info.java
+++ b/application/sis-console/src/main/java/org/apache/sis/console/package-info.java
@@ -40,7 +40,7 @@
  *   java org.apache.sis.console.Command about localhost:1099
  * }
  *
- * The {@code com.sun.management.jmxremote.local.only} property is recommended if the remote JVM is an other
+ * The {@code com.sun.management.jmxremote.local.only} property is recommended if the remote JVM is another
  * JVM instance running on the local machine. Otherwise this property can be omitted for debugging purpose.
  * For production environment, see the security settings documented on the
  * <a href="https://docs.oracle.com/en/java/javase/18/management/monitoring-and-management-using-jmx-technology.html">Monitoring
diff --git a/application/sis-console/src/main/resources/org/apache/sis/console/IdentifierState.properties b/application/sis-console/src/main/resources/org/apache/sis/console/IdentifierState.properties
index bf742b19b2..1d5c2689a5 100644
--- a/application/sis-console/src/main/resources/org/apache/sis/console/IdentifierState.properties
+++ b/application/sis-console/src/main/resources/org/apache/sis/console/IdentifierState.properties
@@ -3,4 +3,4 @@
 APPROXIMATE=Identified object has minor numerical differences compared to definition provided by authority.
 AXIS_ORDER=Identified object matches definition provided by authority except for coordinate system axes.
 MISMATCH=Identifier associated to an object that does not match the definition provided by authority.
-UNKNOWN=Unknown identifier. Exactness can not be verified.
+UNKNOWN=Unknown identifier. Exactness cannot be verified.
diff --git a/application/sis-javafx/pom.xml b/application/sis-javafx/pom.xml
index c5219fd2aa..93549d369d 100644
--- a/application/sis-javafx/pom.xml
+++ b/application/sis-javafx/pom.xml
@@ -126,7 +126,7 @@
   <!-- ===========================================================
            Dependencies
            All JavaFX dependencies must be under "provided" scope.
-           We can not redistribute them since they are under GPL +
+           We cannot redistribute them since they are under GPL +
            classpath exception.
        =========================================================== -->
   <dependencies>
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
index 9f29c31972..d48ff2497f 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/DataViewer.java
@@ -282,7 +282,7 @@ public class DataViewer extends Application {
 
     /**
      * Invoked when the user selects "File" ▶ "Open" menu.
-     * Users can select an arbitrary amount of files or directories.
+     * Users can select an arbitrary number of files or directories.
      * The effect is the same as dragging the files in the "resources tree" window.
      */
     private void showOpenFileDialog() {
@@ -356,7 +356,7 @@ public class DataViewer extends Application {
 
     /**
      * Invoked when the application should stop. No SIS application can be used after
-     * this method has been invoked (i.e. the application can not be restarted).
+     * this method has been invoked (i.e. the application cannot be restarted).
      *
      * @throws Exception if an error occurred, for example while closing a data store.
      */
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CellFormat.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CellFormat.java
index 7e416e3489..19fff83da7 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CellFormat.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CellFormat.java
@@ -81,7 +81,7 @@ final class CellFormat extends SimpleStringProperty {
      * that the same value is repeated for many cells, especially in area containing fill or missing values.
      * If the value is the same, we will reuse the {@link #lastValueAsText}.
      *
-     * <p>Note: the use of {@code double} is sufficient since rendered images can not store {@code long} values,
+     * <p>Note: the use of {@code double} is sufficient since rendered images cannot store {@code long} values,
      * so there is no precision lost that we could have with conversions from {@code long} to {@code double}.</p>
      */
     private double lastValue;
@@ -198,7 +198,7 @@ final class CellFormat extends SimpleStringProperty {
             return null;
         }
         /*
-         * Create a few pre-defined choices of patterns with various number of fraction digits.
+         * Create a few predefined choices of patterns with various number of fraction digits.
          */
         final int min = cellFormat.getMinimumFractionDigits();
         final int max = cellFormat.getMaximumFractionDigits();
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
index 448dba6e0d..c441ced897 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
@@ -451,7 +451,7 @@ public class CoverageCanvas extends MapCanvasAWT {
      * @param  anchor    the point to keep at fixed display coordinates, expressed in any compatible CRS.
      *                   If {@code null}, defaults to {@linkplain #getPointOfInterest(boolean) point of interest}.
      *                   If non-null, the anchor must be associated to a CRS.
-     * @throws RenderException if the objective CRS can not be set to the given value.
+     * @throws RenderException if the objective CRS cannot be set to the given value.
      *
      * @hidden
      */
@@ -471,7 +471,7 @@ public class CoverageCanvas extends MapCanvasAWT {
      * Sets canvas properties from the given grid geometry.
      *
      * @param  newValue  the grid geometry from which to get new canvas properties.
-     * @throws RenderException if the given grid geometry can not be converted to canvas properties.
+     * @throws RenderException if the given grid geometry cannot be converted to canvas properties.
      *
      * @hidden
      */
@@ -956,7 +956,7 @@ public class CoverageCanvas extends MapCanvasAWT {
                 /*
                  * Launch isolines creation if requested. We do this operation before `prefetch(…)`
                  * because it will be executed in background threads while we process the coverage.
-                 * We can not invoke it sooner because it needs some `resampleAndConvert(…)` results.
+                 * We cannot invoke it sooner because it needs some `resampleAndConvert(…)` results.
                  */
                 final Future<Isolines[]> newIsolines = data.generate(isolines);
                 prefetchedImage = data.prefetch(resampledImage, resampledToDisplay, displayBounds);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
index bae6ea669e..266910baa9 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageControls.java
@@ -89,7 +89,7 @@ final class CoverageControls extends ViewAndControls {
     /**
      * Creates a new set of coverage controls.
      *
-     * @param  owner   the widget which creates this view. Can not be null.
+     * @param  owner   the widget which creates this view. Cannot be null.
      * @param  window  the handler of the window which will show the coverage explorer.
      */
     CoverageControls(final CoverageExplorer owner, final WindowHandler window) {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
index 542cb90bcf..572a0ede53 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridControls.java
@@ -54,7 +54,7 @@ final class GridControls extends ViewAndControls {
     /**
      * Creates a new set of grid controls.
      *
-     * @param  owner  the widget which creates this view. Can not be null.
+     * @param  owner  the widget which creates this view. Cannot be null.
      */
     GridControls(final CoverageExplorer owner) {
         super(owner);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridError.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridError.java
index c801f799b7..9395662065 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridError.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridError.java
@@ -57,7 +57,7 @@ final class GridError extends VBox {
     private final String header;
 
     /**
-     * The area where to write the error message. The text said "can not fetch tile (x, y)"
+     * The area where to write the error message. The text said "cannot fetch tile (x, y)"
      * with tile indices, followed by the exception message (if any) on next line.
      */
     private final Label message;
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridSliceSelector.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridSliceSelector.java
index ba41db59f4..b27d334e36 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridSliceSelector.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridSliceSelector.java
@@ -336,7 +336,7 @@ public class GridSliceSelector extends Widget {
         /**
          * Creates a new converter.
          *
-         * @param gg   the grid geometry for which to create a converter. Can not be null.
+         * @param gg   the grid geometry for which to create a converter. Cannot be null.
          * @param ts   a transform separator initialized to the coverage "grid to CRS" transform, or {@code null}.
          * @param dim  the source dimension (grid axis) to extract in the {@code ts} separator.
          * @param min  minimal grid coordinate (before conversion to CRS coordinate).
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridView.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridView.java
index ceec7c6613..a6c733f681 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridView.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridView.java
@@ -138,7 +138,7 @@ public class GridView extends Control {
 
     /**
      * Width of header cells to be shown in the first column.
-     * The first (header) column contains the row indices, or sometime the coordinate values.
+     * The first (header) column contains the row indices, or sometimes the coordinate values.
      * This size includes the {@linkplain #cellSpacing cell spacing}.
      * It shall be a number strictly greater than zero.
      *
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridViewSkin.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridViewSkin.java
index c33f959b1d..1475d73315 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridViewSkin.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridViewSkin.java
@@ -49,7 +49,7 @@ import org.apache.sis.internal.gui.Styles;
  * <ul>
  *   <li>This is created by {@link GridView#createDefaultSkin()}.</li>
  *   <li>The {@link GridView} which own this skin is given by {@link #getSkinnable()}.</li>
- *   <li>This {@code GridViewSkin} contains an arbitrary amount of {@link GridRow} children.
+ *   <li>This {@code GridViewSkin} contains an arbitrary number of {@link GridRow} children.
  *       It should be limited to the number of children that are visible at the same time,
  *       not the total number of rows in the image.</li>
  * </ul>
@@ -532,7 +532,7 @@ final class GridViewSkin extends VirtualContainerBase<GridView, GridRow> impleme
         super.layoutChildren(x, y, width, height);
         final GridView view = getSkinnable();
         double cellSpacing  = Math.min(view.cellSpacing.get(), cellWidth);
-        if (!(cellSpacing  >= 0)) cellSpacing = 0;          // Use ! for catching NaN (can not use Math.max).
+        if (!(cellSpacing  >= 0)) cellSpacing = 0;          // Use ! for catching NaN (cannot use Math.max).
         /*
          * Do layout of the flow first because it may cause scroll bars to appear or disappear,
          * which may change the size calculations done after that. The flow is located below the
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
index d816ab68b8..0ff08d6993 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
@@ -297,7 +297,7 @@ final class IsolineRenderer {
      * @param  gridToCRS  transform from pixel coordinates to geometry coordinates, or {@code null} if none.
      *                    Integer source coordinates are located at pixel centers.
      * @return result of isolines generation, or {@code null} if there are no isolines to compute.
-     * @throws TransformException if an interpolated point can not be transformed using the given transform.
+     * @throws TransformException if an interpolated point cannot be transformed using the given transform.
      */
     @SuppressWarnings("UseOfSystemOutOrSystemErr")      // Used only for debugging.
     static Future<Isolines[]> generate(final Snapshot[] snapshots, final RenderedImage data, final MathTransform gridToCRS)
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
index ed19c7d66d..2e59e89505 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
@@ -86,7 +86,7 @@ final class StyledRenderingData extends RenderingData {
      *
      * @param  isolines  value of {@link IsolineRenderer#prepare()}, or {@code null} if none.
      * @return result of isolines generation, or {@code null} if there are no isolines to compute.
-     * @throws TransformException if an interpolated point can not be transformed using the given transform.
+     * @throws TransformException if an interpolated point cannot be transformed using the given transform.
      */
     final Future<Isolines[]> generate(final IsolineRenderer.Snapshot[] isolines) throws TransformException {
         if (isolines == null) return null;
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/ViewAndControls.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/ViewAndControls.java
index f5be92403c..37b76ff94c 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/ViewAndControls.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/ViewAndControls.java
@@ -133,7 +133,7 @@ abstract class ViewAndControls {
     /**
      * Creates a new view-control pair.
      *
-     * @param  owner  the widget which creates this view. Can not be null.
+     * @param  owner  the widget which creates this view. Cannot be null.
      */
     protected ViewAndControls(final CoverageExplorer owner) {
         this.owner = owner;
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
index ebce5540d6..791b2164ee 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ExpandableList.java
@@ -178,7 +178,7 @@ final class ExpandableList extends TransformationList<Feature,Feature>
         /*
          * If a new row is selected, extract now all properties. We need at least the number
          * of properties anyway for determining the number of additional rows.  But we store
-         * also the property values in arrays for convenience because we can not use indices
+         * also the property values in arrays for convenience because we cannot use indices
          * on arbitrary collections (they may not be lists).  This is okay on the assumption
          * that the number of elements is not large.
          */
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
index f3d57a34c3..339dbf04d9 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureList.java
@@ -83,7 +83,7 @@ final class FeatureList extends ObservableListBase<Feature> {
     private int validCount;
 
     /**
-     * Expected number of elements. Can not be smaller than {@link #validCount}.
+     * Expected number of elements. Cannot be smaller than {@link #validCount}.
      * May be greater than {@link #elements} length if some elements are not yet loaded.
      */
     private int estimatedSize;
@@ -248,7 +248,7 @@ final class FeatureList extends ObservableListBase<Feature> {
     }
 
     /**
-     * If we can not load more features stop the reading process.
+     * If we cannot load more features stop the reading process.
      *
      * @todo Add some message in the widget for warning the user.
      *       Proposal: set MAXIMUM_ROWS to MAX_INTEGER - 2 and reserve the last table row for a message.
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureLoader.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureLoader.java
index d829057cfd..0c21329d1c 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureLoader.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureLoader.java
@@ -326,7 +326,7 @@ final class FeatureLoader extends Task<Boolean> implements Consumer<Feature> {
     /**
      * Safety for data stores that do not implement the {@link FeatureSet#getType()} method.
      * That method is mandatory and implementations should not be allowed to return null, but
-     * incomplete implementations exist so we are better to be safe. If we can not get the type
+     * incomplete implementations exist so we are better to be safe. If we cannot get the type
      * from the first feature instances, we will give up.
      */
     private void setMissingType(final boolean isTypeKnown) throws DataStoreException {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureTable.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureTable.java
index 9e023999ea..2e6f22a6d0 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureTable.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/FeatureTable.java
@@ -211,7 +211,7 @@ public class FeatureTable extends TableView<Feature> {
     }
 
     /**
-     * Sets the features to show in this table. This method loads an arbitrary amount of
+     * Sets the features to show in this table. This method loads an arbitrary number of
      * features in a background thread. It does not load all features if the feature set
      * is large, unless the user scroll down.
      *
@@ -479,7 +479,7 @@ public class FeatureTable extends TableView<Feature> {
     }
 
     /**
-     * Reports an exception that we can not display in this widget, for example because it applies
+     * Reports an exception that we cannot display in this widget, for example because it applies
      * to different data than the one currently viewed. The {@code method} argument should be the
      * public API (if possible) invoking the method where the exception is caught.
      */
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
index 29ea6aeea2..d2e8b45ad6 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/PathAction.java
@@ -92,7 +92,7 @@ final class PathAction implements EventHandler<ActionEvent> {
          * The file path can be given in two forms: as an URI or as a text (named "file" below).
          * The textual form is the one that will usually be pasted. We try to provide paths on
          * the local file system if possible, converting "file:///" URI if needed. Only if URI
-         * can not be converted to a local file path, we keep the URI form.
+         * cannot be converted to a local file path, we keep the URI form.
          *
          * The `uri` is determined in a way opposite to `file`: we convert local path to URI.
          * That form is provided in case the path is pasted in applications expecting URI.
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
index 73881dd80b..edcdf55f8d 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceExplorer.java
@@ -59,7 +59,7 @@ import org.apache.sis.internal.gui.LogHandler;
 
 /**
  * A panel showing a {@linkplain ResourceTree tree of resources} together with their metadata and data views.
- * This panel contains also a "new window" button for creating new windows showing the same data but potentially
+ * This panel also contains a "new window" button for creating new windows showing the same data but potentially
  * a different locations and times. {@code ResourceExplorer} contains a list of windows created by this widget.
  *
  * @author  Smaniotto Enzo (GSoC)
@@ -334,7 +334,7 @@ public class ResourceExplorer extends Widget {
 
     /**
      * Removes the given resource from the tree and eventually closes it.
-     * If the given resource is not in this tree explorer or can not be removed,
+     * If the given resource is not in this tree explorer or cannot be removed,
      * then this method does nothing.
      *
      * @param  resource  the resource to remove, or {@code null}.
@@ -566,7 +566,7 @@ public class ResourceExplorer extends Widget {
                     }
                 }
 
-                /** Invoked in JavaFX thread if children can not be loaded. */
+                /** Invoked in JavaFX thread if children cannot be loaded. */
                 @Override protected void failed() {
                     warning("updateDataTabWithDefault", resource, getException());
                 }
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceItem.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceItem.java
index b9e8753315..3cf8670154 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceItem.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceItem.java
@@ -81,7 +81,7 @@ final class ResourceItem extends TreeItem<Resource> {
 
     /**
      * Whether the resource is a leaf. A resource is a leaf if it is not an
-     * instance of {@link Aggregate}, in which case it can not have children.
+     * instance of {@link Aggregate}, in which case it cannot have children.
      * This information is cached because requested often.
      */
     private final boolean isLeaf;
@@ -164,7 +164,7 @@ final class ResourceItem extends TreeItem<Resource> {
     }
 
     /**
-     * Returns whether the resource can not have children.
+     * Returns whether the resource cannot have children.
      */
     @Override
     public boolean isLeaf() {
@@ -234,7 +234,7 @@ final class ResourceItem extends TreeItem<Resource> {
         }
 
         /**
-         * Invoked in JavaFX thread if children can not be loaded.
+         * Invoked in JavaFX thread if children cannot be loaded.
          * This method replaces all children (which are unknown) by
          * a single node which represents a failure to load the data.
          */
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceTree.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceTree.java
index afb32f8670..1f3362d9ba 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceTree.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceTree.java
@@ -258,7 +258,7 @@ public class ResourceTree extends TreeView<Resource> {
      * This method is invoked from JavaFX thread.
      *
      * @param  store   the data store which has been loaded.
-     * @param  source  the user-supplied object which was the input of the store.
+     * @param  source  the user supplied object which was the input of the store.
      */
     private void addLoadedResource(final DataStore store, final Object source) {
         final boolean added = addResource(store);
@@ -341,7 +341,7 @@ public class ResourceTree extends TreeView<Resource> {
      * <p>Only the "root" resources (such as the resources given to {@link #setResource(Resource)} or
      * {@link #addResource(Resource)} methods) can be removed.
      * Children of {@link Aggregate} resource are not scanned.
-     * If the given resource can not be removed, then this method does nothing.</p>
+     * If the given resource cannot be removed, then this method does nothing.</p>
      *
      * <h4>Notifications</h4>
      * If {@link #onResourceClosed} has a non-null value, the {@link EventHandler} will be notified.
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvas.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvas.java
index 05b8ee348f..f881dde4b8 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvas.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/MapCanvas.java
@@ -158,7 +158,7 @@ public abstract class MapCanvas extends PlanarCanvas {
      * It does not apply to the immediate feedback that the user gets from JavaFX affine transforms
      * (an image with lower quality used until the higher quality image become ready).
      *
-     * <p>This value should not be too small for reducing flickering effects that are sometime visible
+     * <p>This value should not be too small for reducing flickering effects that are sometimes visible
      * at the moment when image data are replaced.</p>
      *
      * @see #requestRepaint()
@@ -802,7 +802,7 @@ public abstract class MapCanvas extends PlanarCanvas {
     }
 
     /**
-     * Invoked when the user changed the CRS from a JavaFX control. If the CRS can not be set to the specified
+     * Invoked when the user changed the CRS from a JavaFX control. If the CRS cannot be set to the specified
      * value, then an error message is shown in the status bar and the property is reset to its previous value.
      *
      * @param  crs       the new Coordinate Reference System in which to transform all data before displaying.
@@ -816,7 +816,7 @@ public abstract class MapCanvas extends PlanarCanvas {
         if (crs != previous) try {
             /*
              * If no anchor is specified, the first default is the center of the region currently visible
-             * in the canvas. If that center can not be determined neither, null anchor defaults to the
+             * in the canvas. If that center cannot be determined neither, null anchor defaults to the
              * point of interest (POI) managed by the Canvas parent class.
              */
             if (anchor == null) {
@@ -882,7 +882,7 @@ public abstract class MapCanvas extends PlanarCanvas {
      *
      * @param  newValue  the new <cite>objective to display</cite> conversion.
      * @throws IllegalArgumentException if given the transform does not have the expected number of dimensions or is not affine.
-     * @throws RenderException if the <cite>objective to display</cite> transform can not be set to the given value for another reason.
+     * @throws RenderException if the <cite>objective to display</cite> transform cannot be set to the given value for another reason.
      */
     @Override
     public void setObjectiveToDisplay(final LinearTransform newValue) throws RenderException {
@@ -1499,7 +1499,7 @@ public abstract class MapCanvas extends PlanarCanvas {
      * as a {@linkplain Throwable#addSuppressed(Throwable) suppressed exception}. The error property
      * is cleared when a rendering operation completed successfully.</p>
      *
-     * @param  ex  the exception that occurred (can not be null).
+     * @param  ex  the exception that occurred (cannot be null).
      */
     protected void errorOccurred(final Throwable ex) {
         if (hasError) {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/OperationFinder.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/OperationFinder.java
index dd9219f2c6..ca524dd072 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/OperationFinder.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/OperationFinder.java
@@ -54,7 +54,7 @@ abstract class OperationFinder extends Task<MathTransform> {
      * The grid geometry of data, or {@code null} if none or unknown. This is used for getting the operation between
      * two CRSs when one of the source or target CRS is {@link org.apache.sis.referencing.CommonCRS.Engineering#GRID}.
      * Because the relationship from {@code GRID} CRS to a geospatial CRS is unknown to {@code CRS.findOperation(…)},
-     * the operation can not be found without the help of this {@code dataGeometry} field.
+     * the operation cannot be found without the help of this {@code dataGeometry} field.
      *
      * Actually this information is rarely needed. It is needed only if there is no known affine transform from grid
      * coordinates to some geospatial coordinates that we can use as a starting point (before to apply map projection
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
index 6823ef709c..9c6daf0c75 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/StatusBar.java
@@ -619,7 +619,7 @@ public class StatusBar extends Widget implements EventHandler<MouseEvent> {
             /*
              * Wait for objective CRS to be known before to register listeners.
              * The canvas "objective CRS" is null only for unitialized canvas.
-             * After the canvas has been initialized, it can not be null anymore.
+             * After the canvas has been initialized, it cannot be null anymore.
              * We delay listeners registration because if listeners were enabled
              * on uninitialized canvas, the status bar would show irrelevant coordinates.
              */
@@ -741,7 +741,7 @@ public class StatusBar extends Widget implements EventHandler<MouseEvent> {
 
     /**
      * Implementation of {@link #applyCanvasGeometry(GridGeometry)} without changing {@link #position} visibility state.
-     * Invoking this method usually invalidate the coordinates shown in this status bar. The new coordinates can not be
+     * Invoking this method usually invalidate the coordinates shown in this status bar. The new coordinates cannot be
      * easily recomputed because the {@link #lastX} and {@link #lastY} values may not be valid anymore, as a result of
      * possible changes in JavaFX local coordinate system. Consequently the coordinates should be temporarily hidden
      * until a new {@link MouseEvent} gives us the new local coordinates, unless this method is invoked in a context
@@ -770,8 +770,8 @@ public class StatusBar extends Widget implements EventHandler<MouseEvent> {
             /*
              * Compute the precision of coordinates to format. We use the finest resolution,
              * looking only at axes having the same units of measurement than the first axis.
-             * This will be used as a fallback if we can not compute the precision specific
-             * to a coordinate, for example if we can not compute the derivative.
+             * This will be used as a fallback if we cannot compute the precision specific
+             * to a coordinate, for example if we cannot compute the derivative.
              */
             if (geometry.isDefined(GridGeometry.RESOLUTION)) {
                 double[] resolutions = geometry.getResolution(true);
@@ -820,7 +820,7 @@ public class StatusBar extends Widget implements EventHandler<MouseEvent> {
          * dimensions may have changed. The `lastX` and `lastY` coordinates are local to the
          * JavaFX view and considered invalid  because they depend on the transforms applied
          * on JavaFX node, which may have changed together with `localToObjectiveCRS` change.
-         * So we can not use those values for updating the coordinates shown in status bar.
+         * So we cannot use those values for updating the coordinates shown in status bar.
          * Instead we will wait for the next mouse event to provide new local coordinates.
          */
         ((LocalToObjective) localToObjectiveCRS).setNoCheck(localToCRS);
@@ -1688,7 +1688,7 @@ public class StatusBar extends Widget implements EventHandler<MouseEvent> {
     }
 
     /**
-     * Shows an error message for a reference system that can not be set.
+     * Shows an error message for a reference system that cannot be set.
      * The previous reference system is kept unchanged but the coordinates
      * will appear in red for telling user that there is a problem.
      *
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/ValuesFormatter.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/ValuesFormatter.java
index 8df7202973..254b8c1225 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/ValuesFormatter.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/ValuesFormatter.java
@@ -272,7 +272,7 @@ final class ValuesFormatter extends ValuesUnderCursor.Formatter {
      * {@link ValuesUnderCursor} is providing data for a new coverage.
      *
      * <p>We use {@link ValuesFromCoverage#needsBandRefresh} as a flag meaning that this method needs to be invoked.
-     * This method invocation sometime needs to be delayed because calculation of text width may be wrong
+     * This method invocation sometimes needs to be delayed because calculation of text width may be wrong
      * (produce 0 values) if invoked before {@link StatusBar#sampleValues} label is added in the scene graph.</p>
      *
      * <p>This method uses the same synchronization lock than {@link #evaluate(DirectPosition)}.
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
index 0232f9490c..0049a4bfb8 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/IdentificationInfo.java
@@ -64,7 +64,7 @@ import static org.apache.sis.internal.util.CollectionsExt.nonNull;
 
 /**
  * The pane where to show the values of {@link Identification} objects.
- * The same pane can be used for an arbitrary amount of identifications.
+ * The same pane can be used for an arbitrary number of identifications.
  * Each instance is identified by its title.
  * The content is:
  *
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
index 162c8994ac..c028b78b72 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataSummary.java
@@ -108,7 +108,7 @@ public class MetadataSummary extends Widget {
     public final ObjectProperty<Metadata> metadataProperty;
 
     /**
-     * If the metadata or the grid geometry can not be obtained, the reason.
+     * If the metadata or the grid geometry cannot be obtained, the reason.
      * This is created only when first needed.
      */
     private ExceptionReporter error;
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
index a98544aa22..3bef141111 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/MetadataTree.java
@@ -296,7 +296,7 @@ check:      if (data != null) {
         }
 
         /**
-         * Returns whether the node can not have children.
+         * Returns whether the node cannot have children.
          */
         @Override
         public boolean isLeaf() {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
index 396f115ccc..7e93f56584 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/RepresentationInfo.java
@@ -30,7 +30,7 @@ import static org.apache.sis.internal.util.CollectionsExt.nonNull;
 
 /**
  * The pane where to show the values of {@link SpatialRepresentation} objects.
- * The same pane can be used for an arbitrary amount of spatial representations.
+ * The same pane can be used for an arbitrary number of spatial representations.
  *
  * @author  Smaniotto Enzo (GSoC)
  * @author  Martin Desruisseaux (Geomatys)
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/StandardMetadataTree.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/StandardMetadataTree.java
index f81fda6d33..ea4acb7a42 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/StandardMetadataTree.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/metadata/StandardMetadataTree.java
@@ -121,7 +121,7 @@ public class StandardMetadataTree extends MetadataTree {
         private final MenuItem copyAsXML, copyAsLegacy, copyAsWKT;
 
         /**
-         * The group of menu items for copying in various formats, to be disabled if we can not do this export.
+         * The group of menu items for copying in various formats, to be disabled if we cannot do this export.
          */
         private final Menu copyAs;
 
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
index d8fdc3e3cd..e255b5d3a8 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/AuthorityCodes.java
@@ -244,7 +244,7 @@ final class AuthorityCodes extends ObservableListBase<Code>
                 if (name != null) {
                     final int i = it.previousIndex();
                     if (name.isEmpty()) {
-                        it.remove();                        // Remove code that we can not resolve.
+                        it.remove();                        // Remove code that we cannot resolve.
                         nextRemove(i, (Code) value);        // ClassCastException should never happen here.
                     } else {
                         ((Code) value).name().set(name);    // ClassCastException should never happen here.
@@ -322,7 +322,7 @@ final class AuthorityCodes extends ObservableListBase<Code>
 
         /**
          * Wether this task has been scheduled for execution or is already executing.
-         * This flag shall be read and updated in JavaFX thread only. We can not rely
+         * This flag shall be read and updated in JavaFX thread only. We cannot rely
          * on {@link #isRunning()} because that method does not return {@code true}
          * immediately after {@link BackgroundThreads#execute(Runnable)} invocation.
          *
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
index 44d450e62b..34fa1a25ba 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
@@ -153,7 +153,7 @@ public class RecentReferenceSystems {
 
     /**
      * Values of controls created by this {@code RecentReferenceSystems} instance. We retain those properties
-     * because modifying the {@link #referenceSystems} list sometime causes controls to clear their selection
+     * because modifying the {@link #referenceSystems} list sometimes causes controls to clear their selection
      * if we removed the selected item from the list. We use {@code controlValues} for saving currently selected
      * values before to modify the item list, and restore selections after we finished to modify the list.
      */
@@ -225,7 +225,7 @@ public class RecentReferenceSystems {
     /**
      * A view of {@link #referenceSystems} with only items that are instances of {@link CoordinateReferenceSystem}.
      * This list includes also {@link #OTHER} as its last item. This list is used for menus shown in contexts where
-     * identifiers can not be used, for example for selecting the CRS to use for displaying a map.
+     * identifiers cannot be used, for example for selecting the CRS to use for displaying a map.
      *
      * <p>This list is lazily created when first needed,
      * because it depends on {@link #referenceSystems} which is itself lazily created.</p>
@@ -513,7 +513,7 @@ public class RecentReferenceSystems {
 
     /**
      * Filters the {@link #systemsOrCodes} list by making sure that it contains only {@link ReferenceSystem} instances.
-     * Authority codes are resolved if possible or removed if they can not be resolved. Unverified CRSs are compared
+     * Authority codes are resolved if possible or removed if they cannot be resolved. Unverified CRSs are compared
      * with authoritative definitions and replaced when a match is found. Duplications are removed.
      * Finally reference systems with a domain of validity outside the {@link #geographicAOI} are omitted
      * from the returned list (but not removed from the original {@link #systemsOrCodes} list).
@@ -561,7 +561,7 @@ public class RecentReferenceSystems {
                          * The current list element is a `ReferenceSystem` instance but maybe not
                          * conform to authoritative definition, for example regarding axis order.
                          * If we can find an authoritative definition, do the replacement.
-                         * If this operation can not be done, accept the reference system as-is.
+                         * If this operation cannot be done, accept the reference system as-is.
                          */
                         if (!searchedFinder) {
                             searchedFinder = true;          // Set now in case an exception is thrown.
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/DataStoreOpener.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/DataStoreOpener.java
index 588110c496..b9e283b369 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/DataStoreOpener.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/DataStoreOpener.java
@@ -109,7 +109,7 @@ public final class DataStoreOpener extends Task<DataStore> {
 
     /**
      * Key to use in the {@link CACHE}, or {@code null} if the resource should not be cached.
-     * If possible, this is a {@link Path} containing the real path. If we can not perform
+     * If possible, this is a {@link Path} containing the real path. If we cannot perform
      * such conversion, then it is either {@code null} or the same object than {@link #source}.
      */
     private final Object key;
@@ -195,7 +195,7 @@ public final class DataStoreOpener extends Task<DataStore> {
     }
 
     /**
-     * Returns the input filename, or "unknown" if we can not infer the filename.
+     * Returns the input filename, or "unknown" if we cannot infer the filename.
      * This is used for reporting errors.
      *
      * @return the input file name for message purpose.
@@ -323,7 +323,7 @@ public final class DataStoreOpener extends Task<DataStore> {
      */
     public static boolean removeAndClose(final DataStore toClose, final Node owner) {
         /*
-         * A simpler code would be as below, but can not be used at this time because our
+         * A simpler code would be as below, but cannot be used at this time because our
          * Cache.entrySet() implementation does not support the Iterator.remove() operation.
          *
          * CACHE.values().removeIf((v) -> v == toClose);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ExceptionReporter.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ExceptionReporter.java
index 10740edc66..42af7b15bf 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ExceptionReporter.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/ExceptionReporter.java
@@ -171,7 +171,7 @@ public final class ExceptionReporter extends Widget {
      * This method does nothing if the exception is null.
      *
      * @param  owner      control in the window which will own the dialog, or {@code null} if unknown.
-     * @param  resource   the resource that can not be read.
+     * @param  resource   the resource that cannot be read.
      * @param  exception  the error that occurred.
      */
     public static void canNotReadFile(final Node owner, Resource resource, final Throwable exception) {
@@ -195,7 +195,7 @@ public final class ExceptionReporter extends Widget {
      * This method does nothing if the exception is null.
      *
      * @param  owner      control in the window which will own the dialog, or {@code null} if unknown.
-     * @param  file       the file that can not be read.
+     * @param  file       the file that cannot be read.
      * @param  exception  the error that occurred.
      */
     public static void canNotReadFile(final Node owner, final String file, final Throwable exception) {
@@ -208,7 +208,7 @@ public final class ExceptionReporter extends Widget {
      * This method does nothing if the exception is null.
      *
      * @param  owner      control in the window which will own the dialog, or {@code null} if unknown.
-     * @param  file       the file that can not be closed.
+     * @param  file       the file that cannot be closed.
      * @param  exception  the error that occurred.
      */
     public static void canNotCloseFile(final Node owner, final String file, final Throwable exception) {
@@ -221,7 +221,7 @@ public final class ExceptionReporter extends Widget {
      * This method does nothing if the exception is null.
      *
      * @param  owner      the owner window of the dialog, or {@code null} if none.
-     * @param  code       code of the CRS that can not be created.
+     * @param  code       code of the CRS that cannot be created.
      * @param  exception  the error that occurred.
      */
     public static void canNotCreateCRS(final Window owner, final String code, final Throwable exception) {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
index ac56319c39..ca064fd7f7 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.java
@@ -88,42 +88,42 @@ public final class Resources extends IndexedResourceBundle {
         public static final short AzimuthalEquidistant = 42;
 
         /**
-         * Can not create an aggregated view of “{0}”.
+         * Cannot create an aggregated view of “{0}”.
          */
         public static final short CanNotAggregate_1 = 76;
 
         /**
-         * Can not close “{0}”. Data may be lost.
+         * Cannot close “{0}”. Data may be lost.
          */
         public static final short CanNotClose_1 = 2;
 
         /**
-         * Can not create reference system “{0}”.
+         * Cannot create reference system “{0}”.
          */
         public static final short CanNotCreateCRS_1 = 3;
 
         /**
-         * Can not create XML document.
+         * Cannot create XML document.
          */
         public static final short CanNotCreateXML = 4;
 
         /**
-         * Can not fetch tile ({0}, {1}).
+         * Cannot fetch tile ({0}, {1}).
          */
         public static final short CanNotFetchTile_2 = 5;
 
         /**
-         * Can not install the resource.
+         * Cannot install the resource.
          */
         public static final short CanNotInstallResource = 62;
 
         /**
-         * Can not open “{0}”.
+         * Cannot open “{0}”.
          */
         public static final short CanNotReadFile_1 = 6;
 
         /**
-         * A resource contained in the file can not be read. The cause is given below.
+         * A resource contained in the file cannot be read. The cause is given below.
          */
         public static final short CanNotReadResource = 7;
 
@@ -133,7 +133,7 @@ public final class Resources extends IndexedResourceBundle {
         public static final short CanNotRender = 8;
 
         /**
-         * Can not use the “{0}” reference system.
+         * Cannot use the “{0}” reference system.
          */
         public static final short CanNotUseRefSys_1 = 9;
 
@@ -465,7 +465,7 @@ public final class Resources extends IndexedResourceBundle {
      *
      * @param  locale  the locale, or {@code null} for the default locale.
      * @return resources in the given locale.
-     * @throws MissingResourceException if resources can not be found.
+     * @throws MissingResourceException if resources cannot be found.
      */
     public static Resources forLocale(final Locale locale) throws MissingResourceException {
         return getBundle(Resources.class, locale);
@@ -475,7 +475,7 @@ public final class Resources extends IndexedResourceBundle {
      * Returns resources in the default locale.
      *
      * @return resources in the default locale.
-     * @throws MissingResourceException if resources can not be found.
+     * @throws MissingResourceException if resources cannot be found.
      */
     public static Resources getInstance() throws MissingResourceException {
         return getBundle(Resources.class, null);
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties
index 75cee6b09e..0199297816 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/Resources.properties
@@ -26,16 +26,16 @@ AggregatedView         = Aggregated view
 AllFiles               = All files
 Along_1                = Along {0}
 AzimuthalEquidistant   = Azimuthal equidistant
-CanNotAggregate_1      = Can not create an aggregated view of \u201c{0}\u201d.
-CanNotFetchTile_2      = Can not fetch tile ({0}, {1}).
-CanNotReadFile_1       = Can not open \u201c{0}\u201d.
-CanNotClose_1          = Can not close \u201c{0}\u201d. Data may be lost.
-CanNotCreateCRS_1      = Can not create reference system \u201c{0}\u201d.
-CanNotCreateXML        = Can not create XML document.
-CanNotReadResource     = A resource contained in the file can not be read. The cause is given below.
+CanNotAggregate_1      = Cannot create an aggregated view of \u201c{0}\u201d.
+CanNotFetchTile_2      = Cannot fetch tile ({0}, {1}).
+CanNotReadFile_1       = Cannot open \u201c{0}\u201d.
+CanNotClose_1          = Cannot close \u201c{0}\u201d. Data may be lost.
+CanNotCreateCRS_1      = Cannot create reference system \u201c{0}\u201d.
+CanNotCreateXML        = Cannot create XML document.
+CanNotReadResource     = A resource contained in the file cannot be read. The cause is given below.
 CanNotRender           = An error occurred while rendering the data.
-CanNotInstallResource  = Can not install the resource.
-CanNotUseRefSys_1      = Can not use the \u201c{0}\u201d reference system.
+CanNotInstallResource  = Cannot install the resource.
+CanNotUseRefSys_1      = Cannot use the \u201c{0}\u201d reference system.
 CenteredProjection     = Centered projection
 ClearAll               = Clear all
 Close                  = Close
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorColumnHandler.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorColumnHandler.java
index 7454bebb6d..70095b0159 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorColumnHandler.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorColumnHandler.java
@@ -75,7 +75,7 @@ public abstract class ColorColumnHandler<S> implements Callback<TableColumn.Cell
 
     /**
      * Returns the color associated to given row as an observable value. The default implementation creates
-     * an unmodifiable value derived from {@link #getARGB(S)}. It is okay if the color(s) can not be changed
+     * an unmodifiable value derived from {@link #getARGB(S)}. It is okay if the color(s) cannot be changed
      * in other way than by calls to {@link #applyColors(Object, ColorRamp)}. If this assumption does not hold,
      * then subclasses should override this method and return the observable which is mutated when the value change.
      *
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/FormatApplicator.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/FormatApplicator.java
index 3e33683468..bc21a6044f 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/FormatApplicator.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/FormatApplicator.java
@@ -146,7 +146,7 @@ final class FormatApplicator<T> extends StringConverter<T>
      *
      * @param  text  the text to parse, or {@code null}.
      * @return the parsed value, or {@code null} if the given text was null.
-     * @throws IllegalArgumentException if the given text can not be parsed.
+     * @throws IllegalArgumentException if the given text cannot be parsed.
      */
     @Override
     public final T fromString(String text) {
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/FXFinder.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/FXFinder.java
index 27798d8bfe..a2735d45d0 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/FXFinder.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/FXFinder.java
@@ -31,7 +31,7 @@ import java.util.zip.ZipFile;
 
 /**
  * Ask user to specify the path to JavaFX installation directory.
- * This is used when JavaFX can not be found on the classpath.
+ * This is used when JavaFX cannot be found on the classpath.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.1
@@ -98,7 +98,7 @@ public final class FXFinder {
     private static final int CANCEL_EXIT_CODE = 1;
 
     /**
-     * Exit code to return if the wizard can not start.
+     * Exit code to return if the wizard cannot start.
      */
     private static final int ERROR_EXIT_CODE = 2;
 
@@ -170,7 +170,7 @@ public final class FXFinder {
         if (Files.isReadable(setenv) && Files.isWritable(setenv)) {
             return null;
         }
-        return "Can not edit " + setenv;
+        return "Cannot edit " + setenv;
     }
 
     /**
@@ -325,7 +325,7 @@ public final class FXFinder {
                 if (destination.isDirectory() || destination.mkdir()) {
                     return destination;
                 }
-                throw new IOException("Can not create directory: " + destination);
+                throw new IOException("Cannot create directory: " + destination);
             }
         }
         throw new FileNotFoundException("No parent directory to " + setenv + '.');
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Inflater.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Inflater.java
index 5e680f839e..a77865a4ef 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Inflater.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Inflater.java
@@ -112,7 +112,7 @@ final class Inflater implements Runnable {
                 final File file = new File(destination, entry.getName());
                 if (entry.isDirectory()) {
                     if (!file.isDirectory() && !file.mkdir()) {
-                        throw new IOException("Directory can not be created: " + file);
+                        throw new IOException("Directory cannot be created: " + file);
                     }
                     if (subdir == null && entry.getName().startsWith(FXFinder.JAVAFX_DIRECTORY_PREFIX)) {
                         subdir = file;
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Wizard.java b/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Wizard.java
index ece5c9581c..1aa8d4232d 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Wizard.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/internal/setup/Wizard.java
@@ -476,7 +476,7 @@ final class Wizard extends FileFilter implements ActionListener, PropertyChangeL
                 } catch (IOException e) {
                     nextButton.setEnabled(false);
                     finalMessage.setForeground(Color.RED);
-                    finalMessage.setText(getHtmlMessage("Apache SIS setup can not be completed.", e));
+                    finalMessage.setText(getHtmlMessage("Apache SIS setup cannot be completed.", e));
                 }
                break;
             }
@@ -496,7 +496,7 @@ final class Wizard extends FileFilter implements ActionListener, PropertyChangeL
         final boolean isValid;
         if (failure != null) {
             isValid = false;
-            javafxPathError.setText(getHtmlMessage("Can not decompress the file.", failure));
+            javafxPathError.setText(getHtmlMessage("Cannot decompress the file.", failure));
         } else {
             isValid = setJavafxPath(destination);
         }
@@ -557,7 +557,7 @@ final class Wizard extends FileFilter implements ActionListener, PropertyChangeL
     /**
      * Searches recursively for the {@value #SELECT} button in the given container. This is used for
      * locating the "Open" button in {@link JFileChooser}. Caller needs to temporarily change button
-     * text to {@value #SELECT} before to invoke this method. We can not search directly for "Open"
+     * text to {@value #SELECT} before to invoke this method. We cannot search directly for "Open"
      * text because that text may be localized.
      *
      * @param  c  the container where to search for the {@value #SELECT} button.
@@ -664,7 +664,7 @@ final class Wizard extends FileFilter implements ActionListener, PropertyChangeL
                 error = FXFinder.checkZip(dir);
                 isValid = (error == null);
             } catch (IOException e) {
-                error = getHtmlMessage("Can not open the file.", e);
+                error = getHtmlMessage("Cannot open the file.", e);
             } else {
                 error = "<html>Not a recognized JavaFX directory or ZIP file.</html>";
             }
@@ -696,7 +696,7 @@ final class Wizard extends FileFilter implements ActionListener, PropertyChangeL
                         if (setJavafxPath(file)) break;
                     }
                 } catch (UnsupportedFlavorException | IOException e) {
-                    javafxPathError.setText(getHtmlMessage("Can not open the file.", e));
+                    javafxPathError.setText(getHtmlMessage("Cannot open the file.", e));
                 }
                 event.dropComplete(true);
                 return;
@@ -742,7 +742,7 @@ final class Wizard extends FileFilter implements ActionListener, PropertyChangeL
     public static boolean show(final FXFinder javafxFinder) {
         /*
          * Checks now that we can edit `setenv.sh` content in order to not show the wizard
-         * if we can not read that file (e.g. because the file was not found).
+         * if we cannot read that file (e.g. because the file was not found).
          */
         final String diagnostic = javafxFinder.diagnostic();
         if (diagnostic != null) {
diff --git a/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/CalcAddins.java b/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/CalcAddins.java
index 68abbf23d9..5fc9ebbda5 100644
--- a/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/CalcAddins.java
+++ b/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/CalcAddins.java
@@ -183,7 +183,7 @@ public abstract class CalcAddins extends WeakBase implements XServiceName, XServ
     }
 
     /**
-     * Reports an exception. This is used if an exception occurred in a method that can not return
+     * Reports an exception. This is used if an exception occurred in a method that cannot return
      * a {@link String} instance. This method logs the stack trace at {@link Level#WARNING}.
      *
      * @param method     the method from which an exception occurred.
diff --git a/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Registration.java b/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Registration.java
index 4badc7acc4..626f38347d 100644
--- a/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Registration.java
+++ b/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Registration.java
@@ -66,7 +66,7 @@ public final class Registration {
      */
     private static void classpathException(final String method, final Throwable exception) {
         final String lineSeparator = System.lineSeparator();
-        final StringBuilder message = new StringBuilder("Can not find Apache SIS classes.").append(lineSeparator)
+        final StringBuilder message = new StringBuilder("Cannot find Apache SIS classes.").append(lineSeparator)
                 .append("Classpath = ").append(System.getProperty("java.class.path"));
         final ClassLoader loader = ReferencingFunctions.class.getClassLoader();
         if (loader instanceof URLClassLoader) {
diff --git a/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Transformer.java b/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Transformer.java
index f9a74bbbd8..17c102b2b5 100644
--- a/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Transformer.java
+++ b/application/sis-openoffice/src/main/java/org/apache/sis/openoffice/Transformer.java
@@ -168,7 +168,7 @@ final class Transformer {
                 } catch (TransformException exception) {
                     /*
                      * The coordinate operation failed for this particular point. But maybe it will
-                     * succeed for an other point. Set the values to NaN and continue the loop. Note:
+                     * succeed for another point. Set the values to NaN and continue the loop. Note:
                      * we will report the failure for logging purpose, but only the first one since
                      * all subsequent failures are likely to be the same one.
                      */
diff --git a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.java b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.java
index 5c29d134ce..a422154e41 100644
--- a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.java
+++ b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.java
@@ -57,7 +57,7 @@ public final class Resources extends IndexedResourceBundle {
         }
 
         /**
-         * Can not change a relative path to an absolute path.
+         * Cannot change a relative path to an absolute path.
          */
         public static final short CanNotChangeToAbsolutePath = 1;
 
@@ -82,7 +82,7 @@ public final class Resources extends IndexedResourceBundle {
         public static final short MustBeAbsolutePath = 6;
 
         /**
-         * Specified path can not be the root.
+         * Specified path cannot be the root.
          */
         public static final short MustHaveKeyComponent = 7;
 
@@ -117,7 +117,7 @@ public final class Resources extends IndexedResourceBundle {
      *
      * @param  locale  the locale, or {@code null} for the default locale.
      * @return resources in the given locale.
-     * @throws MissingResourceException if resources can not be found.
+     * @throws MissingResourceException if resources cannot be found.
      */
     public static Resources forLocale(final Locale locale) throws MissingResourceException {
         return getBundle(Resources.class, locale);
diff --git a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.properties b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.properties
index 568185d9b2..5e0486617a 100644
--- a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.properties
+++ b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/internal/Resources.properties
@@ -19,10 +19,10 @@
 # Resources in this file are for "sis-sqlstore" usage only and should not be used by any other module.
 # For resources shared by all modules in the Apache SIS project, see "org.apache.sis.util.resources" package.
 #
-CanNotChangeToAbsolutePath        = Can not change a relative path to an absolute path.
+CanNotChangeToAbsolutePath        = Cannot change a relative path to an absolute path.
 EmptyPath                         = Empty path.
 FileSystemInitialized_2           = File system {0,choice,0#not|1#already} initialized for the \u201c{1}\u201d access key.
 MissingAccessKey_2                = Missing {0,choice,0#public|1#secret} access key in \u201c{1}\u201d URI.
 MustBeAbsolutePath                = Specified path must be an absolute S3 path.
-MustHaveKeyComponent              = Specified path can not be the root.
+MustHaveKeyComponent              = Specified path cannot be the root.
 UnexpectedProtocol_1              = Unexpected \u201c{0}\u201d protocol.
diff --git a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/CachedByteChannel.java b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/CachedByteChannel.java
index 9540202078..53d86814c0 100644
--- a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/CachedByteChannel.java
+++ b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/CachedByteChannel.java
@@ -56,7 +56,7 @@ final class CachedByteChannel implements SeekableByteChannel {
 
     /**
      * A temporary buffer for transferring data when we
-     * can not write directly in the destination buffer.
+     * cannot write directly in the destination buffer.
      */
     private ByteBuffer transfer;
 
diff --git a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/FileService.java b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/FileService.java
index 2a0700fd84..d1f7b63803 100644
--- a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/FileService.java
+++ b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/FileService.java
@@ -241,7 +241,7 @@ public class FileService extends FileSystemProvider {
     /**
      * Returns the file system associated to the {@link #DEFAULT_ACCESS_KEY}.
      *
-     * @throws SdkException if the file system can not be created.
+     * @throws SdkException if the file system cannot be created.
      */
     private ClientFileSystem getDefaultFileSystem() {
         return fileSystems.computeIfAbsent(DEFAULT_ACCESS_KEY, (key) -> new ClientFileSystem(this, S3Client.create()));
@@ -278,7 +278,7 @@ public class FileService extends FileSystemProvider {
      * @param  uri  a URI of the form {@code "s3://accessKey@bucket/key"}.
      * @return the resulting {@code Path}.
      * @throws IllegalArgumentException if the URI is not supported by this provider.
-     * @throws FileSystemNotFoundException if the file system does not exist and can not be created automatically.
+     * @throws FileSystemNotFoundException if the file system does not exist and cannot be created automatically.
      */
     @Override
     public Path getPath(final URI uri) {
diff --git a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/KeyPath.java b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/KeyPath.java
index f95010b0c1..b27625aa0f 100644
--- a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/KeyPath.java
+++ b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/KeyPath.java
@@ -675,7 +675,7 @@ search:     if (key != null) {
      * yields a path that locates the same file as the given path.
      * The two paths must either has no root or the same root.
      *
-     * @throws IllegalArgumentException if the other path can not be relativized against this path.
+     * @throws IllegalArgumentException if the other path cannot be relativized against this path.
      */
     @Override
     public Path relativize(final Path other) {
@@ -695,7 +695,7 @@ search:     if (key != null) {
      * Returns an URI with the {@value #SCHEME} scheme if the path is absolute, or a relative URI otherwise.
      *
      * <p>Note: {@link Path#toUri()} specification mandate an absolute URI.
-     * But we can not provide an absolute URI if this path is not already absolute.</p>
+     * But we cannot provide an absolute URI if this path is not already absolute.</p>
      *
      * @see #toString()
      */
@@ -741,7 +741,7 @@ search:     if (key != null) {
 
     /**
      * Returns this path if it is already absolute.
-     * Current implementation can not change a relative path to an absolute path.
+     * Current implementation cannot change a relative path to an absolute path.
      */
     @Override
     public Path toAbsolutePath() {
@@ -751,7 +751,7 @@ search:     if (key != null) {
 
     /**
      * Returns this path as an absolute path if possible.
-     * Current implementation can not change a relative path to an absolute path,
+     * Current implementation cannot change a relative path to an absolute path,
      * and does not verify if an object exists in the S3 bucket for the {@linkplain #key}.
      */
     @Override
diff --git a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/ObjectAttributes.java b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/ObjectAttributes.java
index ee62fa7cea..5e7513c6fb 100644
--- a/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/ObjectAttributes.java
+++ b/cloud/sis-cloud-aws/src/main/java/org/apache/sis/cloud/aws/s3/ObjectAttributes.java
@@ -137,7 +137,7 @@ final class ObjectAttributes implements BasicFileAttributeView {
         /**
          * Creates a new set of attributes with the values available at the time this constructor is invoked.
          *
-         * @param  bucket  metadata about the root. Can not be null.
+         * @param  bucket  metadata about the root. Cannot be null.
          */
         Snapshot(final Bucket bucket) {
             creationTime     = orDefault(bucket.creationDate());
@@ -149,7 +149,7 @@ final class ObjectAttributes implements BasicFileAttributeView {
          * Creates a new set of attributes with the values available at the time this constructor is invoked.
          *
          * @param  bucket  metadata about the root, or {@code null} if none.
-         * @param  object  metadata about the object. Can not be null.
+         * @param  object  metadata about the object. Cannot be null.
          */
         Snapshot(final Bucket bucket, final S3Object object) {
             Instant t;
diff --git a/core/sis-build-helper/pom.xml b/core/sis-build-helper/pom.xml
index 23132cabba..4f6828c87b 100644
--- a/core/sis-build-helper/pom.xml
+++ b/core/sis-build-helper/pom.xml
@@ -92,7 +92,7 @@
         <configuration>
           <release>17</release>
           <compilerArgs>
-            <!-- As of August 2018, we can not yet moduralize Maven plugins because the Maven dependencies are
+            <!-- As of August 2018, we cannot yet moduralize Maven plugins because the Maven dependencies are
                  themselves not modularized. Attempts to use them as unnamed modules cause package conflicts.
                  We have to workaround by adding dependencies on the command-line instead. -->
             <arg>--add-modules</arg> <arg>jdk.javadoc</arg>
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java b/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
index 8e7e4a6480..ff0fb61dcd 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/Assembler.java
@@ -139,7 +139,7 @@ public final class Assembler {
      * Creates a new assembler for the given input and output files.
      *
      * @param  input   the input file (e.g. {@code "sis-site/main/source/developer-guide/index.html"}).
-     * @throws ParserConfigurationException if this constructor can not build the XML document.
+     * @throws ParserConfigurationException if this constructor cannot build the XML document.
      * @throws IOException if an error occurred while reading the file.
      * @throws SAXException if an error occurred while parsing the XML.
      * @throws BookException if a logical error occurred while initializing the assembler.
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/CodeColorizer.java b/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/CodeColorizer.java
index aa55039f52..7295eab09b 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/CodeColorizer.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/internal/book/CodeColorizer.java
@@ -88,7 +88,7 @@ public final class CodeColorizer {
     };
 
     /**
-     * Map of pre-defined identifiers and the authority who defined them.
+     * Map of predefined identifiers and the authority who defined them.
      */
     private final Map<String,Specifier> identifierSpecifiers;
 
@@ -101,7 +101,7 @@ public final class CodeColorizer {
      * Creates a new color colorizer.
      *
      * @param  document  the object to use for creating nodes.
-     * @throws IOException if an error occurred while reading the list of pre-defined identifiers.
+     * @throws IOException if an error occurred while reading the list of predefined identifiers.
      * @throws BookException if an identifier is defined twice.
      */
     public CodeColorizer(final Document document) throws IOException, BookException {
@@ -284,7 +284,7 @@ public final class CodeColorizer {
      * @param  parent  the root element where to put Java keywords in bold characters.
      *                 This is typically a {@code <samp>} or {@code <code>} element.
      * @param  type    {@code "xml"} if the element to process is XML rather than Java code.
-     * @throws BookException if an element can not be processed.
+     * @throws BookException if an element cannot be processed.
      */
     public void highlight(final Node parent, final String type) throws BookException {
         if ("wkt".equals(type)) return;
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java b/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java
index d90f279b3c..dcfe235781 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Doclet.java
@@ -151,7 +151,7 @@ public final class Doclet extends StandardDoclet {
                 break;
             }
         }
-        throw new FileNotFoundException("Can not locate \"src/main/javadoc\" from the root of this Maven project.");
+        throw new FileNotFoundException("Cannot locate \"src/main/javadoc\" from the root of this Maven project.");
     }
 
     /**
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Preformat.java b/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Preformat.java
index c67fd1849a..560ebc1fac 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Preformat.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Preformat.java
@@ -29,7 +29,7 @@ import org.apache.sis.internal.book.CodeColorizer;
  *
  * <p>This taglet will automatically replace {@code &}, {@code <} and {@code >} by their HTML entities.
  * The only exception is {@code &#64;}, which is converted to the original {@code @} character because
- * we can not use that character directly inside this taglet.</p>
+ * we cannot use that character directly inside this taglet.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.0
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Taglet.java b/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Taglet.java
index 2ee35b4eba..80c30dcccb 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Taglet.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/internal/doclet/Taglet.java
@@ -112,7 +112,7 @@ abstract class Taglet implements jdk.javadoc.doclet.Taglet {
 
     /**
      * Returns the file that contains the current tag, or {@code null} if the method
-     * can not determine the file.
+     * cannot determine the file.
      *
      * @return file containing the current tag, or {@code null}.
      */
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/JarCollector.java b/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/JarCollector.java
index d869bed191..b4b14887fe 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/JarCollector.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/internal/maven/JarCollector.java
@@ -150,7 +150,7 @@ public final class JarCollector extends AbstractMojo implements FileFilter {
                     scope.equalsIgnoreCase(Artifact.SCOPE_RUNTIME)))
                 {
                     final File file = artifact.getFile();
-                    if (file != null) { // I'm not sure why the file is sometime null...
+                    if (file != null) {                     // I'm not sure why the file is sometimes null.
                         copy = new File(collect, getFinalName(file, artifact));
                         if (!copy.exists()) {
                             /*
@@ -244,7 +244,7 @@ public final class JarCollector extends AbstractMojo implements FileFilter {
              */
         }
         /*
-         * If we can not use hard links, creates or updates a "target/other_dependencies.txt" file instead.
+         * If we cannot use hard links, creates or updates a "target/other_dependencies.txt" file instead.
          * This file will contains the list of all dependencies, without duplicated values.
          */
         final File dependenciesFile = new File(copy.getParentFile(), OTHER_DEPENDENCIES_FILE);
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/IndexedResourceCompiler.java b/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/IndexedResourceCompiler.java
index c14c9bd9da..4bd8f6558d 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/IndexedResourceCompiler.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/IndexedResourceCompiler.java
@@ -273,7 +273,7 @@ class IndexedResourceCompiler implements FilenameFilter, Comparator<Object> {
      *
      * @param  file  the property file to load.
      * @return the properties.
-     * @throws IOException if the file can not be read.
+     * @throws IOException if the file cannot be read.
      */
     private static Properties loadRawProperties(final File file) throws IOException {
         final Properties properties;
@@ -437,7 +437,7 @@ search: for (int i=0; i<buffer.length(); i++) {                 // Length of `bu
     private void writeUTF(final File file) throws IOException {
         final File directory = file.getParentFile();
         if (!directory.isDirectory() && !directory.mkdirs()) {
-            throw new IOException("Can not create the " + directory + " directory.");
+            throw new IOException("Cannot create the " + directory + " directory.");
         }
         final int count = allocatedIDs.isEmpty() ? 0 : Collections.max(allocatedIDs.keySet());
         try (DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)))) {
diff --git a/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/ResourceCompilerMojo.java b/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/ResourceCompilerMojo.java
index fc366dffe6..33f6476109 100644
--- a/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/ResourceCompilerMojo.java
+++ b/core/sis-build-helper/src/main/java/org/apache/sis/util/resources/ResourceCompilerMojo.java
@@ -155,7 +155,7 @@ public class ResourceCompilerMojo extends AbstractMojo implements FilenameFilter
     private int processAllResourceDirectories(final File directory) throws ResourceCompilerException {
         int errors = 0;
         final File[] subdirs = directory.listFiles();
-        if (subdirs != null) {                  // Appears to be sometime null with auto-generated sub-directories.
+        if (subdirs != null) {                  // Appears to be sometimes null with auto-generated sub-directories.
             for (final File subdir : subdirs) {
                 if (subdir.isDirectory()) {
                     File[] resourcesToProcess = subdir.listFiles(this);
diff --git a/core/sis-cql/src/main/java/org/apache/sis/cql/CQL.java b/core/sis-cql/src/main/java/org/apache/sis/cql/CQL.java
index 83cb251721..1720257c61 100644
--- a/core/sis-cql/src/main/java/org/apache/sis/cql/CQL.java
+++ b/core/sis-cql/src/main/java/org/apache/sis/cql/CQL.java
@@ -758,7 +758,7 @@ public final class CQL {
                     String crs = convertExpression(exp.TEXT(), ff).apply(null).toString();
                     env = new GeneralEnvelope(CRS.forCode(crs));
                 } catch (FactoryException e) {
-                    throw new CQLException("Can not parse CRS code.", e);
+                    throw new CQLException("Cannot parse CRS code.", e);
                 } else {
                     env = new GeneralEnvelope(2);
                 }
diff --git a/core/sis-cql/src/main/java/org/apache/sis/cql/CQLException.java b/core/sis-cql/src/main/java/org/apache/sis/cql/CQLException.java
index 88fc422012..7995dc36e8 100644
--- a/core/sis-cql/src/main/java/org/apache/sis/cql/CQLException.java
+++ b/core/sis-cql/src/main/java/org/apache/sis/cql/CQLException.java
@@ -18,7 +18,7 @@ package org.apache.sis.cql;
 
 
 /**
- * Thrown when a CQL statement can not be parsed.
+ * Thrown when a CQL statement cannot be parsed.
  *
  * @author  Johann Sorel (Geomatys)
  * @version 1.0
diff --git a/core/sis-cql/src/main/java/org/apache/sis/cql/FilterToCQLVisitor.java b/core/sis-cql/src/main/java/org/apache/sis/cql/FilterToCQLVisitor.java
index b71fef67d0..73addd00ae 100644
--- a/core/sis-cql/src/main/java/org/apache/sis/cql/FilterToCQLVisitor.java
+++ b/core/sis-cql/src/main/java/org/apache/sis/cql/FilterToCQLVisitor.java
@@ -275,7 +275,7 @@ final class FilterToCQLVisitor extends Visitor<Feature,StringBuilder> {
      * <h4>Note on type safety</h4>
      * This method signature uses {@code <? super R>} for caller's convenience because this is the type that
      * we get from {@link LogicalOperator#getOperands()}. But the {@link BiConsumer} uses exactly {@code <R>}
-     * type because doing otherwise causes complications with types that can not be expressed in Java (kinds
+     * type because doing otherwise causes complications with types that cannot be expressed in Java (kinds
      * of {@code <? super ? super R>}). The cast in this method is okay if we do not invoke any {@code filter}
      * method with a return value (directly or indirectly as list elements) of exactly {@code <R>} type.
      * Such methods do not exist in the GeoAPI interfaces, so we are safe if the {@link BiConsumer}
@@ -297,7 +297,7 @@ final class FilterToCQLVisitor extends Visitor<Feature,StringBuilder> {
      * <h4>Note on type safety</h4>
      * This method signature uses {@code <? super R>} for caller's convenience because this is the type that
      * we get from {@link Expression#getParameters()}. But the {@link BiConsumer} expects exactly {@code <R>}
-     * type because doing otherwise causes complications with types that can not be expressed in Java (kinds
+     * type because doing otherwise causes complications with types that cannot be expressed in Java (kinds
      * of {@code <? super ? super R>}). The cast in this method is okay if we do not invoke any {@code exp}
      * method with a return value (directly or indirectly as list elements) of exactly {@code <R>} type.
      * Such methods do not exist in the GeoAPI interfaces, so we are safe if the {@link BiConsumer}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/BandedCoverage.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/BandedCoverage.java
index 51d874834a..941e9f23e7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/BandedCoverage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/BandedCoverage.java
@@ -205,9 +205,9 @@ public abstract class BandedCoverage {
          *         Callers should not assume that the array content stay valid for a long time.
          * @throws PointOutsideCoverageException if the evaluation failed because the input point
          *         has invalid coordinates and the {@link #isNullIfOutside()} flag is {@code false}.
-         * @throws CannotEvaluateException if the values can not be computed at the specified coordinates
+         * @throws CannotEvaluateException if the values cannot be computed at the specified coordinates
          *         for another reason. For example this exception may be thrown if the coverage data type
-         *         can not be converted to {@code double} by an identity or widening conversion.
+         *         cannot be converted to {@code double} by an identity or widening conversion.
          */
         @Override
         double[] apply(DirectPosition point) throws CannotEvaluateException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/Category.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/Category.java
index d560e57bc2..3572b37f46 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/Category.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/Category.java
@@ -55,7 +55,7 @@ import static java.lang.Double.doubleToRawLongBits;
  * Some image mixes both qualitative and quantitative categories. For example, images of <cite>Sea Surface Temperature</cite>
  * (SST) may have a quantitative category for temperature with values ranging from -2 to 35°C, and three qualitative categories
  * for cloud, land and ice. There is usually at most one quantitative category per sample dimension, but Apache SIS accepts an
- * arbitrary amount of them.
+ * arbitrary number of them.
  *
  * <p>All categories must have a human readable name. In addition, quantitative categories
  * may define a conversion from sample values <var>s</var> to real values <var>x</var>.
@@ -218,7 +218,7 @@ public class Category implements Serializable {
      *                  The input is a real number in the {@code samples} range and the output shall be a unique value between
      *                  {@value MathFunctions#MIN_NAN_ORDINAL} and {@value MathFunctions#MAX_NAN_ORDINAL} inclusive.
      * @throws IllegalSampleDimensionException if the {@code samples} range of values is empty
-     *         or the transfer function can not be used.
+     *         or the transfer function cannot be used.
      */
     protected Category(final CharSequence name, NumberRange<?> samples, final MathTransform1D toUnits, final Unit<?> units,
              final DoubleToIntFunction toNaN)
@@ -371,7 +371,7 @@ public class Category implements Serializable {
      * Returns {@code true} if this category is quantitative. A quantitative category has a
      * {@linkplain #getTransferFunction() transfer function} mapping sample values to values
      * in some units of measurement. By contrast, a qualitative category maps sample values
-     * to a label, for example “2 = forest”. That later mapping can not be represented by a
+     * to a label, for example “2 = forest”. That later mapping cannot be represented by a
      * transfer function.
      *
      * @return {@code true} if this category is quantitative, or
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/CategoryList.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/CategoryList.java
index d98ccff947..c399ce344d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/CategoryList.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/CategoryList.java
@@ -89,7 +89,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
      * May be {@code null} if this list has no non-{@code NaN} category.
      *
      * <p>A {@link NumberRange} object gives more information than a (minimum, maximum) tuple since
-     * it contains also the type (integer, float, etc.) and inclusion/exclusion information.</p>
+     * it also contains the type (integer, float, etc.) and inclusion/exclusion information.</p>
      */
     final NumberRange<?> range;
 
@@ -172,7 +172,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
         categories     = new Category[0];
         converseRanges = null;
         converse       = this;
-        fallback       = Double.NaN;        // Specify that NaN values can not be converted to a sample value.
+        fallback       = Double.NaN;        // Specify that NaN values cannot be converted to a sample value.
     }
 
     /**
@@ -341,7 +341,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
                 }
             } else {
                 /*
-                 * If a NaN value can not be mapped to a sample value, keep the NaN value only if the 0 value
+                 * If a NaN value cannot be mapped to a sample value, keep the NaN value only if the 0 value
                  * (the result of casting NaN to integers) would not conflict with an existing category range.
                  * This check is important for "unit to sample" conversions, because we typically expect all
                  * results to be convertible to integers (ignoring rounding errors).
@@ -357,7 +357,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
             }
         }
         /*
-         * If we can not let NaN value be propagated, use the background value if available.
+         * If we cannot let NaN value be propagated, use the background value if available.
          * Note that the background value given in argument is a sample value, so it can be
          * used only for the "unit to sample" conversion. If that background value is zero,
          * it will be interpreted as "let NaN values propagate" but it should be okay since
@@ -476,7 +476,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
         }
         /*
          * If we reach this point and the sample is NaN, then it is not one of the NaN values known
-         * to CategoryList constructor and can not be mapped to a category.  Otherwise we found the
+         * to CategoryList constructor and cannot be mapped to a category.  Otherwise we found the
          * index of "insertion point" (~i). This means that `sample` is lower than category minimum
          * at that index. Consequently if the sample value is inside the range of some category, it
          * can only be the previous category (~i-1).
@@ -497,14 +497,14 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
     }
 
     /**
-     * Invoked when a value can not be located in the {@link #minimums} array. It should happen
+     * Invoked when a value cannot be located in the {@link #minimums} array. It should happen
      * only for NaN input values, which in turn should happen only in "unit to sample" conversions.
      * In such case we fallback on zero value if non ambiguous, or on the background value if available,
      * or throw an exception otherwise.
      *
-     * @param  value  the (usually NaN) value that we can not map to a category range.
+     * @param  value  the (usually NaN) value that we cannot map to a category range.
      * @return the value to use as converted value.
-     * @throws TransformException if the value can not be converted.
+     * @throws TransformException if the value cannot be converted.
      */
     private double unmappedValue(final double value) throws TransformException {
         if (MathFunctions.isPositiveZero(fallback)) {
@@ -700,7 +700,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
      *
      * @param  value  the value to transform.
      * @return the transformed value.
-     * @throws TransformException if the value can not be transformed.
+     * @throws TransformException if the value cannot be transformed.
      */
     @Override
     public final double transform(double value) throws TransformException {
@@ -730,7 +730,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
      *
      * @param  value  the value where to evaluate the derivative.
      * @return the derivative at the specified point.
-     * @throws TransformException if the derivative can not be evaluated at the specified point.
+     * @throws TransformException if the derivative cannot be evaluated at the specified point.
      */
     @Override
     public final double derivative(final double value) throws TransformException {
@@ -844,7 +844,7 @@ final class CategoryList extends AbstractList<Category> implements MathTransform
      * may fail if an object is too complex for the WKT format capability.
      *
      * @return the Well Know Text for this object.
-     * @throws UnsupportedOperationException if this object can not be formatted as WKT.
+     * @throws UnsupportedOperationException if this object cannot be formatted as WKT.
      *
      * @todo Not yet implemented.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/ConvertedRange.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/ConvertedRange.java
index a0f2375a1e..292f9383ba 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/ConvertedRange.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/ConvertedRange.java
@@ -25,7 +25,7 @@ import org.apache.sis.measure.MeasurementRange;
 /**
  * Range of real values computed from the range of the sample values.
  * The {@link Category#toConverse} conversion is used by the caller for computing the inclusive and exclusive
- * minimum and maximum values of this range. We compute both the inclusive and exclusive values because we can not
+ * minimum and maximum values of this range. We compute both the inclusive and exclusive values because we cannot
  * rely on the default implementation, which looks for the nearest representable number. For example if the range
  * of sample values is 0 to 10 exclusive (or 0 to 9 inclusive) and the scale is 2, then the range of real values
  * is 0 to 20 exclusive or 0 to 18 inclusive, not 0 to 19.9999… The numbers between 18 and 20 is a "gray area"
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/IllegalSampleDimensionException.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/IllegalSampleDimensionException.java
index ec6003a7a3..3bc3ddf3da 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/IllegalSampleDimensionException.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/IllegalSampleDimensionException.java
@@ -18,7 +18,7 @@ package org.apache.sis.coverage;
 
 
 /**
- * Thrown when {@link SampleDimension} can not be created.
+ * Thrown when {@link SampleDimension} cannot be created.
  * The most common cause is overlapping {@linkplain Category#getSampleRange() ranges of sample values}.
  * This exception is caused by an illegal argument, but may happen at a later stage
  * (for example when {@link SampleDimension.Builder#build()} is invoked).
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/RegionOfInterest.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/RegionOfInterest.java
index fb82f68d2a..558cf7f309 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/RegionOfInterest.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/RegionOfInterest.java
@@ -96,7 +96,7 @@ public class RegionOfInterest implements LenientComparable, Serializable {
      *
      * @param  target  two-dimensional grid geometry of the target image.
      * @return clip in pixel coordinates of given grid.
-     * @throws TransformException if ROI coordinates can not be transformed to grid coordinates.
+     * @throws TransformException if ROI coordinates cannot be transformed to grid coordinates.
      */
     public Shape toShape2D(final GridGeometry target) throws TransformException {
         final MathTransform2D crsToGrid;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
index 3341b5970f..63a984ab26 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
@@ -73,7 +73,7 @@ import org.apache.sis.util.Debug;
  * An important aspect of sample dimensions is the {@linkplain #getBackground() background value}.
  * It defines how to initialize an empty image or canvas with respect to the sample definition.
  * It can be thought as the value for "lack of data" (fill value, no-data, missing value) category
- * when the missing value can not be categorized more precisely (cloud, instrument error, <i>etc</i>).
+ * when the missing value cannot be categorized more precisely (cloud, instrument error, <i>etc</i>).
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @author  Alexis Manin (Geomatys)
@@ -247,7 +247,7 @@ public class SampleDimension implements Serializable {
      * then the "no data values" are NaN values.
      *
      * @return the values to indicate no data values for this sample dimension, or an empty set if none.
-     * @throws IllegalStateException if this method can not expand the range of no data values, for example
+     * @throws IllegalStateException if this method cannot expand the range of no data values, for example
      *         because some ranges contain an infinite amount of values.
      *
      * @see #allowsNaN()
@@ -353,7 +353,7 @@ public class SampleDimension implements Serializable {
      * For a more generic transfer function, see {@link #getTransferFunction()}.
      *
      * @return a description of the part of the transfer function working on real numbers.
-     * @throws IllegalStateException if the transfer function can not be simplified in a form representable
+     * @throws IllegalStateException if the transfer function cannot be simplified in a form representable
      *         by {@link TransferFunction}.
      */
     public Optional<TransferFunction> getTransferFunctionFormula() {
@@ -507,8 +507,8 @@ public class SampleDimension implements Serializable {
      * <ul>
      *   <li>An optional name for the {@code SampleDimension}.</li>
      *   <li>A single optional category for the background value.</li>
-     *   <li>An arbitrary amount of <cite>qualitative</cite> categories.</li>
-     *   <li>An arbitrary amount of <cite>quantitative</cite> categories.</li>
+     *   <li>An arbitrary number of <cite>qualitative</cite> categories.</li>
+     *   <li>An arbitrary number of <cite>quantitative</cite> categories.</li>
      * </ul>
      *
      * <p>A <cite>qualitative category</cite> is a range of sample values associated to a label.
@@ -782,7 +782,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -804,7 +804,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -825,7 +825,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -846,7 +846,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -866,7 +866,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -893,7 +893,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -920,7 +920,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * <div class="note"><b>Implementation note:</b>
@@ -946,7 +946,7 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Usage note:</b>
          * the {@link #setBackground(CharSequence, Number)} method should be used instead of this method
-         * when the aim is to define a default "no data" category to use when the missing value can not
+         * when the aim is to define a default "no data" category to use when the missing value cannot
          * be categorized more precisely (cloud, instrument error, <i>etc</i>).</div>
          *
          * @param  name     the category name as a {@link String} or {@link InternationalString} object,
diff --git 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
index 1be0b6faa6..1894fb3ea9 100644
--- 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
@@ -49,7 +49,7 @@ import org.opengis.coverage.PointOutsideCoverageException;
  * Those data can be shown as an untiled {@link RenderedImage}.
  * Images are created when {@link #render(GridExtent)} is invoked instead of at construction time.
  * This delayed construction makes this class better suited to <var>n</var>-dimensional grids since
- * those grids can not be wrapped into a single {@link RenderedImage}.
+ * those grids cannot be wrapped into a single {@link RenderedImage}.
  *
  * <div class="note"><b>Comparison with alternatives:</b>
  * this class expects all data to reside in-memory and does not support tiling.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
index 4897d8d3b1..a7b771af9a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ConvertedGridCoverage.java
@@ -116,7 +116,7 @@ final class ConvertedGridCoverage extends DerivedGridCoverage {
      * @param  converted  {@code true} for a coverage containing converted values,
      *                    or {@code false} for a coverage containing packed values.
      * @return the converted coverage. May be {@code source}.
-     * @throws NoninvertibleTransformException if this constructor can not build a full conversion chain to target.
+     * @throws NoninvertibleTransformException if this constructor cannot build a full conversion chain to target.
      */
     static GridCoverage create(final GridCoverage source, final boolean converted) throws NoninvertibleTransformException {
         final List<SampleDimension> sources = source.getSampleDimensions();
@@ -136,7 +136,7 @@ final class ConvertedGridCoverage extends DerivedGridCoverage {
      * @param  targets    where to add {@link SampleDimension#forConvertedValues(boolean)} results.
      * @param  converted  {@code true} for transforms to converted values, or {@code false} for transforms to packed values.
      * @return the transforms, or {@code null} if all transforms are identity transform.
-     * @throws NoninvertibleTransformException if this method can not build a full conversion chain.
+     * @throws NoninvertibleTransformException if this method cannot build a full conversion chain.
      */
     static MathTransform1D[] converters(final List<SampleDimension> sources,
                                         final List<SampleDimension> targets,
@@ -173,7 +173,7 @@ final class ConvertedGridCoverage extends DerivedGridCoverage {
      *
      * @param  targets    the sample dimensions for which to get the data type.
      * @param  converted  whether the image will hold converted or packed values.
-     * @param  source     if the type can not be determined, coverage from which to inherit the type as a fallback.
+     * @param  source     if the type cannot be determined, coverage from which to inherit the type as a fallback.
      * @return the data type (never null).
      *
      * @see GridCoverage#getBandType()
@@ -267,7 +267,7 @@ final class ConvertedGridCoverage extends DerivedGridCoverage {
          * This method delegates to the source coverage, then converts the values.
          *
          * @param  point  the position where to evaluate.
-         * @throws CannotEvaluateException if the values can not be computed.
+         * @throws CannotEvaluateException if the values cannot be computed.
          */
         @Override
         public double[] apply(final DirectPosition point) throws CannotEvaluateException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/CoordinateOperationFinder.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/CoordinateOperationFinder.java
index c33a71d0f6..c594cec076 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/CoordinateOperationFinder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/CoordinateOperationFinder.java
@@ -310,7 +310,7 @@ final class CoordinateOperationFinder implements Supplier<double[]> {
      *
      * @return operation from source CRS to target CRS, or {@code null} if a CRS is not specified.
      * @throws FactoryException if no operation can be found between the source and target CRS.
-     * @throws TransformException if some coordinates can not be transformed to the specified target.
+     * @throws TransformException if some coordinates cannot be transformed to the specified target.
      */
     private CoordinateOperation changeOfCRS() throws FactoryException, TransformException {
         if (!knowChangeOfCRS) {
@@ -353,7 +353,7 @@ final class CoordinateOperationFinder implements Supplier<double[]> {
      *
      * @return operation from source grid indices to target grid indices.
      * @throws FactoryException if no operation can be found between the source and target CRS.
-     * @throws TransformException if some coordinates can not be transformed to the specified target.
+     * @throws TransformException if some coordinates cannot be transformed to the specified target.
      * @throws IncompleteGridGeometryException if required CRS or a "grid to CRS" information is missing.
      */
     final MathTransform gridToGrid() throws FactoryException, TransformException {
@@ -385,14 +385,14 @@ final class CoordinateOperationFinder implements Supplier<double[]> {
      *
      * @return operation from source grid indices to target geospatial coordinates.
      * @throws FactoryException if no operation can be found between the source and target CRS.
-     * @throws TransformException if some coordinates can not be transformed to the specified target.
+     * @throws TransformException if some coordinates cannot be transformed to the specified target.
      * @throws IncompleteGridGeometryException if required CRS or a "grid to CRS" information is missing.
      */
     final MathTransform gridToCRS() throws FactoryException, TransformException {
         if (gridToCRS == null) {
             /*
              * The following line may throw IncompleteGridGeometryException, which is desired because
-             * if that transform is missing, we can not continue (we have no way to guess it).
+             * if that transform is missing, we cannot continue (we have no way to guess it).
              */
             gridToCRS = source.getGridToCRS(anchor);
             final CoordinateOperation changeOfCRS = changeOfCRS();
@@ -432,7 +432,7 @@ apply:          if (forwardChangeOfCRS == null) {
      *
      * @return operation from target geospatial coordinates to source grid indices.
      * @throws FactoryException if no operation can be found between the source and target CRS.
-     * @throws TransformException if some coordinates can not be transformed.
+     * @throws TransformException if some coordinates cannot be transformed.
      */
     final MathTransform inverse() throws FactoryException, TransformException {
         final MathTransform sourceCrsToGrid = source.getGridToCRS(anchor).inverse();
@@ -595,7 +595,7 @@ apply:          if (forwardChangeOfCRS == null) {
      *
      * @param  sourceCrsToGrid  value of {@code source.getGridToCRS(anchor).inverse()}.
      * @return whether at least one wraparound step has been added.
-     * @throws TransformException if some coordinates can not be transformed.
+     * @throws TransformException if some coordinates cannot be transformed.
      */
     private boolean applyWraparound(final MathTransform sourceCrsToGrid) throws FactoryException, TransformException {
         if (!isWraparoundApplied) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java
index ac1f4e41bb..dd609051ba 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DefaultEvaluator.java
@@ -133,7 +133,7 @@ class DefaultEvaluator implements GridCoverage.Evaluator {
 
     /**
      * Transform from grid coordinates to the CRS where wraparound axes may exist.
-     * It is sometime the same transform than {@code gridToCRS} but not always.
+     * It is sometimes the same transform than {@code gridToCRS} but not always.
      * It may differ for example if a projected CRS has been replaced by a geographic CRS.
      */
     private MathTransform gridToWraparound;
@@ -359,8 +359,8 @@ class DefaultEvaluator implements GridCoverage.Evaluator {
      *         Callers should not assume that the array content stay valid for a long time.
      * @throws PointOutsideCoverageException if the evaluation failed because the input point
      *         has invalid coordinates and the {@link #isNullIfOutside()} flag is {@code false}.
-     * @throws CannotEvaluateException if the values can not be computed at the specified coordinates
-     *         for another reason. This exception may be thrown if the coverage data type can not be
+     * @throws CannotEvaluateException if the values cannot be computed at the specified coordinates
+     *         for another reason. This exception may be thrown if the coverage data type cannot be
      *         converted to {@code double} by an identity or widening conversion.
      *         Subclasses may relax this constraint if appropriate.
      */
@@ -429,7 +429,7 @@ class DefaultEvaluator implements GridCoverage.Evaluator {
      * @throws IncompleteGridGeometryException if the {@linkplain GridCoverage#getGridGeometry() grid geometry}
      *         does not define a "grid to CRS" transform, or if the given point has a non-null CRS but the
      *         coverage does not {@linkplain GridCoverage#getCoordinateReferenceSystem() have a CRS}.
-     * @throws TransformException if the given coordinates can not be transformed.
+     * @throws TransformException if the given coordinates cannot be transformed.
      *
      * @see FractionalGridCoordinates#toPosition(MathTransform)
      */
@@ -451,7 +451,7 @@ class DefaultEvaluator implements GridCoverage.Evaluator {
      * @param  point  the geospatial position.
      * @return the given position converted to grid coordinates (possibly out of grid bounds).
      * @throws FactoryException if no operation is found form given point CRS to coverage CRS.
-     * @throws TransformException if the given position can not be converted.
+     * @throws TransformException if the given position cannot be converted.
      */
     final FractionalGridCoordinates.Position toGridPosition(final DirectPosition point)
             throws FactoryException, TransformException
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DimensionReducer.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DimensionReducer.java
index a3059a10fe..93679f453d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DimensionReducer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DimensionReducer.java
@@ -53,8 +53,8 @@ final class DimensionReducer {
      * Creates an helper which will retain only the {@code targetCRS} dimensions that are found the the base grid.
      * This will be used by caller for creating a valid {@code sourceCRS} to {@code targetCRS} transform.
      *
-     * @param  base       the grid geometry which will be derived. Can not be null.
-     * @param  targetCRS  CRS of the area or point of interest. Can not be null.
+     * @param  base       the grid geometry which will be derived. Cannot be null.
+     * @param  targetCRS  CRS of the area or point of interest. Cannot be null.
      */
     DimensionReducer(final GridGeometry base, final CoordinateReferenceSystem targetCRS) throws FactoryException {
         if (base != null && base.envelope != null) {
@@ -75,7 +75,7 @@ final class DimensionReducer {
 
     /**
      * Applies reduction on the given position.
-     * If the position can not be reduced, then it is returned as-is.
+     * If the position cannot be reduced, then it is returned as-is.
      */
     final DirectPosition apply(final DirectPosition target) {
         if (dimensions == null) {
@@ -90,7 +90,7 @@ final class DimensionReducer {
 
     /**
      * Applies reduction on the given envelope.
-     * If the envelope can not be reduced, then it is returned as-is.
+     * If the envelope cannot be reduced, then it is returned as-is.
      */
     final Envelope apply(final Envelope target) {
         if (dimensions == null) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DomainLinearizer.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DomainLinearizer.java
index e9f74b6b0b..de2d224f86 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DomainLinearizer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/DomainLinearizer.java
@@ -140,7 +140,7 @@ public class DomainLinearizer {
      *
      * @param  coverage  the grid coverage in which to make the <cite>grid to CRS</cite> conversion linear.
      * @return a grid coverage with a linear approximation of the <cite>grid to CRS</cite> conversion.
-     * @throws TransformException if some cell coordinates can not be computed.
+     * @throws TransformException if some cell coordinates cannot be computed.
      */
     public GridCoverage apply(final GridCoverage coverage) throws TransformException {
         ArgumentChecks.ensureNonNull("coverage", coverage);
@@ -162,7 +162,7 @@ public class DomainLinearizer {
      *
      * @param  gg  the grid geometry in which to make the <cite>grid to CRS</cite> conversion linear.
      * @return a grid geometry with a linear approximation of the <cite>grid to CRS</cite> conversion.
-     * @throws TransformException if some cell coordinates can not be computed.
+     * @throws TransformException if some cell coordinates cannot be computed.
      */
     public GridGeometry apply(final GridGeometry gg) throws TransformException {
         ArgumentChecks.ensureNonNull("gg", gg);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java
index df9738fe89..fa32bbd778 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/EvaluatorWrapper.java
@@ -117,7 +117,7 @@ abstract class EvaluatorWrapper implements GridCoverage.Evaluator {
      * doing some on-the-fly conversion of sample values.
      *
      * @param  point  the position where to evaluate.
-     * @throws CannotEvaluateException if the values can not be computed.
+     * @throws CannotEvaluateException if the values cannot be computed.
      */
     @Override
     public double[] apply(final DirectPosition point) throws CannotEvaluateException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/FractionalGridCoordinates.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/FractionalGridCoordinates.java
index 2995c448ee..8928acb5fc 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/FractionalGridCoordinates.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/FractionalGridCoordinates.java
@@ -37,14 +37,14 @@ import org.apache.sis.util.resources.Errors;
  * Grid coordinates specify the location of a cell within a {@link GridCoverage}.
  * They are normally integer numbers, but fractional parts may exist for example
  * after converting a geospatial {@link DirectPosition} to grid coordinates.
- * Preserving that fractional part is sometime useful, e.g. for interpolations.
+ * Preserving that fractional part is sometimes useful, e.g. for interpolations.
  * This class can store such fractional part and can also compute a {@link GridExtent}
  * containing the coordinates, which can be used for requesting data for interpolations.
  *
  * <p>Current implementation stores coordinate values as {@code double} precision floating-point numbers
  * and {@linkplain Math#round(double) rounds} them to 64-bits integers on the fly. If a {@code double}
- * can not be {@linkplain #getCoordinateValue(int) returned} as a {@code long}, or if a {@code long}
- * can not be {@linkplain #setCoordinateValue(int, long) stored} as a {@code double}, then an
+ * cannot be {@linkplain #getCoordinateValue(int) returned} as a {@code long}, or if a {@code long}
+ * cannot be {@linkplain #setCoordinateValue(int, long) stored} as a {@code double}, then an
  * {@link ArithmeticException} is thrown.</p>
  *
  * @author  Martin Desruisseaux (Geomatys)
@@ -167,7 +167,7 @@ public class FractionalGridCoordinates implements GridCoordinates, Serializable
      * @param  value      the new value.
      * @throws IndexOutOfBoundsException if the given index is negative or is
      *         equal or greater than the {@linkplain #getDimension grid dimension}.
-     * @throws ArithmeticException if this method can not store the given grid coordinate
+     * @throws ArithmeticException if this method cannot store the given grid coordinate
      *         without precision lost.
      */
     @Override
@@ -346,7 +346,7 @@ public class FractionalGridCoordinates implements GridCoordinates, Serializable
      *
      * @param  gridToCRS  the transform to apply on grid coordinates.
      * @return the grid coordinates converted using the given transform.
-     * @throws TransformException if the grid coordinates can not be converted by {@code gridToCRS}.
+     * @throws TransformException if the grid coordinates cannot be converted by {@code gridToCRS}.
      *
      * @see GridCoverage.Evaluator#toGridCoordinates(DirectPosition)
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage.java
index 8df0d1608a..78d3f2499e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage.java
@@ -402,7 +402,7 @@ public abstract class GridCoverage extends BandedCoverage {
          * @throws IncompleteGridGeometryException if the {@linkplain GridCoverage#getGridGeometry() grid geometry}
          *         does not define a "grid to CRS" transform, or if the given point has a non-null CRS but the
          *         coverage does not {@linkplain GridCoverage#getCoordinateReferenceSystem() have a CRS}.
-         * @throws TransformException if the given coordinates can not be transformed.
+         * @throws TransformException if the given coordinates cannot be transformed.
          *
          * @see FractionalGridCoordinates#toPosition(MathTransform)
          */
@@ -481,7 +481,7 @@ public abstract class GridCoverage extends BandedCoverage {
      * @throws MismatchedDimensionException if the given extent does not have the same number of dimensions than this coverage.
      * @throws SubspaceNotSpecifiedException if the given argument is not sufficient for reducing the grid to a two-dimensional slice.
      * @throws DisjointExtentException if the given extent does not intersect this grid coverage.
-     * @throws CannotEvaluateException if this method can not produce the rendered image for another reason.
+     * @throws CannotEvaluateException if this method cannot produce the rendered image for another reason.
      */
     public abstract RenderedImage render(GridExtent sliceExtent) throws CannotEvaluateException;
 
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage2D.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage2D.java
index 9f29c7440e..a9878fe14d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage2D.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverage2D.java
@@ -294,7 +294,7 @@ public class GridCoverage2D extends GridCoverage {
      * location than the image and will have the same size.
      *
      * @param  domain  the domain to complete. May be {@code null}.
-     * @param  data    user-supplied image, or {@code null} if missing.
+     * @param  data    user supplied image, or {@code null} if missing.
      * @return the potentially completed domain (may be {@code null}).
      */
     static GridGeometry addExtentIfAbsent(GridGeometry domain, final RenderedImage data) {
@@ -314,7 +314,7 @@ public class GridCoverage2D extends GridCoverage {
      * This verification should be done by the caller.</p>
      *
      * @param  domain  the domain to complete. May be {@code null}.
-     * @param  bounds  image or raster bounds (can not be {@code null}).
+     * @param  bounds  image or raster bounds (cannot be {@code null}).
      * @return the potentially completed domain (may be {@code null}).
      */
     static GridGeometry addExtentIfAbsent(GridGeometry domain, final Rectangle bounds) {
@@ -559,7 +559,7 @@ public class GridCoverage2D extends GridCoverage {
      * @return the grid slice as a rendered image. Image location is relative to {@code sliceExtent}.
      * @throws MismatchedDimensionException if the given extent does not have the same number of dimensions than this coverage.
      * @throws DisjointExtentException if the given extent does not intersect this grid coverage.
-     * @throws CannotEvaluateException if this method can not produce the rendered image for another reason.
+     * @throws CannotEvaluateException if this method cannot produce the rendered image for another reason.
      *
      * @see BufferedImage#getSubimage(int, int, int, int)
      */
@@ -628,7 +628,7 @@ public class GridCoverage2D extends GridCoverage {
                     }
                     /*
                      * Workaround for https://bugs.openjdk.java.net/browse/JDK-8166038
-                     * If BufferedImage can not be used, fallback on ReshapedImage
+                     * If BufferedImage cannot be used, fallback on ReshapedImage
                      * at the cost of returning an image larger than necessary.
                      * This workaround can be removed on JDK17.
                      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java
index 9b4c695615..8484d49e02 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageBuilder.java
@@ -313,7 +313,7 @@ public class GridCoverageBuilder {
      * are usually increasing up. Consequently the <code>{@linkplain #flipGridAxis(int) flipGridAxis}(1)</code>
      * method may need to be invoked after this method.</p>
      *
-     * @param  data  the rendered image to be wrapped in a {@code GridCoverage}. Can not be {@code null}.
+     * @param  data  the rendered image to be wrapped in a {@code GridCoverage}. Cannot be {@code null}.
      * @return {@code this} for method invocation chaining.
      *
      * @see BufferedImage
@@ -337,7 +337,7 @@ public class GridCoverageBuilder {
      * are usually increasing up. Consequently the <code>{@linkplain #flipGridAxis(int) flipGridAxis}(1)</code>
      * method may need to be invoked after this method.</p>
      *
-     * @param  data  the raster to be wrapped in a {@code GridCoverage}. Can not be {@code null}.
+     * @param  data  the raster to be wrapped in a {@code GridCoverage}. Cannot be {@code null}.
      * @return {@code this} for method invocation chaining.
      *
      * @see Raster#createBandedRaster(int, int, int, int, Point)
@@ -357,7 +357,7 @@ public class GridCoverageBuilder {
      * If {@linkplain #setRanges(SampleDimension...) sample dimensions are specified}, then the number of
      * bands must be equal to the number of sample dimensions.
      *
-     * @param  data  the data buffer to be wrapped in a {@code GridCoverage}. Can not be {@code null}.
+     * @param  data  the data buffer to be wrapped in a {@code GridCoverage}. Cannot be {@code null}.
      * @param  size  the image size in pixels, or {@code null} if unspecified. If null, then the image
      *               size will be taken from the {@linkplain GridGeometry#getExtent() grid extent}.
      * @return {@code this} for method invocation chaining.
@@ -480,7 +480,7 @@ public class GridCoverageBuilder {
                 }
                 /*
                  * Create an image from the raster. We favor BufferedImage instance when possible,
-                 * and fallback on TiledImage only if the BufferedImage can not be created.
+                 * and fallback on TiledImage only if the BufferedImage cannot be created.
                  */
                 if (raster instanceof WritableRaster) {
                     final WritableRaster wr = (WritableRaster) raster;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageProcessor.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageProcessor.java
index 9733d1fc19..c5868b1808 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageProcessor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridCoverageProcessor.java
@@ -230,10 +230,10 @@ public class GridCoverageProcessor implements Cloneable {
     }
 
     /**
-     * Returns the values to use for pixels that can not be computed.
+     * Returns the values to use for pixels that cannot be computed.
      * The default implementation delegates to the image processor.
      *
-     * @return fill values to use for pixels that can not be computed, or {@code null} for the defaults.
+     * @return fill values to use for pixels that cannot be computed, or {@code null} for the defaults.
      *
      * @see ImageProcessor#getFillValues()
      *
@@ -244,10 +244,10 @@ public class GridCoverageProcessor implements Cloneable {
     }
 
     /**
-     * Sets the values to use for pixels that can not be computed.
+     * Sets the values to use for pixels that cannot be computed.
      * The default implementation delegates to the image processor.
      *
-     * @param  values  fill values to use for pixels that can not be computed, or {@code null} for the defaults.
+     * @param  values  fill values to use for pixels that cannot be computed, or {@code null} for the defaults.
      *
      * @see ImageProcessor#setFillValues(Number...)
      *
@@ -267,7 +267,7 @@ public class GridCoverageProcessor implements Cloneable {
      * @param  mask        region (in arbitrary CRS) of the mask.
      * @param  maskInside  {@code true} for masking pixels inside the shape, or {@code false} for masking outside.
      * @return a coverage with mask applied.
-     * @throws TransformException if ROI coordinates can not be transformed to grid coordinates.
+     * @throws TransformException if ROI coordinates cannot be transformed to grid coordinates.
      *
      * @see ImageProcessor#mask(RenderedImage, Shape, boolean)
      *
@@ -428,7 +428,7 @@ public class GridCoverageProcessor implements Cloneable {
      * @return a grid coverage with the characteristics specified in the given grid geometry.
      * @throws IncompleteGridGeometryException if the source grid geometry is missing an information.
      *         It may be the source CRS, the source extent, <i>etc.</i> depending on context.
-     * @throws TransformException if some coordinates can not be transformed to the specified target.
+     * @throws TransformException if some coordinates cannot be transformed to the specified target.
      *
      * @see ImageProcessor#resample(RenderedImage, Rectangle, MathTransform)
      */
@@ -495,7 +495,7 @@ public class GridCoverageProcessor implements Cloneable {
      * @param  target  the desired coordinate reference system.
      * @return a grid coverage with the given coordinate reference system.
      * @throws IncompleteGridGeometryException if the source grid geometry is missing an information.
-     * @throws TransformException if some coordinates can not be transformed to the specified target.
+     * @throws TransformException if some coordinates cannot be transformed to the specified target.
      *
      * @since 1.3
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridDerivation.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridDerivation.java
index d76d2e3c8f..32032974ed 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridDerivation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridDerivation.java
@@ -120,7 +120,7 @@ public class GridDerivation {
     /**
      * If the grid is divided in tiles or chunks, the size of the chunks.
      * This is used for snapping grid size to multiple values of chunk size.
-     * If non-null, can not be empty. Trailing 1 values are omitted.
+     * If non-null, cannot be empty. Trailing 1 values are omitted.
      *
      * @see #chunkSize(int...)
      */
@@ -208,7 +208,7 @@ public class GridDerivation {
     /**
      * Intersection between the grid envelope and the area of interest, computed when only envelopes are available.
      * Normally we do not compute this envelope directly; instead we compute the grid extent and the "grid to CRS"
-     * transform. This envelope is computed only if it can not be computed from other grid geometry properties.
+     * transform. This envelope is computed only if it cannot be computed from other grid geometry properties.
      *
      * @see #subgrid(Envelope, double...)
      */
@@ -381,7 +381,7 @@ public class GridDerivation {
      * Returns {@code null} if all values are trimmed. This method verifies that values are valid.
      *
      * @param  property  argument name to use in error message in case of errors.
-     * @param  values    user-supplied values.
+     * @param  values    user supplied values.
      * @return values to save in {@link GridDerivation}.
      */
     private static int[] validateCellCounts(final String property, final int[] values, final int defaultValue) {
@@ -453,7 +453,7 @@ public class GridDerivation {
      * <p>Notes:</p>
      * <ul>
      *   <li>This method can be invoked only once.</li>
-     *   <li>This method can not be used together with another {@code subgrid(…)} method.</li>
+     *   <li>This method cannot be used together with another {@code subgrid(…)} method.</li>
      *   <li>{@linkplain #rounding(GridRoundingMode) Rounding mode}, {@linkplain #clipping(GridClippingMode) clipping mode},
      *       {@linkplain #margin(int...) margin} and {@linkplain #chunkSize(int...) chunk size},
      *       if different than default values, should be set before to invoke this method.</li>
@@ -559,7 +559,7 @@ public class GridDerivation {
      * <p>Notes:</p>
      * <ul>
      *   <li>This method can be invoked only once.</li>
-     *   <li>This method can not be used together with another {@code subgrid(…)} method.</li>
+     *   <li>This method cannot be used together with another {@code subgrid(…)} method.</li>
      *   <li>{@linkplain #rounding(GridRoundingMode) Rounding mode}, {@linkplain #clipping(GridClippingMode) clipping mode},
      *       {@linkplain #margin(int...) margin} and {@linkplain #chunkSize(int...) chunk size},
      *       if different than default values, should be set before to invoke this method.</li>
@@ -729,9 +729,9 @@ public class GridDerivation {
     }
 
     /**
-     * Returns the transform from the CRS of the {@linkplain #base} grid to the CRS of user-supplied argument.
+     * Returns the transform from the CRS of the {@linkplain #base} grid to the CRS of user supplied argument.
      *
-     * @param  target  the CRS of the user-supplied argument (envelope ou position).
+     * @param  target  the CRS of the user supplied argument (envelope ou position).
      * @return transform from {@linkplain #base} grid to user argument.
      */
     private MathTransform findBaseToAOI(final CoordinateReferenceSystem target) throws FactoryException {
@@ -745,7 +745,7 @@ public class GridDerivation {
      * @param  baseToAOI  the transform computed by {@link #findBaseToAOI(CoordinateReferenceSystem)},
      *                    or {@code null} if same as the CRS of the {@linkplain #base} grid geometry.
      * @param  gridToCRS  the transform computed by {@link #dropUnusedDimensions(MathTransform, int)}
-     *                    (the transform from grid coordinates to the CRS of user-supplied AOI/POI).
+     *                    (the transform from grid coordinates to the CRS of user supplied AOI/POI).
      */
     private WraparoundAdjustment wraparound(MathTransform baseToAOI, MathTransform gridToCRS) throws TransformException {
         return new WraparoundAdjustment(base.envelope, baseToAOI, gridToCRS.inverse());
@@ -842,7 +842,7 @@ public class GridDerivation {
      * <p>Notes:</p>
      * <ul>
      *   <li>This method can be invoked only once.</li>
-     *   <li>This method can not be used together with another {@code subgrid(…)} method.</li>
+     *   <li>This method cannot be used together with another {@code subgrid(…)} method.</li>
      *   <li>{@linkplain #rounding(GridRoundingMode) Rounding mode}, {@linkplain #clipping(GridClippingMode) clipping mode},
      *       {@linkplain #margin(int...) margin} and {@linkplain #chunkSize(int...) chunk size},
      *       if different than default values, should be set before to invoke this method.</li>
@@ -1096,7 +1096,7 @@ public class GridDerivation {
      * Builds a grid geometry with the configuration specified by the other methods in this {@code GridDerivation} class.
      *
      * @return the modified grid geometry. May be the {@link #base} grid geometry if no change apply.
-     * @throws IllegalGridGeometryException if the grid geometry can not be computed
+     * @throws IllegalGridGeometryException if the grid geometry cannot be computed
      *         because of arguments given to a {@code subgrid(…)} or other methods.
      *
      * @see #getIntersection()
@@ -1314,7 +1314,7 @@ public class GridDerivation {
                 final int i = ~Arrays.binarySearch(divisors, r);
                 /*
                  * `binarySearch(…)` should never find an exact match, otherwise (size % r) would have been zero.
-                 * Furthermore `i` should never be 0 because divisors[0] = 1, which can not be selected if r > 1.
+                 * Furthermore `i` should never be 0 because divisors[0] = 1, which cannot be selected if r > 1.
                  * We do not check `if (i > 0)` "as a safety" because client code such as `TiledGridCoverage`
                  * will behave erratically if this method does not fulfill its contract (i.e. find a divisor).
                  * It is better to know now if there is any problem here.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
index 9d0f41cfba..01d5e937cc 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtent.java
@@ -228,7 +228,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
     /**
      * Creates an initially empty grid extent with the given number of dimensions.
      * All grid coordinate values are initialized to zero. This constructor is private
-     * because {@code GridExtent} coordinate values can not be modified by public API.
+     * because {@code GridExtent} coordinate values cannot be modified by public API.
      *
      * @param dimension  number of dimensions.
      * @param axisTypes  the axis types, or {@code null} if unspecified.
@@ -971,7 +971,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
 
     /**
      * Returns the type (vertical, temporal, …) of grid axis at given dimension.
-     * This information is provided because the grid axis type can not always be inferred from the context.
+     * This information is provided because the grid axis type cannot always be inferred from the context.
      * Some examples are:
      *
      * <ul>
@@ -1059,7 +1059,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
      *
      * @param  cornerToCRS  a transform from <em>cell corners</em> to real world coordinates.
      * @return this grid extent in real world coordinates.
-     * @throws TransformException if the envelope can not be computed with the given transform.
+     * @throws TransformException if the envelope cannot be computed with the given transform.
      *
      * @see GridGeometry#getEnvelope()
      * @see org.opengis.referencing.datum.PixelInCell#CELL_CORNER
@@ -1088,7 +1088,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
      *                      If different, then this is assumed to map cell centers instead of cell corners.
      * @param  fallback     bounds to use if some values are still NaN after conversion, or {@code null} if none.
      * @return this grid extent in real world coordinates.
-     * @throws TransformException if the envelope can not be computed with the given transform.
+     * @throws TransformException if the envelope cannot be computed with the given transform.
      *
      * @see #GridExtent(AbstractEnvelope, GridRoundingMode, int[], GridExtent, int[])
      *
@@ -1127,7 +1127,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
      *                      If different, then this is assumed to map cell centers instead of cell corners.
      * @param  fallback     bounds to use if some values are still NaN after conversion, or {@code null} if none.
      * @return this grid extent in real world coordinates.
-     * @throws TransformException if the envelope can not be computed with the given transform.
+     * @throws TransformException if the envelope cannot be computed with the given transform.
      *
      * @see #GridExtent(AbstractEnvelope, GridRoundingMode, int[], GridExtent, int[])
      *
@@ -1281,7 +1281,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
      *
      * <p>This method performs a <cite>dimensionality reduction</cite> and can be used as the
      * converse of {@link #insertDimension(int, DimensionNameType, long, long, boolean)}.
-     * This method can not be used for changing dimension order.</p>
+     * This method cannot be used for changing dimension order.</p>
      *
      * @param  dimensions  the dimensions to select, in strictly increasing order.
      * @return the sub-envelope, or {@code this} if the given array contains all dimensions of this grid extent.
@@ -1315,7 +1315,7 @@ public class GridExtent implements GridEnvelope, LenientComparable, Serializable
     /**
      * Verifies the validity of a given {@code dimensions} argument.
      *
-     * @param  dimensions  the user-supplied argument to validate.
+     * @param  dimensions  the user supplied argument to validate.
      * @param  limit       maximal number of dimensions, exclusive.
      * @return a clone of the given array, or {@code null} if the caller can return {@code this}.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtentCRS.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtentCRS.java
index 72e9e2a838..62e256304e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtentCRS.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridExtentCRS.java
@@ -242,7 +242,7 @@ final class GridExtentCRS {
      *         A {@code null} means to handle as an identity transform.
      * @param  types   the value of {@link GridExtent#types} or a default value (shall not be {@code null}).
      * @param  locale  locale to use for axis names, or {@code null} for default.
-     * @return coordinate system for the grid extent, or {@code null} if it can not be inferred.
+     * @return coordinate system for the grid extent, or {@code null} if it cannot be inferred.
      * @throws FactoryException if an error occurred during the use of {@link CSFactory}.
      */
     private static CoordinateSystem createCS(final int tgtDim, final Matrix gridToCRS,
@@ -391,7 +391,7 @@ final class GridExtentCRS {
      * It is the converse of {@link GridExtent#typeFromAxes(CoordinateReferenceSystem, int)}.
      *
      * <p>The CRS type is always engineering.
-     * We can not create temporal CRS because we do not know the temporal datum origin.</p>
+     * We cannot create temporal CRS because we do not know the temporal datum origin.</p>
      *
      * @param  gridToCRS  matrix of the transform used for converting grid cell indices to envelope coordinates.
      *         It does not matter whether it maps pixel center or corner (translation coefficients are ignored).
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java
index 7261071b29..ae57aa5e90 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridGeometry.java
@@ -124,7 +124,7 @@ import static org.apache.sis.referencing.CRS.findOperation;
  * but non-linear conversions should not be used for expressing map projections (projections should be specified
  * in the {@linkplain #getCoordinateReferenceSystem() Coordinate Reference System} (CRS) instead).
  *
- * <p>Some applications can not handle non-linear "grid to CRS" conversions.
+ * <p>Some applications cannot handle non-linear "grid to CRS" conversions.
  * For example encoding an image in a GeoTIFF file is much simpler if the "grid to CRS" conversion is linear.
  * The {@link DomainLinearizer} class can be used for replacing non-linear conversions by linear approximations.</p>
  *
@@ -186,7 +186,7 @@ public class GridGeometry implements LenientComparable, Serializable {
 
     /**
      * A bitmask to specify the validity of the geographic bounding box.
-     * This information can sometime be derived from the envelope and the CRS.
+     * This information can sometimes be derived from the envelope and the CRS.
      * It is an optional element even with a complete grid geometry since the
      * coordinate reference system is not required to have an horizontal component.
      *
@@ -196,7 +196,7 @@ public class GridGeometry implements LenientComparable, Serializable {
 
     /**
      * A bitmask to specify the validity of the temporal period.
-     * This information can sometime be derived from the envelope and the CRS.
+     * This information can sometimes be derived from the envelope and the CRS.
      * It is an optional element even with a complete grid geometry since the
      * coordinate reference system is not required to have a temporal component.
      *
@@ -290,7 +290,7 @@ public class GridGeometry implements LenientComparable, Serializable {
     /**
      * An "empty" grid geometry with no value defined. All getter methods invoked on this instance will cause
      * {@link IncompleteGridGeometryException} to be thrown. This instance can be used as a place-holder when
-     * the grid geometry can not be obtained.
+     * the grid geometry cannot be obtained.
      */
     public static final GridGeometry UNDEFINED = new GridGeometry();
 
@@ -345,7 +345,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      * @param  extent   the new extent for the grid geometry to construct, or {@code null} if none.
      * @param  toOther  transform from this grid coordinates to {@code other} grid coordinates, or {@code null} if none.
      * @throws NullPointerException if {@code extent} is {@code null} and the other grid geometry contains no other information.
-     * @throws TransformException if the math transform can not compute the geospatial envelope from the grid extent.
+     * @throws TransformException if the math transform cannot compute the geospatial envelope from the grid extent.
      *
      * @see GridDerivation#subgrid(Envelope, double...)
      *
@@ -438,7 +438,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      * @param  crs        the coordinate reference system of the "real world" coordinates, or {@code null} if unknown.
      * @throws NullPointerException if {@code extent}, {@code gridToCRS} and {@code crs} arguments are all null.
      * @throws MismatchedDimensionException if the math transform and the CRS do not have consistent dimensions.
-     * @throws IllegalGridGeometryException if the math transform can not compute the geospatial envelope or resolution from the grid extent.
+     * @throws IllegalGridGeometryException if the math transform cannot compute the geospatial envelope or resolution from the grid extent.
      */
     public GridGeometry(final GridExtent extent, final PixelInCell anchor, final MathTransform gridToCRS, final CoordinateReferenceSystem crs) {
         if (gridToCRS != null) {
@@ -497,7 +497,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      * of the rightmost cell and similarly along other axes. This constructor tries to store a geospatial envelope close
      * to the specified envelope, but there is no guarantee that the envelope returned by {@link #getEnvelope()} will be
      * equal to the given envelope. The envelope stored in the new {@code GridGeometry} may be slightly smaller, larger or
-     * shifted because the floating point values used in geospatial envelope can not always be mapped to the integer
+     * shifted because the floating point values used in geospatial envelope cannot always be mapped to the integer
      * coordinates used in {@link GridExtent}.
      * The rules for deciding whether coordinates should be rounded toward nearest integers,
      * to {@linkplain Math#floor(double) floor} or to {@linkplain Math#ceil(double) ceil} values
@@ -521,7 +521,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      *                    There is no guarantee that the envelope actually stored in the {@code GridGeometry}
      *                    will be equal to this specified envelope.
      * @param  rounding   controls behavior of rounding from floating point values to integers.
-     * @throws IllegalGridGeometryException if the math transform can not compute the grid extent or the resolution.
+     * @throws IllegalGridGeometryException if the math transform cannot compute the grid extent or the resolution.
      */
     @SuppressWarnings("null")
     public GridGeometry(final PixelInCell anchor, final MathTransform gridToCRS, final Envelope envelope, final GridRoundingMode rounding) {
@@ -548,7 +548,7 @@ public class GridGeometry implements LenientComparable, Serializable {
             env.setCoordinateReferenceSystem(envelope.getCoordinateReferenceSystem());
             this.envelope = new ImmutableEnvelope(env);
             if (scales == null) try {
-                // `gridToCRS` can not be null if `cornerToCRS` is non-null.
+                // `gridToCRS` cannot be null if `cornerToCRS` is non-null.
                 scales = gridToCRS.derivative(new DirectPositionView.Double(extent.getPointOfInterest(anchor)));
                 numToIgnore = 0;
             } catch (TransformException e) {
@@ -938,7 +938,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      * @param  crs  the desired coordinate reference system for the returned envelope.
      * @return the bounding box in "real world" coordinates (never {@code null}).
      * @throws IncompleteGridGeometryException if this grid geometry has no extent and no envelope.
-     * @throws TransformException if the envelope can not be transformed to the specified CRS.
+     * @throws TransformException if the envelope cannot be transformed to the specified CRS.
      *
      * @since 1.2
      */
@@ -1517,7 +1517,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      *
      * @param  newExtent  extent of the grid geometry to return.
      * @return grid geometry with the given extent. May be {@code this} if there is no change.
-     * @throws TransformException if the geospatial envelope can not be recomputed with the new grid extent.
+     * @throws TransformException if the geospatial envelope cannot be recomputed with the new grid extent.
      *
      * @since 1.3
      */
@@ -1547,7 +1547,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      * The number of dimensions of the sub grid geometry will be {@code dimensions.length}.
      *
      * <p>This method performs a <cite>dimensionality reduction</cite>.
-     * This method can not be used for changing dimension order.</p>
+     * This method cannot be used for changing dimension order.</p>
      *
      * @param  dimensions  the grid (not CRS) dimensions to select, in strictly increasing order.
      * @return the sub-grid geometry, or {@code this} if the given array contains all dimensions of this grid geometry.
@@ -1630,7 +1630,7 @@ public class GridGeometry implements LenientComparable, Serializable {
      * @param  anchor  {@linkplain PixelInCell#CELL_CENTER Cell center} for OGC conventions or
      *                 {@linkplain PixelInCell#CELL_CORNER cell corner} for Java2D/JAI conventions.
      * @return transform from cell coordinates in this grid to cell coordinates in the given grid.
-     * @throws TransformException if the math transform can not be created.
+     * @throws TransformException if the math transform cannot be created.
      *
      * @since 1.1
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ImageRenderer.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ImageRenderer.java
index f129e9d96c..9cf3aec29a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ImageRenderer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ImageRenderer.java
@@ -88,7 +88,7 @@ import static org.apache.sis.image.PlanarImage.GRID_GEOMETRY_KEY;
  *                 renderer.setData(data);
  *                 return renderer.createImage();
  *             } catch (IllegalArgumentException | ArithmeticException | RasterFormatException e) {
- *                 throw new CannotEvaluateException("Can not create an image.", e);
+ *                 throw new CannotEvaluateException("Cannot create an image.", e);
  *             }
  *         }
  *     }
@@ -297,7 +297,7 @@ public class ImageRenderer {
      *
      * @param  coverage     the source coverage for which to build an image.
      * @param  sliceExtent  the domain from which to create an image, or {@code null} for the {@code coverage} extent.
-     * @throws SubspaceNotSpecifiedException if this method can not infer a two-dimensional slice from {@code sliceExtent}.
+     * @throws SubspaceNotSpecifiedException if this method cannot infer a two-dimensional slice from {@code sliceExtent}.
      * @throws DisjointExtentException if the given extent does not intersect the given coverage.
      * @throws ArithmeticException if a stride calculation overflows the 32 bits integer capacity.
      */
@@ -671,7 +671,7 @@ public class ImageRenderer {
      *     } : null);
      * }
      *
-     * @param colors  the colors to use for each category. The {@code colors} argument can not be null,
+     * @param colors  the colors to use for each category. The {@code colors} argument cannot be null,
      *                but {@code colors.apply(Category)} can return null.
      *
      * @since 1.2
@@ -702,7 +702,7 @@ public class ImageRenderer {
             strideFactor = isInterleaved ? getNumBands() : 1;
         }
         final int ls = multiplyExact(scanlineStride, strideFactor);     // Real scanline stride.
-        final int ps = pixelStride * strideFactor;                      // Can not fail if above operation did not fail.
+        final int ps = pixelStride * strideFactor;                      // Cannot fail if above operation did not fail.
         /*
          * Number of data elements from the first element of the bank to the first sample of the band.
          * This is usually 0 for all bands, unless the upper-left corner (minX, minY) is not (0,0).
@@ -821,7 +821,7 @@ public class ImageRenderer {
          * If the key is {@value org.apache.sis.image.PlanarImage#GRID_GEOMETRY_KEY},
          * then the {@link GridGeometry} will be computed when first needed.
          *
-         * @throws ImagingOpException if the property value can not be computed.
+         * @throws ImagingOpException if the property value cannot be computed.
          */
         @Override
         public Object getProperty(final String key) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/IncompleteGridGeometryException.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/IncompleteGridGeometryException.java
index dfc4572222..d53fd25168 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/IncompleteGridGeometryException.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/IncompleteGridGeometryException.java
@@ -18,7 +18,7 @@ package org.apache.sis.coverage.grid;
 
 
 /**
- * Thrown by {@link GridGeometry} when a grid geometry can not provide the requested information.
+ * Thrown by {@link GridGeometry} when a grid geometry cannot provide the requested information.
  * For example this exception is thrown when {@link GridGeometry#getEnvelope()} is invoked while
  * the grid geometry has been built with a null envelope.
  *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ResampledGridCoverage.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ResampledGridCoverage.java
index 40ed350813..a82a401319 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ResampledGridCoverage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/ResampledGridCoverage.java
@@ -46,7 +46,7 @@ import org.apache.sis.util.Utilities;
 
 /**
  * A multi-dimensional grid coverage where each two-dimensional slice is the resampling
- * of data from another grid coverage. This class is used when the resampling can not be
+ * of data from another grid coverage. This class is used when the resampling cannot be
  * stored in a {@link GridCoverage2D}.
  *
  * @author  Martin Desruisseaux (Geomatys)
@@ -72,7 +72,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
      * Mapping from dimensions in this {@code ResampledGridCoverage} to dimensions in the {@linkplain #source source} coverage.
      * The mapping is represented by a bitmask. For a target dimension <var>i</var>, {@code toSourceDimensions[i]}
      * has a bit set to 1 for all source dimensions used in the computation of that target dimension.
-     * This array may be {@code null} if the mapping can not be computed or if it is not needed.
+     * This array may be {@code null} if the mapping cannot be computed or if it is not needed.
      */
     private final long[] toSourceDimensions;
 
@@ -130,7 +130,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
      * @param  mt      the transform (mapping pixel centers) for which to determine dimension dependencies.
      * @param  domain  domain of this {@code}.
      * @return for each source dimension, a bitmask of target dependent dimensions.
-     *         May be {@code null} if the mapping can not be computed or if it is not needed.
+     *         May be {@code null} if the mapping cannot be computed or if it is not needed.
      */
     private static long[] findDependentDimensions(final MathTransform mt, final GridGeometry domain) {
         final int srcDim = mt.getSourceDimensions();
@@ -294,7 +294,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
      * @param  allowOperationReplacement  whether to allow the replacement of this operation by a more efficient one.
      * @return a grid coverage with the characteristics specified in the given grid geometry.
      * @throws IncompleteGridGeometryException if the source grid geometry is missing an information.
-     * @throws TransformException if some coordinates can not be transformed to the specified target.
+     * @throws TransformException if some coordinates cannot be transformed to the specified target.
      */
     static GridCoverage create(final GridCoverage source, final GridGeometry target, final ImageProcessor processor,
                                final boolean allowOperationReplacement)
@@ -306,7 +306,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
         /*
          * Compute the transform from source pixels to target CRS (to be completed to target pixels later).
          * The following lines may throw IncompleteGridGeometryException, which is desired because if that
-         * transform is missing, we can not continue (we have no way to guess it).
+         * transform is missing, we cannot continue (we have no way to guess it).
          */
         // Finder is initialized to PixelInCell.CELL_CORNER.
         final MathTransform sourceCornerToCRS = changeOfCRS.gridToCRS();
@@ -521,7 +521,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
     /**
      * Returns a two-dimensional slice of resampled grid data as a rendered image.
      *
-     * @throws CannotEvaluateException if this method can not produce the rendered image.
+     * @throws CannotEvaluateException if this method cannot produce the rendered image.
      */
     @Override
     public RenderedImage render(GridExtent sliceExtent) {
@@ -538,7 +538,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
             height = Math.toIntExact(sliceExtent.getSize(resampledDimensions[1]));
             /*
              * Convert the given `sliceExtent` (in units of this grid) to units of the source grid.
-             * If a dimension can not be converted (e.g. because a `gridToCRS` transform has a NaN
+             * If a dimension cannot be converted (e.g. because a `gridToCRS` transform has a NaN
              * factor in that dimension), the corresponding source grid coordinates will be copied.
              */
             final GeneralEnvelope sourceBounds = sliceExtent.toEnvelope(toSourceCorner, toSourceCenter, null);
@@ -614,7 +614,7 @@ final class ResampledGridCoverage extends DerivedGridCoverage {
             final int[] requiredSources = sep.getSourceDimensions();
             if (requiredSources.length > BIDIMENSIONAL) {
                 /*
-                 * If we enter in this block, TransformSeparator can not create a MathTransform with only the 2
+                 * If we enter in this block, TransformSeparator cannot create a MathTransform with only the 2
                  * requested source dimensions; it needs more sources. In such case, if coordinates in missing
                  * dimensions can be set to constant values (grid low == grid high), create a transform which
                  * will add new dimensions with coordinates set to those constant values. The example below
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/SliceGeometry.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/SliceGeometry.java
index bccddf4432..25903d8e13 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/SliceGeometry.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/SliceGeometry.java
@@ -95,7 +95,7 @@ final class SliceGeometry implements Function<RenderedImage, GridGeometry> {
      * property value for the given image.
      *
      * @param  image  the image for which to compute the image geometry.
-     * @throws ImagingOpException if the property can not be computed.
+     * @throws ImagingOpException if the property cannot be computed.
      */
     @Override
     public GridGeometry apply(final RenderedImage image) {
@@ -284,7 +284,7 @@ final class SliceGeometry implements Function<RenderedImage, GridGeometry> {
      * @param  resolution      value of {@link GridGeometry#resolution} (may be {@code null}).
      * @param  gridDimensions  the grid (source) dimensions to keep.
      * @param  dimCRS          desired number of CRS dimensions, or -1 for automatic.
-     * @return the CRS (target) dimensions to keep, or {@code null} if this method can not compute them.
+     * @return the CRS (target) dimensions to keep, or {@code null} if this method cannot compute them.
      */
     private static int[] findTargetDimensions(final MathTransform gridToCRS, final GridExtent extent,
                                               final double[] resolution, int[] gridDimensions, int dimCRS)
@@ -339,7 +339,7 @@ final class SliceGeometry implements Function<RenderedImage, GridGeometry> {
                 }
             }
             if ((kmax | jmax) < 0) {
-                return null;                            // Can not provide the requested number of dimensions.
+                return null;                            // Cannot provide the requested number of dimensions.
             }
             if (max > 0) {                              // Dimensions are independent if scale factor is zero.
                 if (jmax >= Long.SIZE) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java
index 3b1680f7b1..209f027898 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractAssociation.java
@@ -248,7 +248,7 @@ public abstract class AbstractAssociation extends Field<Feature> implements Feat
      * However subclasses may choose to do otherwise.
      *
      * @return a clone of this association.
-     * @throws CloneNotSupportedException if this association can not be cloned.
+     * @throws CloneNotSupportedException if this association cannot be cloned.
      *         The default implementation never throw this exception. However subclasses may throw it.
      */
     @Override
diff --git 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
index ea8ec1c0ab..d97931e8a7 100644
--- 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
@@ -491,7 +491,7 @@ public abstract class AbstractAttribute<V> extends Field<V> implements Attribute
      *
      * @return a clone of this attribute.
      * @throws CloneNotSupportedException if this attribute, the {@linkplain #getValue() value}
-     *         or one of its {@linkplain #characteristics() characteristics} can not be cloned.
+     *         or one of its {@linkplain #characteristics() characteristics} cannot be cloned.
      */
     @Override
     @SuppressWarnings({"CloneInNonCloneableClass", "unchecked"})
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
index 3afed12916..1698f837e0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractFeature.java
@@ -194,14 +194,14 @@ public abstract class AbstractFeature implements Feature, Serializable {
      * That default implementation is intended to make easier for developers to create their own
      * customized <code>AbstractFacture</code> implementations, but has drawbacks:
      * the given {@code Property} instance is not stored (only its {@linkplain AbstractAttribute#getValue() value}
-     * is stored), and it can not have custom {@linkplain AbstractAttribute#characteristics() characteristics}.
+     * is stored), and it cannot have custom {@linkplain AbstractAttribute#characteristics() characteristics}.
      * Implementers are encouraged to override this method if they can provide a better implementation.
      * Note that this is already the case when using implementations created by {@link DefaultFeatureType#newInstance()}.</div>
      *
      * @param  property  the property to set.
      * @throws PropertyNotFoundException if the name of the given property is not a property name of this feature.
      * @throws InvalidPropertyValueException if the value of the given property is not valid.
-     * @throws IllegalArgumentException if the property can not be set for another reason.
+     * @throws IllegalArgumentException if the property cannot be set for another reason.
      *
      * @see #setPropertyValue(String, Object)
      */
@@ -323,9 +323,9 @@ public abstract class AbstractFeature implements Feature, Serializable {
      *
      * <h4>Multi-valued properties and collections</h4>
      * In the case of multi-valued properties (“max. occurs” &gt; 1), the collection returned by this method may
-     * or may not be modifiable, at implementation choice. Generally the caller can not add new elements into the
+     * or may not be modifiable, at implementation choice. Generally the caller cannot add new elements into the
      * returned collection anyway since {@code Collection<?>} does not allow such operations, and more specific
-     * casts (e.g. {@code Collection<String>} can not be checked at runtime (at least as of Java 8).
+     * casts (e.g. {@code Collection<String>} cannot be checked at runtime (at least as of Java 8).
      * If a type-safe modifiable collection is desired, the following approach can be used instead:
      *
      * {@preformat java
@@ -510,7 +510,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
                     } while ((element = it.next()) == null || base.isInstance(element));
                     // Found an illegal value. Exeption is thrown below.
                 }
-                throw new ClassCastException(illegalValueClass(pt, base, element));         // `element` can not be null here.
+                throw new ClassCastException(illegalValueClass(pt, base, element));         // `element` cannot be null here.
             }
         }
         ((Attribute) attribute).setValue(value);
@@ -718,8 +718,8 @@ public abstract class AbstractFeature implements Feature, Serializable {
 
     /**
      * Returns the exception message for a property type which is neither an attribute or an association.
-     * This method is invoked after a {@link PropertyType} has been found for the user-supplied name,
-     * but that property can not be stored in or extracted from a {@link Property} instance.
+     * This method is invoked after a {@link PropertyType} has been found for the user supplied name,
+     * but that property cannot be stored in or extracted from a {@link Property} instance.
      */
     static String unsupportedPropertyType(final GenericName name) {
         return Resources.format(Resources.Keys.CanNotInstantiateProperty_1, name);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
index fa35d1ac16..d2891f8d1c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractOperation.java
@@ -129,7 +129,7 @@ public abstract class AbstractOperation extends AbstractIdentifiedType implement
 
     /**
      * Returns a map that can be used for creating the {@link #getResult()} type.
-     * This method can be invoked for subclass constructor with the user-supplied map in argument.
+     * This method can be invoked for subclass constructor with the user supplied map in argument.
      * If the given map contains at least one key prefixed by {@value #RESULT_PREFIX}, then the values
      * associated to those keys will be used.
      *
@@ -194,7 +194,7 @@ public abstract class AbstractOperation extends AbstractIdentifiedType implement
      * @param  parameters  the parameters to use for executing the operation.
      *                     Can be {@code null} if the operation does not take any parameters.
      * @return the operation result, or {@code null} if this operation does not produce any result.
-     * @throws FeatureOperationException if the operation execution can not complete.
+     * @throws FeatureOperationException if the operation execution cannot complete.
      */
     @Override
     public abstract Property apply(Feature feature, ParameterValueGroup parameters) throws FeatureOperationException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java b/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
index 0c11088ca4..74b5159106 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/CharacteristicTypeMap.java
@@ -66,7 +66,7 @@ final class CharacteristicTypeMap extends AbstractMap<String,AttributeType<?>> {
      */
 
     /**
-     * Characteristics of an other attribute type (the {@code source} attribute given to the constructor).
+     * Characteristics of another attribute type (the {@code source} attribute given to the constructor).
      * This array shall not be modified.
      */
     final AttributeType<?>[] characterizedBy;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
index ef079ac668..80acca8f8f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAssociationRole.java
@@ -351,7 +351,7 @@ public class DefaultAssociationRole extends FieldType implements FeatureAssociat
     /**
      * Returns the type of feature values.
      *
-     * <p>This method can not be invoked if {@link #isResolved()} returns {@code false}.
+     * <p>This method cannot be invoked if {@link #isResolved()} returns {@code false}.
      * However it is still possible to {@linkplain Features#getValueTypeName(PropertyType)
      * get the associated feature type name}.</p>
      *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java
index 65788e7c41..3f0cedf616 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/DefaultAttributeType.java
@@ -66,7 +66,7 @@ import org.opengis.feature.AttributeType;
  * (e.g. for all temperature measurements in the same dataset), but this is not mandatory.
  *
  * <div class="note"><b>Design note:</b>
- * Such accuracy could be stored as an ordinary, independent, attribute (like an other column in a table),
+ * Such accuracy could be stored as an ordinary, independent, attribute (like another column in a table),
  * but storing accuracy as a {@linkplain #characteristics() characteristic} of the measurement attribute instead
  * provides the following advantages:
  *
diff --git 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
index bd814c2dc6..21113eed26 100644
--- 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
@@ -268,7 +268,7 @@ public class DefaultFeatureType extends AbstractIdentifiedType implements Featur
             this.superTypes = CollectionsExt.immutableSet(true, superTypes);
             for (final FeatureType type : this.superTypes) {
                 if (type instanceof NamedFeatureType) {
-                    // Hierarchy of feature types can not be cyclic.
+                    // Hierarchy of feature types cannot be cyclic.
                     throw new IllegalArgumentException(Resources.format(Resources.Keys.UnresolvedFeatureName_1, type.getName()));
                 }
             }
@@ -608,7 +608,7 @@ public class DefaultFeatureType extends AbstractIdentifiedType implements Featur
 
     /**
      * Returns {@code true} if the feature type acts as an abstract super-type.
-     * Abstract types can not be {@linkplain #newInstance() instantiated}.
+     * Abstract types cannot be {@linkplain #newInstance() instantiated}.
      *
      * @return {@code true} if the feature type acts as an abstract super-type.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/DenseFeature.java b/core/sis-feature/src/main/java/org/apache/sis/feature/DenseFeature.java
index 13564b3632..71576f36fd 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/DenseFeature.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/DenseFeature.java
@@ -133,7 +133,7 @@ final class DenseFeature extends AbstractFeature implements Cloneable {
      *
      * @param  property  the property to set.
      * @throws IllegalArgumentException if the type of the given property is not one of the types
-     *         known to this feature, or if the property can not be set or another reason.
+     *         known to this feature, or if the property cannot be set or another reason.
      */
     @Override
     public void setProperty(final Property property) throws IllegalArgumentException {
@@ -227,7 +227,7 @@ final class DenseFeature extends AbstractFeature implements Cloneable {
      * @param  name   the attribute name.
      * @param  value  the new value for the given attribute (may be {@code null}).
      * @throws ClassCastException if the value is not assignable to the expected value class.
-     * @throws IllegalArgumentException if the given value can not be assigned for another reason.
+     * @throws IllegalArgumentException if the given value cannot be assigned for another reason.
      */
     @Override
     public void setPropertyValue(final String name, Object value) throws IllegalArgumentException {
@@ -288,7 +288,7 @@ final class DenseFeature extends AbstractFeature implements Cloneable {
      * property {@code clone()} methods.
      *
      * @return a clone of this attribute.
-     * @throws CloneNotSupportedException if this feature can not be cloned, typically because
+     * @throws CloneNotSupportedException if this feature cannot be cloned, typically because
      *         {@code clone()} on a property instance failed.
      */
     @Override
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java
index d5e55261c6..dbcf83a5b7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/EnvelopeOperation.java
@@ -162,7 +162,7 @@ final class EnvelopeOperation extends AbstractOperation {
                 CoordinateReferenceSystem attributeCRS = null;
                 /*
                  * Set `characterizedByCRS` to true if we find at least one attribute which may have the
-                 * "CRS" characteristic. Note that we can not rely on `attributeCRS` being non-null
+                 * "CRS" characteristic. Note that we cannot rely on `attributeCRS` being non-null
                  * because an attribute may be characterized by a CRS without providing default CRS.
                  */
                 final AttributeType<?> ct = at.get().characteristics().get(AttributeConvention.CRS);
@@ -295,7 +295,7 @@ final class EnvelopeOperation extends AbstractOperation {
          *
          * @return the union of envelopes of all geometries in the attribute specified to the constructor,
          *         or {@code null} if none.
-         * @throws FeatureOperationException if the envelope can not be computed.
+         * @throws FeatureOperationException if the envelope cannot be computed.
          */
         @Override
         public Envelope getValue() throws FeatureOperationException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
index 150a87b06c..6f9126e5da 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureFormat.java
@@ -72,7 +72,7 @@ import org.opengis.feature.Operation;
  *
  * <div class="note"><b>Example:</b> a feature named “City” and containing 3 properties (“name”, “population” and
  * “twin town”) may be formatted like below. The two first properties are {@linkplain AbstractAttribute attributes}
- * while the last property is an {@linkplain AbstractAssociation association} to an other feature.
+ * while the last property is an {@linkplain AbstractAssociation association} to another feature.
  *
  * {@preformat text
  *   City
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperationException.java b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperationException.java
index bbdcdfa3cf..5993abae8f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperationException.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperationException.java
@@ -21,7 +21,7 @@ import org.opengis.util.InternationalString;
 
 
 /**
- * Thrown when a property value can not be computed.
+ * Thrown when a property value cannot be computed.
  * This exception may occur during a call to {@link AbstractAttribute#getValue()} on an attribute
  * instance which computes its value dynamically instead of returning a stored value.
  * It may be for example the attributes produced by {@link FeatureOperations}.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java
index 0d16889ec0..932f84b002 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/FeatureOperations.java
@@ -34,7 +34,7 @@ import org.opengis.feature.FeatureAssociationRole;
 
 
 /**
- * A set of pre-defined operations expecting a {@code Feature} as input and producing an {@code Attribute} as output.
+ * A set of predefined operations expecting a {@code Feature} as input and producing an {@code Attribute} as output.
  * Those operations can be used for creating <cite>dynamic properties</cite> which compute their value on-the-fly
  * from the values of other properties.
  *
@@ -181,7 +181,7 @@ public final class FeatureOperations extends Static {
      *   <li>The single properties can be either attributes or operations that produce attributes;
      *       feature associations are not allowed, unless they have an {@code "sis:identifier"} property.</li>
      *   <li>Each attribute shall contain at most one value; multi-valued attributes are not allowed.</li>
-     *   <li>The delimiter can not contain the {@code '\'} escape character.</li>
+     *   <li>The delimiter cannot contain the {@code '\'} escape character.</li>
      * </ul>
      *
      * <h4>Read/write behavior</h4>
@@ -254,7 +254,7 @@ public final class FeatureOperations extends Static {
      * @param  geometryAttributes  the operation or attribute type from which to get geometry values.
      *                             Any element which is {@code null} or has a non-geometric value class will be ignored.
      * @return an operation which will compute the envelope encompassing all geometries in the given attributes.
-     * @throws FactoryException if a coordinate operation to the target CRS can not be created.
+     * @throws FactoryException if a coordinate operation to the target CRS cannot be created.
      */
     public static Operation envelope(final Map<String,?> identification, final CoordinateReferenceSystem crs,
             final PropertyType... geometryAttributes) throws FactoryException
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java b/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
index 86e00cb23d..f81a829936 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/Features.java
@@ -188,7 +188,7 @@ public final class Features extends Static {
      * For {@linkplain FeatureAssociationRole feature associations}, the value type is {@link Feature}.
      * For {@linkplain Operation operations}, the value type is determined recursively from the
      * {@linkplain Operation#getResult() operation result}.
-     * If the value type can not be determined, then this method returns {@code null}.
+     * If the value type cannot be determined, then this method returns {@code null}.
      *
      * @param  type  the property for which to get the type of values, or {@code null}.
      * @return the type of values provided by the given property, or {@code null} if unknown.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java b/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java
index 022a8bd89d..34cf052bc0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/FieldType.java
@@ -132,7 +132,7 @@ abstract class FieldType extends AbstractIdentifiedType implements PropertyType
      *
      * @param deprecated  whether the type to format is deprecated.
      * @param className   the interface name of the object on which {@code toString()} is invoked.
-     * @param name        the property type name, sometime {@link #getName()} or sometime the name of another object.
+     * @param name        the property type name, sometimes {@link #getName()} or sometimes the name of another object.
      * @param valueType   the name of value class (attribute), or the feature type name (association).
      */
     static StringBuilder toString(final boolean deprecated, final String className, final GenericName name, final Object valueType) {
@@ -161,7 +161,7 @@ abstract class FieldType extends AbstractIdentifiedType implements PropertyType
      *
      * @param deprecated  whether the type to format is deprecated.
      * @param className   the interface name of the object on which {@code toString()} is invoked.
-     * @param name        the property type name, sometime {@link #getName()} or sometime the name of another object.
+     * @param name        the property type name, sometimes {@link #getName()} or sometimes the name of another object.
      * @param valueType   the name of value class (attribute), or the feature type name (association).
      * @param values      the actual values.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAssociation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAssociation.java
index ebfe2aadf4..f93b2df691 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAssociation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAssociation.java
@@ -29,7 +29,7 @@ import org.opengis.feature.MultiValuedPropertyException;
 
 
 /**
- * An instance of an {@linkplain DefaultAssociationRole association role} containing an arbitrary amount of values.
+ * An instance of an {@linkplain DefaultAssociationRole association role} containing an arbitrary number of values.
  *
  * <div class="note"><b>Note:</b> in the common case where the {@linkplain DefaultAssociationRole association role}
  * restricts the cardinality to [0 … 1], the {@link SingletonAssociation} implementation consumes less memory.</div>
@@ -153,7 +153,7 @@ final class MultiValuedAssociation extends AbstractAssociation {
      * the association {@linkplain #getValues() values} are <strong>not</strong> cloned.
      *
      * @return a clone of this association.
-     * @throws CloneNotSupportedException if this association can not be cloned.
+     * @throws CloneNotSupportedException if this association cannot be cloned.
      */
     @Override
     @SuppressWarnings("unchecked")
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java b/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java
index cf61e498af..68e7afba7f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/MultiValuedAttribute.java
@@ -29,7 +29,7 @@ import org.opengis.feature.MultiValuedPropertyException;
 
 
 /**
- * An instance of an {@linkplain DefaultAttributeType attribute type} containing an arbitrary amount of values.
+ * An instance of an {@linkplain DefaultAttributeType attribute type} containing an arbitrary number of values.
  *
  * <div class="note"><b>Note:</b> in the common case where the {@linkplain DefaultAttributeType attribute type}
  * restricts the cardinality to [0 … 1], the {@link SingletonAttribute} implementation consumes less memory.</div>
@@ -166,7 +166,7 @@ final class MultiValuedAttribute<V> extends AbstractAttribute<V> implements Clon
      * the attribute {@linkplain #getValues() values} are <strong>not</strong> cloned.
      *
      * @return a clone of this attribute.
-     * @throws CloneNotSupportedException if this attribute can not be cloned.
+     * @throws CloneNotSupportedException if this attribute cannot be cloned.
      */
     @Override
     @SuppressWarnings("unchecked")
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java b/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java
index c8e414b39a..32bccd56cc 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/PropertyView.java
@@ -150,7 +150,7 @@ abstract class PropertyView<V> extends Field<V> implements Property, Serializabl
     /**
      * Returns the values as a collection. This method tries to verify that the collection
      * contains elements of the expected type, but this verification is not always possible.
-     * Consequently this method may, sometime, be actually unsafe.
+     * Consequently this method may, sometimes, be actually unsafe.
      */
     @Override
     @SuppressWarnings("unchecked")              // Actually not 100% safe, but we have done our best.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/SparseFeature.java b/core/sis-feature/src/main/java/org/apache/sis/feature/SparseFeature.java
index 0d3e38c9d1..e8b779345c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/SparseFeature.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/SparseFeature.java
@@ -204,7 +204,7 @@ final class SparseFeature extends AbstractFeature implements Cloneable {
      *
      * @param  property  the property to set.
      * @throws IllegalArgumentException if the type of the given property is not one of the types
-     *         known to this feature, or if the property can not be set for another reason.
+     *         known to this feature, or if the property cannot be set for another reason.
      */
     @Override
     public void setProperty(final Property property) throws IllegalArgumentException {
@@ -278,7 +278,7 @@ final class SparseFeature extends AbstractFeature implements Cloneable {
      * @param  name   the attribute name.
      * @param  value  the new value for the given attribute (may be {@code null}).
      * @throws ClassCastException if the value is not assignable to the expected value class.
-     * @throws IllegalArgumentException if the given value can not be assigned for another reason.
+     * @throws IllegalArgumentException if the given value cannot be assigned for another reason.
      */
     @Override
     public void setPropertyValue(final String name, final Object value) throws IllegalArgumentException {
@@ -351,7 +351,7 @@ final class SparseFeature extends AbstractFeature implements Cloneable {
      * property {@code clone()} methods.
      *
      * @return a clone of this attribute.
-     * @throws CloneNotSupportedException if this feature can not be cloned, typically because
+     * @throws CloneNotSupportedException if this feature cannot be cloned, typically because
      *         {@code clone()} on a property instance failed.
      */
     @Override
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java
index 21fa046ae5..e2ea21cfd6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/StringJoinOperation.java
@@ -385,11 +385,11 @@ final class StringJoinOperation extends AbstractOperation {
 
         /**
          * Given a concatenated string as produced by {@link #getValue()}, separates the components around
-         * the separator and forward the values to the original attributes. If one of the values can not be
+         * the separator and forward the values to the original attributes. If one of the values cannot be
          * parsed, then this method does not store any property value ("all or nothing" behavior).
          *
          * @param  value  the concatenated string.
-         * @throws InvalidPropertyValueException if one of the attribute values can not be parsed to the expected type.
+         * @throws InvalidPropertyValueException if one of the attribute values cannot be parsed to the expected type.
          */
         @Override
         public void setValue(final String value) throws InvalidPropertyValueException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java b/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java
index d47b929d3f..a9a95b5752 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/Validator.java
@@ -76,7 +76,7 @@ final class Validator {
      *
      * <div class="note"><b>Note:</b>
      * setting {@code measureIdentification} to the property name may look like a departure from ISO intent,
-     * since the former should be an identification of the <em>quality measurement</em> rather then the measure itself.
+     * since the former should be an identification of the <em>quality measurement</em> rather than the measure itself.
      * (setting {@code measureDescription} to {@code type.getDescription()} would probably be wrong for that reason).
      * However {@code measureIdentification} is only an identifier, not a full description of the quality measurement
      * We are not strictly forbidden to use the same identifier for both the quality measurement than the measurement
@@ -165,7 +165,7 @@ final class Validator {
         for (final Object value : values) {
             /*
              * In theory, the following check is unnecessary since the type was constrained by the Attribute.setValue(V)
-             * method signature. However in practice the call to Attribute.setValue(…) is sometime done after type erasure,
+             * method signature. However in practice the call to Attribute.setValue(…) is sometimes done after type erasure,
              * so we are better to check.
              */
             final Class<?> valueClass = type.getValueClass();
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeRole.java b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeRole.java
index 8cf7af0dd8..355c5bb678 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeRole.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeRole.java
@@ -23,11 +23,11 @@ import org.apache.sis.feature.FeatureOperations;
 
 /**
  * Roles that can be associated to some attributes for instructing {@code FeatureTypeBuilder}
- * how to generate pre-defined operations. Those pre-defined operations are:
+ * how to generate predefined operations. Those predefined operations are:
  *
  * <ul>
  *   <li>A {@linkplain FeatureOperations#compound compound operation} for generating a unique identifier
- *       from an arbitrary amount of attribute values.</li>
+ *       from an arbitrary number of attribute values.</li>
  *   <li>A {@linkplain FeatureOperations#link link operation} for referencing a geometry to be used as the
  *       <em>default</em> geometry.</li>
  *   <li>An {@linkplain FeatureOperations#envelope operation} for computing the bounding box of all geometries
@@ -48,7 +48,7 @@ import org.apache.sis.feature.FeatureOperations;
 public enum AttributeRole {
     /**
      * Attribute value will be part of a unique identifier for the feature instance.
-     * An arbitrary amount of attributes can be flagged as identifier components:
+     * An arbitrary number of attributes can be flagged as identifier components:
      *
      * <ul>
      *   <li>If no attribute has this role, then no attribute is marked as feature identifier.</li>
@@ -66,7 +66,7 @@ public enum AttributeRole {
 
     /**
      * Attribute value will be flagged as the <em>default</em> geometry.
-     * Feature can have an arbitrary amount of geometry attributes,
+     * Feature can have an arbitrary number of geometry attributes,
      * but only one can be flagged as the default geometry.
      */
     DEFAULT_GEOMETRY;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java
index d77ca7e10f..628eb533f9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/AttributeTypeBuilder.java
@@ -76,7 +76,7 @@ import org.opengis.feature.AttributeType;
  */
 public final class AttributeTypeBuilder<V> extends PropertyTypeBuilder {
     /**
-     * The class of attribute values. Can not be changed after construction
+     * The class of attribute values. Cannot be changed after construction
      * because this value determines the parameterized type {@code <V>}.
      */
     private final Class<V> valueClass;
@@ -111,7 +111,7 @@ public final class AttributeTypeBuilder<V> extends PropertyTypeBuilder {
      * Creates a new builder initialized to the values of the given builder.
      * This constructor is for {@link #setValueClass(Class)} implementation only.
      *
-     * @throws UnconvertibleObjectException if the default value can not be converted to the given class.
+     * @throws UnconvertibleObjectException if the default value cannot be converted to the given class.
      */
     private AttributeTypeBuilder(final AttributeTypeBuilder<?> builder, final Class<V> valueClass)
             throws UnconvertibleObjectException
@@ -283,7 +283,7 @@ public final class AttributeTypeBuilder<V> extends PropertyTypeBuilder {
      * @param  type  the new class of attribute values.
      * @return the attribute builder — <em>not necessarily this instance.</em>
      * @throws UnconvertibleObjectException if the {@linkplain #getDefaultValue() default value}
-     *         can not be converted to the given {@code <N>} class.
+     *         cannot be converted to the given {@code <N>} class.
      *
      * @see #getValueClass()
      */
@@ -552,11 +552,11 @@ public final class AttributeTypeBuilder<V> extends PropertyTypeBuilder {
     }
 
     /**
-     * Returns the roles that the attribute play in the pre-defined operations managed by {@code AttributeTypeBuilder}.
+     * Returns the roles that the attribute play in the predefined operations managed by {@code AttributeTypeBuilder}.
      * The set returned by this method is <cite>live</cite>: additions or removal on that set are reflected back on
      * this builder, and conversely.
      *
-     * @return the roles that the attribute play in the pre-defined operations managed by {@code AttributeTypeBuilder}.
+     * @return the roles that the attribute play in the predefined operations managed by {@code AttributeTypeBuilder}.
      */
     public Set<AttributeRole> roles() {
         return new SetOfUnknownSize<AttributeRole>() {
@@ -620,7 +620,7 @@ public final class AttributeTypeBuilder<V> extends PropertyTypeBuilder {
     }
 
     /**
-     * Flags this attribute as an input of one of the pre-defined operations managed by {@code AttributeTypeBuilder}.
+     * Flags this attribute as an input of one of the predefined operations managed by {@code AttributeTypeBuilder}.
      * Invoking this method is equivalent to invoking <code>{@linkplain #roles()}.add(role)</code>.
      *
      * @param  role the role to add to the attribute (shall not be null).
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java
index 45c316f076..bf7053e6bb 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/CharacteristicTypeBuilder.java
@@ -56,7 +56,7 @@ public final class CharacteristicTypeBuilder<V> extends TypeBuilder {
     private AttributeTypeBuilder<?> owner;
 
     /**
-     * The class of characteristic values. Can not be changed after construction
+     * The class of characteristic values. Cannot be changed after construction
      * because this value determines the parameterized type {@code <V>}.
      */
     private final Class<V> valueClass;
@@ -76,7 +76,7 @@ public final class CharacteristicTypeBuilder<V> extends TypeBuilder {
      * Creates a new builder initialized to the values of the given builder but a different type.
      * This constructor is for {@link #setValueClass(Class)} implementation only.
      *
-     * @throws UnconvertibleObjectException if the default value can not be converted to the given class.
+     * @throws UnconvertibleObjectException if the default value cannot be converted to the given class.
      */
     private CharacteristicTypeBuilder(final CharacteristicTypeBuilder<?> builder, final Class<V> valueClass)
             throws UnconvertibleObjectException
@@ -228,7 +228,7 @@ public final class CharacteristicTypeBuilder<V> extends TypeBuilder {
      * @param  type  the new class of characteristic values.
      * @return the characteristic builder — <em>not necessarily this instance.</em>
      * @throws UnconvertibleObjectException if the {@linkplain #getDefaultValue() default value}
-     *         can not be converted to the given {@code <N>} class.
+     *         cannot be converted to the given {@code <N>} class.
      *
      * @see #getValueClass()
      */
diff --git 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
index 3ab4bdc099..3061acf27f 100644
--- 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
@@ -376,7 +376,7 @@ public class FeatureTypeBuilder extends TypeBuilder {
 
     /**
      * Returns {@code true} if the feature type to create will act as an abstract super-type.
-     * Abstract types can not be {@linkplain DefaultFeatureType#newInstance() instantiated}.
+     * Abstract types cannot be {@linkplain DefaultFeatureType#newInstance() instantiated}.
      *
      * @return {@code true} if the feature type to create will act as an abstract super-type.
      *
@@ -669,11 +669,11 @@ public class FeatureTypeBuilder extends TypeBuilder {
      *     builder.addAttribute(String.class).setName("City").setDefaultValue("Metropolis");
      * }
      *
-     * The value class can not be {@code Feature.class} since features shall be handled
+     * The value class cannot be {@code Feature.class} since features shall be handled
      * as {@linkplain #addAssociation(FeatureType) associations} instead of attributes.
      *
      * @param  <V>         the compile-time value of {@code valueClass} argument.
-     * @param  valueClass  the class of attribute values (can not be {@code Feature.class}).
+     * @param  valueClass  the class of attribute values (cannot be {@code Feature.class}).
      * @return a builder for an {@code AttributeType}.
      *
      * @see #properties()
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java
index 1858944f7c..6f1f9062db 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/OperationWrapper.java
@@ -24,7 +24,7 @@ import org.opengis.feature.PropertyType;
 
 
 /**
- * Wraps an existing operation. This package can not create new operations, except for a few special cases.
+ * Wraps an existing operation. This package cannot create new operations, except for a few special cases.
  * The user need to specify fully formed objects.
  *
  * @author  Johann Sorel (Geomatys)
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java
index 468997f43a..9fe6fbceaf 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/builder/TypeBuilder.java
@@ -224,7 +224,7 @@ public abstract class TypeBuilder implements Localized {
      * all {@code setName(…)} convenience methods in this builder delegate to this method.
      * Consequently this method can be used as a central place where to control the creation of all names.</div>
      *
-     * @param  name  the generic name (can not be {@code null}).
+     * @param  name  the generic name (cannot be {@code null}).
      * @return {@code this} for allowing method calls chaining.
      *
      * @see #getName()
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java b/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java
index a46b3bb248..ee0beeb2e0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java
@@ -188,8 +188,8 @@ walk:   if (specifiedType != null) try {
      *
      * @param  valueType  the type of features to be evaluated by the given expression.
      * @param  addTo      where to add the type of properties evaluated by the given expression.
-     * @return builder of the added property, or {@code null} if this method can not add a property.
-     * @throws IllegalArgumentException if this method can not determine the property type for the given feature type.
+     * @return builder of the added property, or {@code null} if this method cannot add a property.
+     * @throws IllegalArgumentException if this method cannot determine the property type for the given feature type.
      */
     @Override
     public PropertyTypeBuilder expectedType(FeatureType valueType, final FeatureTypeBuilder addTo) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryFunction.java b/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryFunction.java
index ad9064dd91..96fb5c5e3a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryFunction.java
@@ -117,8 +117,8 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      * If no {@code applyAs(…)} implementations can return null values,
      * this this method never return {@code null}.
      *
-     * @param  left   the left operand. Can not be null.
-     * @param  right  the right operand. Can not be null.
+     * @param  left   the left operand. Cannot be null.
+     * @param  right  the right operand. Cannot be null.
      * @return result of this function applied on the two given operands.
      *         May be {@code null} only if an {@code applyAs(…)} implementation returned a null value.
      */
@@ -161,7 +161,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      * Calculates this function using given operands of {@code long} primitive type. If this function is a filter,
      * then this method should returns an {@link Integer} value 0 or 1 for false or true respectively.
      * Otherwise the result is usually a {@link Long}, except for division which may produce other types.
-     * This method may return {@code null} if the operation can not apply on numbers.
+     * This method may return {@code null} if the operation cannot apply on numbers.
      *
      * @throws ArithmeticException if the operation overflows or if there is a division by zero.
      */
@@ -173,7 +173,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      * Calculates this function using given operands of {@code double} primitive type. If this function is a filter,
      * then this method should returns an {@link Integer} value 0 or 1 for false or true respectively.
      * Otherwise the result is usually a {@link Double}.
-     * This method may return {@code null} if the operation can not apply on numbers.
+     * This method may return {@code null} if the operation cannot apply on numbers.
      */
     protected Number applyAsDouble(double left, double right) {
         return null;
@@ -183,7 +183,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      * Calculates this function using given operands of {@code Fraction} type. If this function is a filter,
      * then this method should returns an {@link Integer} value 0 or 1 for false or true respectively.
      * Otherwise the result is usually a {@link Fraction}.
-     * This method may return {@code null} if the operation can not apply on numbers.
+     * This method may return {@code null} if the operation cannot apply on numbers.
      *
      * @throws ArithmeticException if the operation overflows or if there is a division by zero.
      */
@@ -195,7 +195,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      * Calculates this function using given operands of {@code BigInteger} type. If this function is a filter,
      * then this method should returns an {@link Integer} value 0 or 1 for false or true respectively.
      * Otherwise the result is usually a {@link BigInteger}, except for division which may produce other types.
-     * This method may return {@code null} if the operation can not apply on numbers.
+     * This method may return {@code null} if the operation cannot apply on numbers.
      *
      * @throws ArithmeticException if there is a division by zero.
      */
@@ -207,7 +207,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      * Calculates this function using given operands of {@code BigDecimal} type. If this function is a filter,
      * then this method should returns an {@link Integer} value 0 or 1 for false or true respectively.
      * Otherwise the result is usually a {@link BigDecimal}.
-     * This method may return {@code null} if the operation can not apply on numbers.
+     * This method may return {@code null} if the operation cannot apply on numbers.
      *
      * @throws ArithmeticException if a division does not have a terminating decimal expansion.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryGeometryFilter.java b/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryGeometryFilter.java
index cd60f3ff10..7bffd6ab5d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryGeometryFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/BinaryGeometryFilter.java
@@ -245,7 +245,7 @@ abstract class BinaryGeometryFilter<R,G> extends FilterNode<R> implements Spatia
     }
 
     /**
-     * Returns the value to return when a test can not be applied.
+     * Returns the value to return when a test cannot be applied.
      */
     protected abstract boolean negativeResult();
 }
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java b/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
index c7909b26f7..1bf4ceeeec 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
@@ -157,7 +157,7 @@ final class BinarySpatialFilter<R,G> extends BinaryGeometryFilter<R,G> implement
     }
 
     /**
-     * Returns the value to return when a test can not be applied.
+     * Returns the value to return when a test cannot be applied.
      */
     @Override
     protected boolean negativeResult() {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java b/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
index 9ac316519d..59f89d4dc8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
@@ -49,7 +49,7 @@ import org.opengis.filter.BetweenComparisonOperator;
 
 /**
  * Comparison operators between two values. Values are converted to the same type before comparison, using a widening
- * conversion (for example from {@link Integer} to {@link Double}). If values can not be compared because they can not
+ * conversion (for example from {@link Integer} to {@link Double}). If values cannot be compared because they cannot
  * be converted to a common type, or because a value is null or NaN, then the comparison result if {@code false}.
  * A consequence of this rule is that the conditions {@literal A < B} and {@literal A ≥ B} may be false at the same time.
  *
@@ -381,7 +381,7 @@ abstract class ComparisonFilter<R> extends BinaryFunction<R,Object,Object>
                 return ((Date) value).toInstant();
             } catch (UnsupportedOperationException e) {
                 /*
-                 * java.sql.Date and java.sql.Time can not be converted to Instant because a part
+                 * java.sql.Date and java.sql.Time cannot be converted to Instant because a part
                  * of their coordinates on the timeline is undefined.  For example in the case of
                  * java.sql.Date the hours, minutes and seconds are unspecified (which is not the
                  * same thing than assuming that those values are zero).
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/ConvertFunction.java b/core/sis-feature/src/main/java/org/apache/sis/filter/ConvertFunction.java
index 90adf3a07c..cfa70b8dc2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/ConvertFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/ConvertFunction.java
@@ -130,12 +130,12 @@ final class ConvertFunction<R,S,V> extends UnaryFunction<R,S>
 
     /**
      * Evaluates the expression for producing a result of the given type.
-     * If this method can not produce a value of the given type, then it returns {@code null}.
+     * If this method cannot produce a value of the given type, then it returns {@code null}.
      * This implementation evaluates the expression {@linkplain Expression#apply(Object) in the default way},
      * then tries to convert the result to the target type.
      *
      * @param  feature  the value or feature to evaluate with this expression.
-     * @return the result, or {@code null} if it can not be of the specified type.
+     * @return the result, or {@code null} if it cannot be of the specified type.
      */
     @Override
     public V apply(final R feature) {
@@ -158,7 +158,7 @@ final class ConvertFunction<R,S,V> extends UnaryFunction<R,S>
 
     /**
      * Provides the type of values produced by this expression when a feature of the given type is evaluated.
-     * May return {@code null} if the type can not be determined.
+     * May return {@code null} if the type cannot be determined.
      */
     @Override
     public PropertyTypeBuilder expectedType(final FeatureType valueType, final FeatureTypeBuilder addTo) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultFilterFactory.java b/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultFilterFactory.java
index f213150359..d7796ca63a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultFilterFactory.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultFilterFactory.java
@@ -417,7 +417,7 @@ public abstract class DefaultFilterFactory<R,G,T> extends AbstractFactory implem
     /**
      * An operator that tests if an expression's value is nil.
      * The difference with {@link NullOperator} is that a value should exist
-     * but can not be provided for the reason given by {@code nilReason}.
+     * but cannot be provided for the reason given by {@code nilReason}.
      * Possible reasons are:
      *
      * <ul>
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/DistanceFilter.java b/core/sis-feature/src/main/java/org/apache/sis/filter/DistanceFilter.java
index e497ef1ca2..672071e3eb 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/DistanceFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/DistanceFilter.java
@@ -174,7 +174,7 @@ final class DistanceFilter<R,G> extends BinaryGeometryFilter<R,G> implements Dis
     }
 
     /**
-     * Returns the value to return when a test can not be applied.
+     * Returns the value to return when a test cannot be applied.
      */
     @Override
     protected boolean negativeResult() {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/FilterNode.java b/core/sis-feature/src/main/java/org/apache/sis/filter/FilterNode.java
index 14c70be8ee..8e1651d49b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/FilterNode.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/FilterNode.java
@@ -26,7 +26,7 @@ import org.opengis.filter.Filter;
 /**
  * Base class of some (not all) nodes that are filters. This base class overrides {@link Predicate}
  * methods for building other {@link Filter} objects instead of default Java implementations that
- * Apache SIS can not recognize.
+ * Apache SIS cannot recognize.
  *
  * <p><b>Note:</b> this class duplicates the method definition in {@link Optimization.OnFilter}.
  * This duplication exists because not all filter implementations extends this class, and not all
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/LeafExpression.java b/core/sis-feature/src/main/java/org/apache/sis/filter/LeafExpression.java
index fee716df62..e85c9960a2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/LeafExpression.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/LeafExpression.java
@@ -113,7 +113,7 @@ abstract class LeafExpression<R,V> extends Node implements FeatureExpression<R,V
         /**
          * Returns an expression that provides values as instances of the specified class.
          *
-         * @throws ClassCastException if values can not be provided as instances of the specified class.
+         * @throws ClassCastException if values cannot be provided as instances of the specified class.
          */
         @Override
         @SuppressWarnings("unchecked")
@@ -199,7 +199,7 @@ abstract class LeafExpression<R,V> extends Node implements FeatureExpression<R,V
         /**
          * Converts the transformed value if possible, or the original value as a fallback.
          *
-         * @throws ClassCastException if values can not be provided as instances of the specified class.
+         * @throws ClassCastException if values cannot be provided as instances of the specified class.
          */
         @Override
         @SuppressWarnings("unchecked")
diff --git 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
index ccffdb4adf..bcf2fd0524 100644
--- 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
@@ -388,12 +388,12 @@ public class Optimization {
 
     /**
      * Optimizes or simplifies the given filter and returns it as a list of {@code AND} operands.
-     * If such list can not be built, then this method returns the optimized filter in a singleton list.
+     * If such list cannot be built, then this method returns the optimized filter in a singleton list.
      *
      * <h4>Use case</h4>
      * This method tries to transform a filter into a {@code F₀ AND F₁ AND F₂ AND F₃ AND ...} sequence.
      * This transformation is useful when some operands can be handled by the storage engine
-     * (for example a SQL database) and other operands can not.
+     * (for example a SQL database) and other operands cannot.
      * For example when reading features from a relational database,
      * the implementation may choose to express the F₁ and F₃ operands as SQL statements
      * and apply the other operands in Java code.
@@ -416,7 +416,7 @@ public class Optimization {
 
     /**
      * Returns the given filter as a list of {@code AND} operands.
-     * If such list can not be built, then this method returns the given filter in a singleton list.
+     * If such list cannot be built, then this method returns the given filter in a singleton list.
      *
      * @param  <R>     the type of resources (e.g. {@code Feature}) used as inputs.
      * @param  filter  the filter to decompose.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java b/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
index ae9d2fc759..bcc5716021 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
@@ -164,7 +164,7 @@ split:  if (path != null) {
 
     /**
      * Returns the default value of {@link #expectedType(FeatureType, FeatureTypeBuilder)}
-     * when it can not be inferred by the analysis of the given {@code FeatureType}.
+     * when it cannot be inferred by the analysis of the given {@code FeatureType}.
      */
     final PropertyTypeBuilder expectedType(final FeatureTypeBuilder addTo) {
         return addTo.addAttribute(getValueClass()).setName(name).setMinimumOccurs(0);
@@ -358,8 +358,8 @@ split:  if (path != null) {
      *
      * @param  valueType  the type of features to be evaluated by the given expression.
      * @param  addTo      where to add the type of properties evaluated by the given expression.
-     * @return builder of the added property, or {@code null} if this method can not add a property.
-     * @throws IllegalArgumentException if this method can not determine the property type for the given feature type.
+     * @return builder of the added property, or {@code null} if this method cannot add a property.
+     * @throws IllegalArgumentException if this method cannot determine the property type for the given feature type.
      */
     @Override
     public PropertyTypeBuilder expectedType(final FeatureType valueType, final FeatureTypeBuilder addTo) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/UnaryFunction.java b/core/sis-feature/src/main/java/org/apache/sis/filter/UnaryFunction.java
index 1b5c7921ae..438cf27f14 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/UnaryFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/UnaryFunction.java
@@ -130,7 +130,7 @@ class UnaryFunction<R,V> extends Node {
     /**
      * Filter operator that checks if an expression's value is nil.
      * The difference with {@link IsNull} is that a value should exist but
-     * can not be provided for the reason given by {@link #getNilReason()}.
+     * cannot be provided for the reason given by {@link #getNilReason()}.
      */
     static final class IsNil<R> extends UnaryFunction<R,Object>
             implements NilOperator<R>, Optimization.OnFilter<R>
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/AnnotatedImage.java b/core/sis-feature/src/main/java/org/apache/sis/image/AnnotatedImage.java
index c6e4c07e50..ba7bac5091 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/AnnotatedImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/AnnotatedImage.java
@@ -95,7 +95,7 @@ abstract class AnnotatedImage extends ImageAdapter {
      * same {@linkplain #source} image in order to avoid computing the same property many times if an
      * {@code AnnotatedImage} wrapper is recreated many times for the same operation on the same image.
      *
-     * <p>Note that {@code null} is a valid result. Since {@link Cache} can not store null values,
+     * <p>Note that {@code null} is a valid result. Since {@link Cache} cannot store null values,
      * those results are replaced by {@link #NULL}.</p>
      *
      * <p>Keys are {@link String} instances containing directly the property name when {@link #areaOfInterest}
@@ -424,7 +424,7 @@ abstract class AnnotatedImage extends ImageAdapter {
     }
 
     /**
-     * Invoked when the property needs to be computed. If the property can not be computed,
+     * Invoked when the property needs to be computed. If the property cannot be computed,
      * then the result will be {@code null} and the exception thrown by this method will be
      * wrapped in a property of the same name with the {@value #WARNINGS_SUFFIX} suffix.
      *
@@ -459,7 +459,7 @@ abstract class AnnotatedImage extends ImageAdapter {
 
     /**
      * Invoked when the property needs to be computed sequentially (all computations in current thread).
-     * If the property can not be computed, then the result will be {@code null} and the exception thrown
+     * If the property cannot be computed, then the result will be {@code null} and the exception thrown
      * by this method will be wrapped in a property of the same name with the {@value #WARNINGS_SUFFIX} suffix.
      *
      * <p>This method is invoked when this class does not support parallel execution ({@link #collector()}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/BandedIterator.java b/core/sis-feature/src/main/java/org/apache/sis/image/BandedIterator.java
index 997230bcb4..097c7e440c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/BandedIterator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/BandedIterator.java
@@ -358,7 +358,7 @@ final class BandedIterator extends WritablePixelIterator {
                 } while (--subHeight != 0);
                 return target;
             }
-            // Fallback for all cases that we can not handle with above loop.
+            // Fallback for all cases that we cannot handle with above loop.
             return raster.getPixels(subX, subY, subWidth, subHeight, target);
         }
 
@@ -427,7 +427,7 @@ final class BandedIterator extends WritablePixelIterator {
                 } while (--subHeight != 0);
                 return target;
             }
-            // Fallback for all cases that we can not handle with above loop.
+            // Fallback for all cases that we cannot handle with above loop.
             return raster.getPixels(subX, subY, subWidth, subHeight, target);
         }
 
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/BandedSampleConverter.java b/core/sis-feature/src/main/java/org/apache/sis/image/BandedSampleConverter.java
index 2f3fda058e..3593e43381 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/BandedSampleConverter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/BandedSampleConverter.java
@@ -332,7 +332,7 @@ class BandedSampleConverter extends ComputedImage {
      * @param  tileX   the column index of the tile to compute.
      * @param  tileY   the row index of the tile to compute.
      * @param  target  if the tile already exists but needs to be updated, the tile to update. Otherwise {@code null}.
-     * @return computed tile for the given indices (can not be null).
+     * @return computed tile for the given indices (cannot be null).
      * @throws TransformException if an error occurred while converting a sample value.
      */
     @Override
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
index 879638cd36..3c33727ee0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedImage.java
@@ -553,7 +553,7 @@ public abstract class ComputedImage extends PlanarImage implements Disposable {
      * @param  tileX     the column index of the tile to compute.
      * @param  tileY     the row index of the tile to compute.
      * @param  previous  if the tile already exists but needs to be updated, the tile to update. Otherwise {@code null}.
-     * @return computed tile for the given indices. May be the {@code previous} tile after update but can not be null.
+     * @return computed tile for the given indices. May be the {@code previous} tile after update but cannot be null.
      * @throws Exception if an error occurred while computing the tile.
      */
     protected abstract Raster computeTile(int tileX, int tileY, WritableRaster previous) throws Exception;
@@ -564,7 +564,7 @@ public abstract class ComputedImage extends PlanarImage implements Disposable {
      *
      * @param  tileX  the column index of the tile to create.
      * @param  tileY  the row index of the tile to create.
-     * @return initially empty tile for the given indices (can not be null).
+     * @return initially empty tile for the given indices (cannot be null).
      */
     protected WritableRaster createTile(final int tileX, final int tileY) {
         // A temporary `int` overflow may occur before the final addition.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
index 8034d96809..f9ac169e03 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ComputedTiles.java
@@ -342,7 +342,7 @@ final class ComputedTiles extends WeakReference<ComputedImage> implements Dispos
      * allowing the garbage collector to release the sources in the event where this {@code ComputedTiles} would
      * live longer than expected.
      *
-     * @param  ws       a copy of {@link #sources}. Can not be null.
+     * @param  ws       a copy of {@link #sources}. Cannot be null.
      * @param  i        index after the last source to stop observing.
      * @param  failure  if this method is invoked because an exception occurred, that exception.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/DataType.java b/core/sis-feature/src/main/java/org/apache/sis/image/DataType.java
index 56239f37dc..bf42e01c93 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/DataType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/DataType.java
@@ -62,7 +62,7 @@ public enum DataType {
 
     /**
      * Signed 32-bits data. Also used for storing unsigned data; the Java2D API such as
-     * {@link java.awt.image.Raster#getSample(int, int, int)} can not distinguish the two cases.
+     * {@link java.awt.image.Raster#getSample(int, int, int)} cannot distinguish the two cases.
      */
     INT,
 
@@ -298,7 +298,7 @@ public enum DataType {
      *   <li>{@link #FLOAT} for all other types.</li>
      * </ul>
      *
-     * The promotion of integer values to floating point values is sometime necessary
+     * The promotion of integer values to floating point values is sometimes necessary
      * when the image may contain {@link Float#NaN} values.
      *
      * @return the smallest of {@link #FLOAT} or {@link #DOUBLE} types
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/ImageCombiner.java b/core/sis-feature/src/main/java/org/apache/sis/image/ImageCombiner.java
index 22f4608df7..46d1a4f365 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ImageCombiner.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ImageCombiner.java
@@ -35,7 +35,7 @@ import org.apache.sis.measure.Units;
 
 
 /**
- * Combines an arbitrary amount of images into a single one.
+ * Combines an arbitrary number of images into a single one.
  * The combined images may use different coordinate systems if a resampling operation is specified.
  * The workflow is as below:
  *
@@ -240,7 +240,7 @@ public class ImageCombiner implements Consumer<RenderedImage> {
      * </ul>
      *
      * Contrarily to {@link ImageProcessor}, this method does not use {@linkplain ImageProcessor#getFillValues() fill values}.
-     * Destination pixels that can not be mapped to source pixels are left unchanged.
+     * Destination pixels that cannot be mapped to source pixels are left unchanged.
      *
      * @param  source    the image to be resampled.
      * @param  bounds    domain of pixel coordinates in the destination image, or {@code null} for the whole image.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java b/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
index 23575b6a64..9034123902 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
@@ -71,7 +71,7 @@ import org.apache.sis.coverage.grid.GridCoverageProcessor;
  *   <li>
  *     {@linkplain #setInterpolation(Interpolation) Interpolation method} to use during resampling operations.
  *   </li><li>
- *     {@linkplain #setFillValues(Number...) Fill values} to use for pixels that can not be computed.
+ *     {@linkplain #setFillValues(Number...) Fill values} to use for pixels that cannot be computed.
  *   </li><li>
  *     {@linkplain #setCategoryColors(Function) Category colors} for mapping sample values
  *     (identified by their range, name or unit of measurement) to colors.
@@ -173,7 +173,7 @@ public class ImageProcessor implements Cloneable {
 
     /**
      * Whether {@code ImageProcessor} can produce an image of different size compared to requested size.
-     * An image may be resized if the requested size can not be subdivided into tiles of reasonable size.
+     * An image may be resized if the requested size cannot be subdivided into tiles of reasonable size.
      * For example if the image width is a prime number, there is no way to divide the image horizontally with
      * an integer number of tiles. The only way to get an integer number of tiles is to change the image size.
      *
@@ -207,7 +207,7 @@ public class ImageProcessor implements Cloneable {
     private Interpolation interpolation;
 
     /**
-     * The values to use for pixels that can not be computed.
+     * The values to use for pixels that cannot be computed.
      * This array may be {@code null} or may contain {@code null} elements.
      * This is a "copy on write" array (elements are not modified).
      *
@@ -338,23 +338,23 @@ public class ImageProcessor implements Cloneable {
     }
 
     /**
-     * Returns the values to use for pixels that can not be computed.
+     * Returns the values to use for pixels that cannot be computed.
      * This method returns a copy of the array set by the last call to {@link #setFillValues(Number...)}.
      *
-     * @return fill values to use for pixels that can not be computed, or {@code null} for the defaults.
+     * @return fill values to use for pixels that cannot be computed, or {@code null} for the defaults.
      */
     public synchronized Number[] getFillValues() {
         return (fillValues != null) ? fillValues.clone() : null;
     }
 
     /**
-     * Sets the values to use for pixels that can not be computed. The given array may be {@code null} or may contain
+     * Sets the values to use for pixels that cannot be computed. The given array may be {@code null} or may contain
      * {@code null} elements for default values. Those defaults are zero for images storing sample values as integers,
      * or {@link Float#NaN} or {@link Double#NaN} for images storing sample values as floating point numbers. If the
      * given array contains less elements than the number of bands in an image, missing elements will be assumed null.
      * If the given array contains more elements than the number of bands, extraneous elements will be ignored.
      *
-     * @param  values  fill values to use for pixels that can not be computed, or {@code null} for the defaults.
+     * @param  values  fill values to use for pixels that cannot be computed, or {@code null} for the defaults.
      */
     public synchronized void setFillValues(final Number... values) {
         fillValues = (values != null) ? values.clone() : null;
@@ -778,13 +778,13 @@ public class ImageProcessor implements Cloneable {
      *
      * <h4>Limitation</h4>
      * Current implementation can stretch only gray scale images (a future version may extend support to images
-     * using {@linkplain java.awt.image.IndexColorModel index color models}). If this method can not stretch the
+     * using {@linkplain java.awt.image.IndexColorModel index color models}). If this method cannot stretch the
      * color ramp, for example because the given image is an RGB image, then the image is returned unchanged.
      *
      * @param  source     the image to recolor.
      * @param  modifiers  modifiers for narrowing the range of values, or {@code null} if none.
      * @return the image with color ramp stretched between the specified or calculated bounds,
-     *         or {@code image} unchanged if the operation can not be applied on the given image.
+     *         or {@code image} unchanged if the operation cannot be applied on the given image.
      * @throws IllegalArgumentException if the value associated to one of about keys is not of expected type.
      */
     public RenderedImage stretchColorRamp(final RenderedImage source, final Map<String,?> modifiers) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/Interpolation.java b/core/sis-feature/src/main/java/org/apache/sis/image/Interpolation.java
index 63ef0bdf50..df5ee0795e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/Interpolation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/Interpolation.java
@@ -116,7 +116,7 @@ public abstract class Interpolation {
      * we could interpolate if we knew that all index values, without exception (i.e. no index for missing values),
      * are related to measurements by a linear function. In practice it rarely happens, because there is usually
      * at least one index value reserved for missing values. Scientific data in SIS are usually stored as floating
-     * point type (with missing values mapped to NaN), which can not be associated to {@link IndexColorModel}.
+     * point type (with missing values mapped to NaN), which cannot be associated to {@link IndexColorModel}.
      * For now we do not try to perform a more sophisticated detection of which interpolations are allowed,
      * but a future SIS version may revisit this policy if needed.</div>
      *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/PlanarImage.java b/core/sis-feature/src/main/java/org/apache/sis/image/PlanarImage.java
index 31a5937a41..81481d741f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/PlanarImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/PlanarImage.java
@@ -187,7 +187,7 @@ public abstract class PlanarImage implements RenderedImage {
      * invalid in at least one band.</p>
      *
      * <p>Note that it is usually not necessary to use masks explicitly in Apache SIS because missing values
-     * are represented by {@link Float#NaN}. This property is provided for algorithms that can not work with
+     * are represented by {@link Float#NaN}. This property is provided for algorithms that cannot work with
      * NaN values.</p>
      */
     public static final String MASK_KEY = "org.apache.sis.Mask";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/PrefetchedImage.java b/core/sis-feature/src/main/java/org/apache/sis/image/PrefetchedImage.java
index 5b52aa4e60..ccb4ea5ad8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/PrefetchedImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/PrefetchedImage.java
@@ -289,7 +289,7 @@ final class PrefetchedImage extends PlanarImage implements TileErrorHandler.Exec
     }
 
     /**
-     * Creates a tile to use as a placeholder when a tile can not be computed.
+     * Creates a tile to use as a placeholder when a tile cannot be computed.
      *
      * @param  tileX  column index of the tile for which to create a placeholder.
      * @param  tileY  row index of the tile for which to create a placeholder.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/RecoloredImage.java b/core/sis-feature/src/main/java/org/apache/sis/image/RecoloredImage.java
index d03658e87a..b46e1864b1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/RecoloredImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/RecoloredImage.java
@@ -147,14 +147,14 @@ final class RecoloredImage extends ImageAdapter {
      * transform applied on sample values before they are mapped to their colors.
      *
      * <p>Current implementation can stretch gray scale and {@linkplain IndexColorModel index color models}).
-     * If this method can not stretch the color ramp, for example because the given image is an RGB image,
+     * If this method cannot stretch the color ramp, for example because the given image is an RGB image,
      * then the image is returned unchanged.</p>
      *
      * @param  processor  the processor to use for computing statistics if needed.
      * @param  source     the image to recolor (can be {@code null}).
      * @param  modifiers  modifiers for narrowing the range of values, or {@code null} if none.
      * @return the image with color ramp stretched between the automatic bounds,
-     *         or {@code image} unchanged if the operation can not be applied on the given image.
+     *         or {@code image} unchanged if the operation cannot be applied on the given image.
      *
      * @see ImageProcessor#stretchColorRamp(RenderedImage, Map)
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/ResampledImage.java b/core/sis-feature/src/main/java/org/apache/sis/image/ResampledImage.java
index 2867b04cdb..5b2db9aeef 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ResampledImage.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ResampledImage.java
@@ -145,9 +145,9 @@ public class ResampledImage extends ComputedImage {
     protected final Interpolation interpolation;
 
     /**
-     * The values to use if a pixel in this image can not be mapped to a pixel in the source image.
+     * The values to use if a pixel in this image cannot be mapped to a pixel in the source image.
      * Must be an {@code int[]} or {@code double[]} array (no other type allowed). The array length
-     * must be equal to the number of bands. Can not be null.
+     * must be equal to the number of bands. Cannot be null.
      */
     private final Object fillValues;
 
@@ -187,7 +187,7 @@ public class ResampledImage extends ComputedImage {
      * then subclass should override {@link #getColorModel()} for returning a color model which is
      * {@linkplain ColorModel#isCompatibleSampleModel(SampleModel) compatible with the sample model}.</p>
      *
-     * <p>If a pixel in this image can not be mapped to a pixel in the source image, then the sample values are set
+     * <p>If a pixel in this image cannot be mapped to a pixel in the source image, then the sample values are set
      * to {@code fillValues}. If the given array is {@code null}, or if any element in the given array is {@code null},
      * then the default fill value is NaN for floating point data types or zero for integer data types.
      * If the array is shorter than the number of bands, then above-cited default values are used for missing values.
@@ -199,7 +199,7 @@ public class ResampledImage extends ComputedImage {
      * @param  bounds         domain of pixel coordinates of this resampled image.
      * @param  toSource       conversion of pixel coordinates of this image to pixel coordinates of {@code source} image.
      * @param  interpolation  the object to use for performing interpolations.
-     * @param  fillValues     the values to use for pixels in this image that can not be mapped to pixels in source image.
+     * @param  fillValues     the values to use for pixels in this image that cannot be mapped to pixels in source image.
      *                        May be {@code null} or contain {@code null} elements, and may have any length
      *                        (see above for more details).
      * @param  accuracy       values of {@value #POSITIONAL_ACCURACY_KEY} property, or {@code null} if none.
@@ -266,7 +266,7 @@ public class ResampledImage extends ComputedImage {
         MathTransform toSourceSupport = MathTransforms.concatenate(toSource, MathTransforms.translation(offset));
         /*
          * If the desired accuracy is large enough, try using a grid of precomputed values for faster operations.
-         * This is optional; it is okay to abandon the grid if we can not compute it.
+         * This is optional; it is okay to abandon the grid if we cannot compute it.
          */
         Boolean          canUseGrid     = null;
         Quantity<Length> linearAccuracy = null;
@@ -424,7 +424,7 @@ public class ResampledImage extends ComputedImage {
     }
 
     /**
-     * Returns {@code true} if this image can not have mask.
+     * Returns {@code true} if this image cannot have mask.
      */
     boolean hasNoMask() {
         return fillValues instanceof int[];
@@ -719,7 +719,7 @@ public class ResampledImage extends ComputedImage {
         /*
          * The (sx,sy) values are iterator position, remembered for detecting if the window buffer
          * needs to be updated. The `Integer.MAX_VALUE` initial value is safe because the iterator
-         * can not have that position (its construction would have failed with ArithmeticException
+         * cannot have that position (its construction would have failed with ArithmeticException
          * if the image position was so high).
          */
         int sx = Integer.MAX_VALUE;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/ResamplingGrid.java b/core/sis-feature/src/main/java/org/apache/sis/image/ResamplingGrid.java
index 8390268fc9..7c4b008fdd 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ResamplingGrid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ResamplingGrid.java
@@ -258,7 +258,7 @@ final class ResamplingGrid extends AbstractMathTransform2D {
      * @param  toSourceCenter  transform from target grid center to source grid center.
      * @param  bounds          pixel coordinates of target images for which to create a grid of source coordinates.
      * @return a precomputed grid for the given transform.
-     * @throws TransformException if a derivative can not be computed or a point can not be transformed.
+     * @throws TransformException if a derivative cannot be computed or a point cannot be transformed.
      * @throws ImagingOpException if the grid would be too big for being useful.
      */
     static MathTransform2D getOrCreate(final MathTransform2D toSourceCenter, final Rectangle bounds) throws TransformException {
@@ -417,7 +417,7 @@ affine: if (depth.width == 0 && depth.height == 0) {
      * @param  lowerLeft       the transform derivative at {@code (xmin,ymin)}.
      * @param  lowerRight      the transform derivative at {@code (xmax,ymin)}.
      * @return the number of subdivision along each axis.
-     * @throws TransformException if a derivative can not be computed.
+     * @throws TransformException if a derivative cannot be computed.
      * @throws ImagingOpException if the grid would be too big for being useful.
      */
     private static Dimension depth(final MathTransform2D toSourceCorner,
@@ -555,7 +555,7 @@ affine: if (depth.width == 0 && depth.height == 0) {
      * @param  toSourceCenter  the transform for which to compute the derivative.
      * @param  point           the location where to compute the derivative.
      * @return the derivative at the given location as a 2×2 matrix.
-     * @throws TransformException if the derivative can not be computed.
+     * @throws TransformException if the derivative cannot be computed.
      */
     private static Matrix2 derivative(final MathTransform2D toSourceCenter, final Point2D point) throws TransformException {
         return Matrix2.castOrCopy(toSourceCenter.derivative(point));
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/TileCache.java b/core/sis-feature/src/main/java/org/apache/sis/image/TileCache.java
index 98a700bf7c..fdb2bc5d2c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/TileCache.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/TileCache.java
@@ -130,7 +130,7 @@ final class TileCache extends Cache<TileCache.Key, Raster> {
         }
 
         /**
-         * Returns the error message when this tile can not be computed.
+         * Returns the error message when this tile cannot be computed.
          *
          * @param  key  {@link Resources.Keys#CanNotComputeTile_2} or {@link Resources.Keys#TileErrorFlagSet_2}.
          */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/Transferer.java b/core/sis-feature/src/main/java/org/apache/sis/image/Transferer.java
index dc1efc82b9..d40a057465 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/Transferer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/Transferer.java
@@ -38,7 +38,7 @@ import org.apache.sis.internal.util.Numerics;
  * an intermediate buffer. This class has the following constraints:
  *
  * <ul>
- *   <li>Source values can not be modified. Calculations must be done either directly in the
+ *   <li>Source values cannot be modified. Calculations must be done either directly in the
  *       target raster, or in a temporary buffer.</li>
  *   <li>Direct access to the {@link DataBuffer} arrays may disable video card acceleration.
  *       This class assumes that it is acceptable for {@code float} and {@code double} types,
@@ -222,7 +222,7 @@ abstract class Transferer {
      *
      * <div class="note"><b>Note:</b>
      * having a source raster with {@code double} data type does not remove the need to use a temporary buffer,
-     * because we can not modify the source data. We still need to allocate a temporary array for collecting the
+     * because we cannot modify the source data. We still need to allocate a temporary array for collecting the
      * operation results before final writing in the target array.</div>
      */
     private static final class DoubleToDouble extends Transferer {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java b/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
index 7a69dd26f5..c2c2616012 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/Visualization.java
@@ -126,7 +126,7 @@ final class Visualization extends ResampledImage {
         /** The colors to use for given categories of sample values, or {@code null} is unspecified. */
         Function<Category,Color[]> categoryColors;
 
-        /** Values to use for pixels in this image that can not be mapped to pixels in source image. */
+        /** Values to use for pixels in this image that cannot be mapped to pixels in source image. */
         Number[] fillValues;
 
         /** Values of {@value #POSITIONAL_ACCURACY_KEY} property, or {@code null} if none. */
@@ -193,7 +193,7 @@ final class Visualization extends ResampledImage {
          * @param  processor  the processor invoking this constructor.
          * @return resampled and recolored image for visualization purposes only.
          * @throws NoninvertibleTransformException if sample values in source image
-         *         can not be converted to sample values in the recolored image.
+         *         cannot be converted to sample values in the recolored image.
          */
         RenderedImage create(final ImageProcessor processor) throws NoninvertibleTransformException {
             final int visibleBand = ImageUtilities.getVisibleBand(source);
@@ -430,7 +430,7 @@ final class Visualization extends ResampledImage {
     }
 
     /**
-     * Returns {@code true} if this image can not have mask.
+     * Returns {@code true} if this image cannot have mask.
      */
     @Override
     final boolean hasNoMask() {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java b/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
index 5bf1e0ee96..73197c16bb 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/index/tree/NodeIterator.java
@@ -120,7 +120,7 @@ class NodeIterator<E> implements Spliterator<E>, Cloneable {
     }
 
     /**
-     * Invoked after {@link #clone()} for copying the fields that can not be shared between two
+     * Invoked after {@link #clone()} for copying the fields that cannot be shared between two
      * {@link NodeIterator} instances. This is used for {@link #trySplit()} implementation.
      *
      * @param  quadrants  the value to assign to {@link Cursor#quadrants}.
@@ -251,7 +251,7 @@ class NodeIterator<E> implements Spliterator<E>, Cloneable {
         /**
          * Creates a new {@code Cursor} for getting element arrays in the {@linkplain #node} quadrant/octant,
          * without changing the state of this {@code Cursor}. This method is invoked when there is a need to
-         * iterate in two more more children, in which case we can not yet discard the information contained
+         * iterate in two more more children, in which case we cannot yet discard the information contained
          * in this {@code Cursor} instance.
          *
          * <p>Caller is responsible to update the {@link #node} field after this method call
diff --git a/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java b/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java
index 81e0d0e00a..55a6bcefdf 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTree.java
@@ -411,7 +411,7 @@ public class PointTree<E> extends AbstractSet<E> implements CheckedContainer<E>,
                 return true;                                // Leaf node can take the data — done.
             }
             /*
-             * Leaf can not add the given element because the leaf has reached its maximal capacity.
+             * Leaf cannot add the given element because the leaf has reached its maximal capacity.
              * Replace the leaf node by a parent node and add all previous elements into it. After
              * data has been copied, continue attempts to insert the element given to this method.
              */
@@ -503,7 +503,7 @@ public class PointTree<E> extends AbstractSet<E> implements CheckedContainer<E>,
      * Returns all elements in the given bounding box. The given envelope shall be in the same CRS
      * than the points in this tree (this is currently not verified). The returned stream may be
      * parallel by default, depending on the argument given to the constructor.
-     * If the action to be applied on the stream can not be parallel,
+     * If the action to be applied on the stream cannot be parallel,
      * then user should invoke {@link Stream#sequential()} explicitly.
      *
      * @param  searchRegion  envelope representing the rectangular search region.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransform.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransform.java
index 3037ce50b4..a5de93931f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransform.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransform.java
@@ -31,7 +31,7 @@ import org.apache.sis.util.ArraysExt;
 
 
 /**
- * A transform composed of an arbitrary amount of juxtaposed transforms.
+ * A transform composed of an arbitrary number of juxtaposed transforms.
  *
  * This implementation is sufficient for {@code sis-feature} purposes, but incomplete for {@code sis-referencing}
  * purposes. See <a href="https://issues.apache.org/jira/browse/SIS-498">SIS-498</a>.
@@ -145,7 +145,7 @@ public abstract class CompoundTransform extends AbstractMathTransform {
      * Returns the inverse transform of this transform.
      *
      * @return the inverse of this transform.
-     * @throws NoninvertibleTransformException if at least one component transform can not be inverted.
+     * @throws NoninvertibleTransformException if at least one component transform cannot be inverted.
      */
     @Override
     public final synchronized MathTransform inverse() throws NoninvertibleTransformException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransformOf1D.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransformOf1D.java
index ef43ef8cf8..93d4fa7370 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransformOf1D.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CompoundTransformOf1D.java
@@ -26,7 +26,7 @@ import org.apache.sis.referencing.operation.transform.IterationStrategy;
 
 
 /**
- * A transform composed of an arbitrary amount of juxtaposed one-dimensional transforms.
+ * A transform composed of an arbitrary number of juxtaposed one-dimensional transforms.
  * This is an optimization for a common case when using transforms as transfer functions
  * in grid coverages.
  *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CoverageCombiner.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CoverageCombiner.java
index e47aa35218..692102b961 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CoverageCombiner.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/CoverageCombiner.java
@@ -42,7 +42,7 @@ import static org.apache.sis.internal.util.Numerics.saturatingSubtract;
 
 
 /**
- * Combines an arbitrary amount of coverages into a single one.
+ * Combines an arbitrary number of coverages into a single one.
  * The combined coverages may use different coordinate systems.
  * The workflow is as below:
  *
@@ -171,7 +171,7 @@ public final class CoverageCombiner {
      * @param  sources  the coverages to write on top of destination coverage.
      * @return {@code true} on success, or {@code false} if at least one slice
      *         in the destination coverage is not writable.
-     * @throws TransformException if the coordinates of a given coverage can not be transformed
+     * @throws TransformException if the coordinates of a given coverage cannot be transformed
      *         to the coordinates of destination coverage.
      */
     public boolean apply(GridCoverage... sources) throws TransformException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
index a5d61124a8..fc1bc0aa4e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelFactory.java
@@ -447,11 +447,11 @@ public final class ColorModelFactory {
 
     /**
      * Returns {@code true} if the given range of values is the standard range for the given data type.
-     * In such case it may be possible to use a Java standard color model, which sometime benefit from
+     * In such case it may be possible to use a Java standard color model, which sometimes benefit from
      * acceleration in Java2D rendering pipe.
      *
      * <p>This method does not clamp the given values to the maximum range supported by the given type.
-     * For example even if {@code TYPE_BYTE} can not represent values outside the [0 … 255] range,
+     * For example even if {@code TYPE_BYTE} cannot represent values outside the [0 … 255] range,
      * we do not clamp the minimum and maximum values to that range because it would change the visual
      * appearance (because of different color scale).</p>
      *
@@ -650,7 +650,7 @@ public final class ColorModelFactory {
      * @return a unique (shared) instance of the given color model.
      */
     private static <T extends ColorModel> T unique(T cm) {
-        // `CACHE` is null-safe and it is sometime okay to return a null color model.
+        // `CACHE` is null-safe and it is sometimes okay to return a null color model.
         // ColorModelPatch is not null-safe, but it will be removed in a future version.
         ColorModelPatch<T> c = new ColorModelPatch<>(cm);
         c = CACHE.unique(c);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
index 8ff2a54bed..fb00fb54d0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ColorModelType.java
@@ -37,7 +37,7 @@ public enum ColorModelType {
     /**
      * Color model uses directly RGB colors.
      * This model is efficient and should not be changed.
-     * Color palette can not be changed.
+     * Color palette cannot be changed.
      */
     DIRECT(false, false),
 
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/Colorizer.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/Colorizer.java
index ae2aaa6d0b..9e9ff96ba0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/Colorizer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/Colorizer.java
@@ -289,7 +289,7 @@ public final class Colorizer {
      * and indices in the [1 … 255] will be mapped to the given range.
      *
      * <p>This method is typically used as a last resort fallback when all other {@code initialize(…)}
-     * methods failed or can not be applied. This method assumes that no {@link Category} information
+     * methods failed or cannot be applied. This method assumes that no {@link Category} information
      * is available.</p>
      *
      * @param  minimum  minimum value, inclusive.
@@ -421,7 +421,7 @@ reuse:  if (source != null) {
             }
         }
         /*
-         * If we reach this point, `source` sample dimensions were not specified or can not be used for
+         * If we reach this point, `source` sample dimensions were not specified or cannot be used for
          * getting a transfer function to the [0 … 255] range of values. We will need to create our own.
          * First, sort the entries for having transparent colors first.
          */
@@ -502,7 +502,7 @@ reuse:  if (source != null) {
         this.entries = entries = ArraysExt.resize(entries, count);      // Should be a no-op most of the times.
         /*
          * Above loop mapped all NaN values. Now map the real values. Usually, there is exactly one entry taking
-         * all remaining values in the [0 … 255] range, but code below is tolerant to arbitrary amount of ranges.
+         * all remaining values in the [0 … 255] range, but code below is tolerant to arbitrary number of ranges.
          */
         final int base = lower;
         final double toIndexRange = (MAX_VALUE + 1 - base) / span;
@@ -581,7 +581,7 @@ reuse:  if (source != null) {
      * Returns the conversion from sample values in the source image to sample values in the recolored image.
      *
      * @return conversion to sample values in recolored image.
-     * @throws NoninvertibleTransformException if the conversion can not be created.
+     * @throws NoninvertibleTransformException if the conversion cannot be created.
      */
     public MathTransform1D getSampleToIndexValues() throws NoninvertibleTransformException {
         checkInitializationStatus(true);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/DeferredProperty.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/DeferredProperty.java
index 25f9bcb55f..5a2b99ae01 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/DeferredProperty.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/DeferredProperty.java
@@ -63,7 +63,7 @@ public final class DeferredProperty {
      * Returns the property value, which is computed when this method is first invoked.
      *
      * @param  image  the image for which to compute the property value.
-     * @return the property value, or {@code null} if it can not be computed.
+     * @return the property value, or {@code null} if it cannot be computed.
      */
     final synchronized Object compute(final RenderedImage image) {
         if (value == null) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/FillValues.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/FillValues.java
index a6d8890018..1a93e10804 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/FillValues.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/FillValues.java
@@ -151,7 +151,7 @@ public final class FillValues {
         /*
          * Read the data that we just wrote, but allowing Java2D to use an opaque, potentially packed, format.
          * The chunk below will contain the same data than previous `chunk` but may be encoded differently.
-         * It allows (sometime) faster copies. We use that packed array for the remaining of first row and
+         * It allows (sometimes) faster copies. We use that packed array for the remaining of first row and
          * all next rows.
          */
         chunk = tile.getDataElements(xmin, y, chunkWidth, 1, null);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageLayout.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageLayout.java
index 9bc28c9485..339c2312cd 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageLayout.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageLayout.java
@@ -71,8 +71,8 @@ public class ImageLayout {
     private final int preferredTileWidth, preferredTileHeight;
 
     /**
-     * Whether image size can be modified if needed. Changes are applied only if an image can not be tiled
-     * because {@link #suggestTileSize(int, int, boolean)} can not find a tile size close to the desired size.
+     * Whether image size can be modified if needed. Changes are applied only if an image cannot be tiled
+     * because {@link #suggestTileSize(int, int, boolean)} cannot find a tile size close to the desired size.
      * For example if the image width is a prime number, there is no way to divide the image horizontally with
      * an integer number of tiles. The only way to get an integer number of tiles is to change the image size.
      *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageUtilities.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageUtilities.java
index b5fa25d2e1..6a50cc9bad 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageUtilities.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/ImageUtilities.java
@@ -267,10 +267,10 @@ public final class ImageUtilities extends Static {
      * Returns names of bands based on inspection of the sample model and color model.
      * The bands are identified by {@link Vocabulary.Keys} values for
      * red, green, blue, cyan, magenta, yellow, black, gray, <i>etc</i>.
-     * If a band can not be identified, then its corresponding value is 0.
+     * If a band cannot be identified, then its corresponding value is 0.
      *
      * @param  cm  the color model for which to get band names, or {@code null} if unknown.
-     * @param  sm  the image sample model (can not be null).
+     * @param  sm  the image sample model (cannot be null).
      * @return {@link Vocabulary.Keys} identifying the bands.
      */
     @SuppressWarnings("fallthrough")
@@ -642,7 +642,7 @@ public final class ImageUtilities extends Static {
             abs((m10 = rint(r=tr.getShearY())) - r) <= COMPARISON_THRESHOLD)
         {
             /*
-             * At this point the scale and shear coefficients can been rounded to integers.
+             * At this point the scale and shear coefficients can be rounded to integers.
              * Continue only if this rounding does not make the transform non-invertible.
              *
              * Note: we round translation terms without checking if they are close to integers
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
index d26fe1e390..fd26717186 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TileOpExecutor.java
@@ -798,7 +798,7 @@ public class TileOpExecutor {
     /**
      * Base class of workers which will read or write tiles. Exactly one {@code Worker} instance is
      * created for each thread which will perform the computation. The same {@code Worker} instance
-     * can process an arbitrary amount of tiles.
+     * can process an arbitrary number of tiles.
      *
      * <p>Subclasses must override {@link #executeOnCurrentTile()}.</p>
      *
@@ -878,7 +878,7 @@ public class TileOpExecutor {
          * (for allowing {@link #trimImagingWrapper(Throwable)} to recognize and unwrap it).
          *
          * @param  ex  the exception to propagate if possible.
-         * @return the exception to throw if the given exception can not be propagated.
+         * @return the exception to throw if the given exception cannot be propagated.
          */
         static ImagingOpException rethrowOrWrap(final Throwable ex) {
             Throwable cause = ex.getCause();
@@ -922,7 +922,7 @@ public class TileOpExecutor {
     /**
      * Worker which will read tiles. Exactly one {@code ReadWork} instance is created for each thread
      * which will perform the computation on {@link Raster} tiles. The same {@code ReadWork} instance
-     * can process an arbitrary amount of tiles.
+     * can process an arbitrary number of tiles.
      *
      * @param  <A>   type of the thread-local object (the accumulator) for holding intermediate results.
      */
@@ -972,7 +972,7 @@ public class TileOpExecutor {
     /**
      * Worker which will write tiles. Exactly one {@code WriteWork} instance is created for each thread
      * which will perform the operation on {@link WritableRaster} tiles. The same {@code WriteWork}
-     * instance can process an arbitrary amount of tiles.
+     * instance can process an arbitrary number of tiles.
      *
      * @param  <A>   type of the thread-local object (the accumulator) for holding intermediate results.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TilePlaceholder.java b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TilePlaceholder.java
index 4ac4214f99..b482e84cc1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TilePlaceholder.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/coverage/j2d/TilePlaceholder.java
@@ -49,7 +49,7 @@ public class TilePlaceholder {
      * Identifies workaround for two JDK bugs.
      *
      * <p><a href="https://bugs.openjdk.java.net/browse/JDK-8166038">JDK-8166038</a>:
-     * If {@link BufferedImage} can not be used, fallback on {@link ReshapedImage} at the cost of an image
+     * If {@link BufferedImage} cannot be used, fallback on {@link ReshapedImage} at the cost of an image
      * larger than necessary. In such case, the tests need to specify the sub-region of pixels to verify.</p>
      *
      * <p><a href="https://bugs.openjdk.java.net/browse/JDK-8275345">JDK-8275345</a>:
@@ -174,7 +174,7 @@ public class TilePlaceholder {
     }
 
     /**
-     * Creates a tile to use as a placeholder when a tile can not be computed.
+     * Creates a tile to use as a placeholder when a tile cannot be computed.
      *
      * @param  location  minimum x and y coordinates of the tile raster.
      * @return placeholder for a tile at the given location.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureExpression.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureExpression.java
index f1572b88a3..f40345f45c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureExpression.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/FeatureExpression.java
@@ -62,7 +62,7 @@ public interface FeatureExpression<R,V> extends Expression<R,V> {
      *
      * @param  valueType  the type of features to be evaluated by the given expression.
      * @param  addTo      where to add the type of properties evaluated by this expression.
-     * @return builder of the added property, or {@code null} if this method can not add a property.
+     * @return builder of the added property, or {@code null} if this method cannot add a property.
      * @throws IllegalArgumentException if this method can operate only on some feature types
      *         and the given type is not one of them.
      */
@@ -70,7 +70,7 @@ public interface FeatureExpression<R,V> extends Expression<R,V> {
 
     /**
      * Tries to cast or convert the given expression to a {@link FeatureExpression}.
-     * If the given expression can not be casted, then this method creates a copy
+     * If the given expression cannot be casted, then this method creates a copy
      * provided that the expression is one of the following type:
      *
      * <ol>
@@ -83,7 +83,7 @@ public interface FeatureExpression<R,V> extends Expression<R,V> {
      * We leave that responsibility to the caller because (s)he may be able to provide better error messages.
      *
      * @param  candidate  the expression to cast or copy. Can be null.
-     * @return the given expression as a feature expression, or {@code null} if it can not be casted or converted.
+     * @return the given expression as a feature expression, or {@code null} if it cannot be casted or converted.
      */
     public static FeatureExpression<?,?> castOrCopy(final Expression<?,?> candidate) {
         if (candidate instanceof FeatureExpression<?,?>) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Geometries.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Geometries.java
index 548acb9dc7..4cbac20a3f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Geometries.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Geometries.java
@@ -256,9 +256,9 @@ public abstract class Geometries<G> implements Serializable {
     /**
      * Parses the given Well Known Text (WKT).
      *
-     * @param  wkt  the WKT to parse. Can not be null.
+     * @param  wkt  the WKT to parse. Cannot be null.
      * @return the geometry object for the given WKT (never {@code null}).
-     * @throws Exception if the WKT can not be parsed. The exception sub-class depends on the implementation.
+     * @throws Exception if the WKT cannot be parsed. The exception sub-class depends on the implementation.
      *
      * @see GeometryWrapper#formatWKT(double)
      */
@@ -268,9 +268,9 @@ public abstract class Geometries<G> implements Serializable {
      * Reads the given bytes as a Well Known Binary (WKB) encoded geometry.
      * Whether this method changes the buffer position or not is implementation-dependent.
      *
-     * @param  data  the binary data in WKB format. Can not be null.
+     * @param  data  the binary data in WKB format. Cannot be null.
      * @return decoded geometry (never {@code null}).
-     * @throws Exception if the WKB can not be parsed. The exception sub-class depends on the implementation.
+     * @throws Exception if the WKB cannot be parsed. The exception sub-class depends on the implementation.
      */
     public abstract GeometryWrapper<G> parseWKB(ByteBuffer data) throws Exception;
 
@@ -364,7 +364,7 @@ public abstract class Geometries<G> implements Serializable {
      * @param  dimension    the number of dimensions ({@value #BIDIMENSIONAL} or {@value #TRIDIMENSIONAL}).
      * @param  coordinates  sequence of (x,y) or (x,y,z) tuples.
      * @return the geometric object for the given points.
-     * @throws UnsupportedOperationException if the geometry library can not create the requested path.
+     * @throws UnsupportedOperationException if the geometry library cannot create the requested path.
      * @throws IllegalArgumentException if a polygon was requested but the given coordinates do not make
      *         a closed shape (linear ring).
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
index 826a26718e..98bceb8341 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/GeometryWrapper.java
@@ -116,7 +116,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * the CRS is stored only in this {@code GeometryWrapper} instance.
      *
      * @return the geometry CRS, or {@code null} if unknown.
-     * @throws BackingStoreException if the CRS is defined by a SRID code and that code can not be used.
+     * @throws BackingStoreException if the CRS is defined by a SRID code and that code cannot be used.
      */
     @Override
     public abstract CoordinateReferenceSystem getCoordinateReferenceSystem();
@@ -169,7 +169,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * it does not separate the sequence of coordinates for different polygons in a multi-polygon.
      *
      * @return the sequence of all coordinate values in the wrapped geometry,
-     *         or {@code null} if they can not be obtained.
+     *         or {@code null} if they cannot be obtained.
      *
      * @todo Replace by a {@code toJava2D()} method returning a {@link java.awt.Shape},
      *       so we can use the path iterator instead of this array.
@@ -200,7 +200,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  distance  the buffer distance around the geometry of the second expression.
      * @param  context   the preferred CRS and other context to use if geometry transformations are needed.
      * @return result of applying the specified predicate.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws InvalidFilterValueException if an error occurred while executing the operation on given geometries.
      */
     public final boolean predicate(final DistanceOperatorName type, final GeometryWrapper<G> other,
@@ -238,7 +238,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  other    the other geometry to test with this geometry.
      * @param  context  the preferred CRS and other context to use if geometry transformations are needed.
      * @return result of applying the specified predicate.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws InvalidFilterValueException if an error occurred while executing the operation on given geometries.
      */
     public final boolean predicate(final SpatialOperatorName type, final GeometryWrapper<G> other,
@@ -266,7 +266,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      *
      * @param  operation  the SQLMM operation to apply.
      * @return result of the specified operation.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws ClassCastException if the operation can only be executed on some specific geometry subclasses
      *         (for example polylines) and the wrapped geometry is not of that class.
      */
@@ -285,7 +285,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  operation  the SQLMM operation to apply.
      * @param  other      the other geometry. It is caller's responsibility to check that this value is non-null.
      * @return result of the specified operation.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws ClassCastException if the operation can only be executed on some specific geometry subclasses
      *         (for example polylines) and the wrapped geometry is not of that class.
      * @throws TransformException if it was necessary to transform the other geometry and that transformation failed.
@@ -306,7 +306,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  operation  the SQLMM operation to apply.
      * @param  argument   an operation-specific argument.
      * @return result of the specified operation.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws ClassCastException if the operation can only be executed on some specific geometry subclasses
      *         (for example polylines) and the wrapped geometry is not of that class.
      */
@@ -330,7 +330,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  other      the other geometry. It is caller's responsibility to check that this value is non-null.
      * @param  argument   an operation-specific argument.
      * @return result of the specified operation.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws ClassCastException if the operation can only be executed on some specific geometry subclasses
      *         (for example polylines) and the wrapped geometry is not of that class.
      * @throws TransformException if it was necessary to transform the other geometry and that transformation failed.
@@ -358,7 +358,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      *
      * @param  other  the other geometry.
      * @return the other geometry in the same CRS than this geometry.
-     * @throws TransformException if the other geometry can not be transformed.
+     * @throws TransformException if the other geometry cannot be transformed.
      *         If may be because the other geometry does not define its CRS.
      */
     private GeometryWrapper<G> toSameCRS(final GeometryWrapper<G> other) throws TransformException {
@@ -387,7 +387,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  type   the predicate operation to apply.
      * @param  other  the other geometry to test with this geometry.
      * @return result of applying the specified predicate.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      */
     protected boolean predicateSameCRS(final SpatialOperatorName type, final GeometryWrapper<G> other) {
         throw new UnsupportedOperationException(Geometries.unsupported(type.name()));
@@ -402,7 +402,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  other     the other geometry to test with this geometry.
      * @param  distance  distance to test between the geometries.
      * @return result of applying the specified predicate.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      */
     protected boolean predicateSameCRS(final DistanceOperatorName type, final GeometryWrapper<G> other, final double distance) {
         throw new UnsupportedOperationException(Geometries.unsupported(type.name()));
@@ -415,7 +415,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  other      the other geometry, or {@code null} if the operation requires only one geometry.
      * @param  argument   an operation-specific argument, or {@code null} if not applicable.
      * @return result of the specified operation.
-     * @throws UnsupportedOperationException if the operation can not be performed with current implementation.
+     * @throws UnsupportedOperationException if the operation cannot be performed with current implementation.
      * @throws ClassCastException if the operation can only be executed on some specific geometry subclasses
      *         (for example polylines) and the wrapped geometry is not of that class.
      */
@@ -443,7 +443,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      *
      * @param  target  the desired type.
      * @return the converted geometry.
-     * @throws IllegalArgumentException if the geometry can not be converted to the specified type.
+     * @throws IllegalArgumentException if the geometry cannot be converted to the specified type.
      */
     public GeometryWrapper<G> toGeometryType(GeometryType target) {
         final Class<?> type = factory().getGeometryClass(target);
@@ -468,8 +468,8 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  validate   whether to validate the operation source CRS.
      * @return the transformed geometry (may be the same geometry instance, but never {@code null}).
      * @throws UnsupportedOperationException if this operation is not supported for current implementation.
-     * @throws FactoryException if transformation to the target CRS can not be found.
-     * @throws TransformException if the geometry can not be transformed.
+     * @throws FactoryException if transformation to the target CRS cannot be found.
+     * @throws TransformException if the geometry cannot be transformed.
      */
     public GeometryWrapper<G> transform(final CoordinateOperation operation, final boolean validate)
             throws FactoryException, TransformException
@@ -489,7 +489,7 @@ public abstract class GeometryWrapper<G> extends AbstractGeometry implements Geo
      * @param  targetCRS  the target coordinate reference system, or {@code null}.
      * @return the transformed geometry (may be the same geometry but never {@code null}).
      * @throws UnsupportedOperationException if this operation is not supported for current implementation.
-     * @throws TransformException if the given geometry has no CRS or can not be transformed.
+     * @throws TransformException if the given geometry has no CRS or cannot be transformed.
      *
      * @see #getCoordinateReferenceSystem()
      */
diff --git 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
index 603ba0e974..a99154d976 100644
--- 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
@@ -51,7 +51,7 @@ public class MovingFeatures {
     public static final AttributeType<Instant> TIME_AS_INSTANTS;
 
     /**
-     * An alternative to {@link #TIME_AS_INSTANTS} used when times can not be mapped to calendar dates.
+     * An alternative to {@link #TIME_AS_INSTANTS} used when times cannot be mapped to calendar dates.
      * 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.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java
index d3072e00a9..63115fde43 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.java
@@ -65,27 +65,27 @@ public final class Resources extends IndexedResourceBundle {
         public static final short AbstractFeatureType_1 = 1;
 
         /**
-         * Can not assign characteristics to the “{0}” property.
+         * Cannot assign characteristics to the “{0}” property.
          */
         public static final short CanNotAssignCharacteristics_1 = 2;
 
         /**
-         * Can not build the grid coverage.
+         * Cannot build the grid coverage.
          */
         public static final short CanNotBuildGridCoverage = 3;
 
         /**
-         * Can not compute tile ({0}, {1}).
+         * Cannot compute tile ({0}, {1}).
          */
         public static final short CanNotComputeTile_2 = 4;
 
         /**
-         * Can not create a two-dimensional reference system from the “{0}” system.
+         * Cannot create a two-dimensional reference system from the “{0}” system.
          */
         public static final short CanNotCreateTwoDimensionalCRS_1 = 5;
 
         /**
-         * Can not enumerate values in the {0} range.
+         * Cannot enumerate values in the {0} range.
          */
         public static final short CanNotEnumerateValuesInRange_1 = 6;
 
@@ -95,22 +95,22 @@ public final class Resources extends IndexedResourceBundle {
         public static final short CanNotInstantiateProperty_1 = 7;
 
         /**
-         * Some envelope dimensions can not be mapped to grid dimensions.
+         * Some envelope dimensions cannot be mapped to grid dimensions.
          */
         public static final short CanNotMapToGridDimensions = 8;
 
         /**
-         * Can not process tile ({0}, {1}).
+         * Cannot process tile ({0}, {1}).
          */
         public static final short CanNotProcessTile_2 = 9;
 
         /**
-         * Can not set a value of type ‘{1}’ to characteristic “{0}”.
+         * Cannot set a value of type ‘{1}’ to characteristic “{0}”.
          */
         public static final short CanNotSetCharacteristics_2 = 10;
 
         /**
-         * Can not set this derived grid property after a call to “{0}” method.
+         * Cannot set this derived grid property after a call to “{0}” method.
          */
         public static final short CanNotSetDerivedGridProperty_1 = 11;
 
@@ -120,17 +120,17 @@ public final class Resources extends IndexedResourceBundle {
         public static final short CanNotSetPropertyValue_1 = 12;
 
         /**
-         * Can not simplify transfer function of sample dimension “{0}”.
+         * Cannot simplify transfer function of sample dimension “{0}”.
          */
         public static final short CanNotSimplifyTransferFunction_1 = 13;
 
         /**
-         * Can not update tile ({0}, {1}).
+         * Cannot update tile ({0}, {1}).
          */
         public static final short CanNotUpdateTile_2 = 14;
 
         /**
-         * Can not visit a “{1}” {0,choice,0#filter|1#expression}.
+         * Cannot visit a “{1}” {0,choice,0#filter|1#expression}.
          */
         public static final short CanNotVisit_2 = 77;
 
@@ -208,12 +208,12 @@ public final class Resources extends IndexedResourceBundle {
         public static final short IllegalGridEnvelope_3 = 27;
 
         /**
-         * Can not create a grid geometry with the given “{0}” component.
+         * Cannot create a grid geometry with the given “{0}” component.
          */
         public static final short IllegalGridGeometryComponent_1 = 28;
 
         /**
-         * Type or result of “{0}” property can not be ‘{1}’ for this operation.
+         * Type or result of “{0}” property cannot be ‘{1}’ for this operation.
          */
         public static final short IllegalPropertyType_2 = 29;
 
@@ -318,7 +318,7 @@ public final class Resources extends IndexedResourceBundle {
         public static final short NoCategoryForValue_1 = 49;
 
         /**
-         * Can not infer a {0}-dimensional slice from the grid envelope. Dimension {1} has {2,number}
+         * Cannot infer a {0}-dimensional slice from the grid envelope. Dimension {1} has {2,number}
          * cells.
          */
         public static final short NoNDimensionalSlice_3 = 50;
@@ -400,12 +400,12 @@ public final class Resources extends IndexedResourceBundle {
         public static final short UnavailableGeometryLibrary_1 = 64;
 
         /**
-         * Can not convert grid coordinate {1} to type ‘{0}’.
+         * Cannot convert grid coordinate {1} to type ‘{0}’.
          */
         public static final short UnconvertibleGridCoordinate_2 = 65;
 
         /**
-         * Can not convert sample values.
+         * Cannot convert sample values.
          */
         public static final short UnconvertibleSampleValues = 66;
 
@@ -461,7 +461,7 @@ public final class Resources extends IndexedResourceBundle {
         public static final short UnsupportedGeometryObject_1 = 76;
 
         /**
-         * Sample type with a size of {0} bits can not have ‘{1}’ = “{2}” characteristic.
+         * Sample type with a size of {0} bits cannot have ‘{1}’ = “{2}” characteristic.
          */
         public static final short UnsupportedSampleType_3 = 78;
     }
@@ -491,7 +491,7 @@ public final class Resources extends IndexedResourceBundle {
      *
      * @param  locale  the locale, or {@code null} for the default locale.
      * @return resources in the given locale.
-     * @throws MissingResourceException if resources can not be found.
+     * @throws MissingResourceException if resources cannot be found.
      */
     public static Resources forLocale(final Locale locale) throws MissingResourceException {
         return getBundle(Resources.class, locale);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.properties b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.properties
index 87a953b6da..181596a444 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.properties
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/Resources.properties
@@ -20,20 +20,20 @@
 # For resources shared by all modules in the Apache SIS project, see "org.apache.sis.util.resources" package.
 #
 AbstractFeatureType_1             = Feature type \u2018{0}\u2019 is abstract.
-CanNotAssignCharacteristics_1     = Can not assign characteristics to the \u201c{0}\u201d property.
-CanNotBuildGridCoverage           = Can not build the grid coverage.
-CanNotComputeTile_2               = Can not compute tile ({0}, {1}).
-CanNotProcessTile_2               = Can not process tile ({0}, {1}).
-CanNotUpdateTile_2                = Can not update tile ({0}, {1}).
-CanNotCreateTwoDimensionalCRS_1   = Can not create a two-dimensional reference system from the \u201c{0}\u201d system.
-CanNotEnumerateValuesInRange_1    = Can not enumerate values in the {0} range.
+CanNotAssignCharacteristics_1     = Cannot assign characteristics to the \u201c{0}\u201d property.
+CanNotBuildGridCoverage           = Cannot build the grid coverage.
+CanNotComputeTile_2               = Cannot compute tile ({0}, {1}).
+CanNotProcessTile_2               = Cannot process tile ({0}, {1}).
+CanNotUpdateTile_2                = Cannot update tile ({0}, {1}).
+CanNotCreateTwoDimensionalCRS_1   = Cannot create a two-dimensional reference system from the \u201c{0}\u201d system.
+CanNotEnumerateValuesInRange_1    = Cannot enumerate values in the {0} range.
 CanNotInstantiateProperty_1       = Property \u201c{0}\u201d is not a type that can be instantiated.
-CanNotMapToGridDimensions         = Some envelope dimensions can not be mapped to grid dimensions.
-CanNotSetCharacteristics_2        = Can not set a value of type \u2018{1}\u2019 to characteristic \u201c{0}\u201d.
-CanNotSetDerivedGridProperty_1    = Can not set this derived grid property after a call to \u201c{0}\u201d method.
+CanNotMapToGridDimensions         = Some envelope dimensions cannot be mapped to grid dimensions.
+CanNotSetCharacteristics_2        = Cannot set a value of type \u2018{1}\u2019 to characteristic \u201c{0}\u201d.
+CanNotSetDerivedGridProperty_1    = Cannot set this derived grid property after a call to \u201c{0}\u201d method.
 CanNotSetPropertyValue_1          = Type of the \u201c{0}\u201d property does not allow to set a value.
-CanNotSimplifyTransferFunction_1  = Can not simplify transfer function of sample dimension \u201c{0}\u201d.
-CanNotVisit_2                     = Can not visit a \u201c{1}\u201d {0,choice,0#filter|1#expression}.
+CanNotSimplifyTransferFunction_1  = Cannot simplify transfer function of sample dimension \u201c{0}\u201d.
+CanNotVisit_2                     = Cannot visit a \u201c{1}\u201d {0,choice,0#filter|1#expression}.
 CategoryRangeOverlap_4            = The two categories \u201c{0}\u201d and \u201c{2}\u201d have overlapping ranges: {1} and {3} respectively.
 CharacteristicsAlreadyExists_2    = Characteristics \u201c{1}\u201d already exists in attribute \u201c{0}\u201d.
 CharacteristicsNotFound_2         = No characteristics named \u201c{1}\u201d has been found in \u201c{0}\u201d attribute.
@@ -48,8 +48,8 @@ IllegalCategoryRange_2            = Sample value range {1} for \u201c{0}\u201d c
 IllegalCharacteristicsType_3      = Expected an instance of \u2018{1}\u2019 for the \u201c{0}\u201d characteristics, but got an instance of \u2018{2}\u2019.
 IllegalFeatureType_3              = Association \u201c{0}\u201d does not accept features of type \u2018{2}\u2019. Expected an instance of \u2018{1}\u2019 or derived type.
 IllegalGridEnvelope_3             = Illegal grid envelope [{1,number} \u2026 {2,number}] for dimension {0}.
-IllegalGridGeometryComponent_1    = Can not create a grid geometry with the given \u201c{0}\u201d component.
-IllegalPropertyType_2             = Type or result of \u201c{0}\u201d property can not be \u2018{1}\u2019 for this operation.
+IllegalGridGeometryComponent_1    = Cannot create a grid geometry with the given \u201c{0}\u201d component.
+IllegalPropertyType_2             = Type or result of \u201c{0}\u201d property cannot be \u2018{1}\u2019 for this operation.
 IllegalPropertyValueClass_3       = Property \u201c{0}\u201d does not accept values of type \u2018{2}\u2019. Expected an instance of \u2018{1}\u2019 or derived type.
 IllegalTransferFunction_1         = Illegal transfer function for \u201c{0}\u201d category.
 ImageAllowsTransparency           = Image allows transparency.
@@ -69,7 +69,7 @@ MismatchedSampleModel             = The two images use different sample models.
 MismatchedTileGrid                = The two images have different tile grid.
 MismatchedValueClass_3            = An attribute for \u2018{1}\u2019 values where expected, but the \u201c{0}\u201d attribute specifies values of type \u2018{2}\u2019.
 NoCategoryForValue_1              = No category for value {0}.
-NoNDimensionalSlice_3             = Can not infer a {0}-dimensional slice from the grid envelope. Dimension {1} has {2,number} cells.
+NoNDimensionalSlice_3             = Cannot infer a {0}-dimensional slice from the grid envelope. Dimension {1} has {2,number} cells.
 NonLinearInDimensions_1           = non-linear in {0} dimension{0,choice,1#|2#s}:
 NotAGeometryAtFirstExpression     = Value provided by first expression is not a geometry.
 NotASingleton_1                   = Property \u201c{0}\u201d contains more than one value.
@@ -85,8 +85,8 @@ TileNotWritable_2                 = Tile ({0}, {1}) is not writable.
 TooManyQualitatives               = Too many qualitative categories.
 TransformDependsOnDimension_1     = Coordinate operation depends on grid dimension {0}.
 UnavailableGeometryLibrary_1      = The {0} geometry library is not available in current runtime environment.
-UnconvertibleGridCoordinate_2     = Can not convert grid coordinate {1} to type \u2018{0}\u2019.
-UnconvertibleSampleValues         = Can not convert sample values.
+UnconvertibleGridCoordinate_2     = Cannot convert grid coordinate {1} to type \u2018{0}\u2019.
+UnconvertibleSampleValues         = Cannot convert sample values.
 UnexpectedNumberOfBands_2         = Expected {0} bands but got {1}.
 UnexpectedNumberOfComponents_4    = The \u201c{1}\u201d value given to \u201c{0}\u201d property should be separable in {2} components, but we got {3}.
 UnknownDataType_1                 = Raster data type \u2018{0}\u2019 is unknown or unsupported.
@@ -96,5 +96,5 @@ UnspecifiedCRS                    = Coordinate reference system is unspecified.
 UnspecifiedGridExtent             = Grid extent is unspecified.
 UnspecifiedRasterData             = Raster data are unspecified.
 UnspecifiedTransform              = Coordinates transform is unspecified.
-UnsupportedSampleType_3           = Sample type with a size of {0} bits can not have \u2018{1}\u2019\u202f=\u202f\u201c{2}\u201d characteristic.
+UnsupportedSampleType_3           = Sample type with a size of {0} bits cannot have \u2018{1}\u2019\u202f=\u202f\u201c{2}\u201d characteristic.
 UnsupportedGeometryObject_1       = Unsupported geometry {0}D object.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
index 5c08b642ef..395a60c58a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/SpatialOperationContext.java
@@ -450,7 +450,7 @@ select: if (commonCRS == null) {
     }
 
     /**
-     * The value to return when a test can not be applied. This method is defined for
+     * The value to return when a test cannot be applied. This method is defined for
      * having a single place to update if more operator types need to be recognized.
      *
      * @param   type  the test that could not be applied.
@@ -461,7 +461,7 @@ select: if (commonCRS == null) {
     }
 
     /**
-     * The value to return when a test can not be applied. This method is defined for
+     * The value to return when a test cannot be applied. This method is defined for
      * having a single place to update if more operator types need to be recognized.
      *
      * @param   type  the test that could not be applied.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Factory.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Factory.java
index 78357153fa..b8a2191ae4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Factory.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Factory.java
@@ -181,7 +181,7 @@ public final class Factory extends Geometries<Shape> {
         }
         /*
          * Shortcut (for performance reason) when building a single line segment.
-         * Note: Point2D is not an instance of Shape, so we can not make a special case for it.
+         * Note: Point2D is not an instance of Shape, so we cannot make a special case for it.
          */
         length /= BIDIMENSIONAL;
         if (length == 2 && coordinates.length == 1) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java
index d9d2b82bb7..33b9a44b62 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/Wrapper.java
@@ -256,7 +256,7 @@ add:    for (;;) {
                     return geometry.getPathIterator(null).isDone();
                 }
             }
-            case ST_Overlaps:   // Our approximate algorithm can not distinguish with intersects.
+            case ST_Overlaps:   // Our approximate algorithm cannot distinguish with intersects.
             case ST_Intersects: return  intersect(other);
             case ST_Disjoint:   return !intersect(other);
             case ST_Contains:   return  contain  (other);
@@ -389,7 +389,7 @@ add:    for (;;) {
      * Estimates whether the wrapped geometry intersects the geometry of the given wrapper, testing only
      * the bounding box of the {@code wrapper} argument. This method may be more accurate than required
      * by OGC Filter Encoding specification in that this geometry is not simplified to a bounding box.
-     * But Java2D implementations sometime use bounding box approximation, so the result may be the same.
+     * But Java2D implementations sometimes use bounding box approximation, so the result may be the same.
      *
      * @param  wrapper  instance of {@link Wrapper} or {@link PointWrapper}.
      * @throws ClassCastException if the given object is not a recognized wrapper.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Factory.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Factory.java
index 8b6267952a..375db159d7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Factory.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Factory.java
@@ -481,7 +481,7 @@ public final class Factory extends Geometries<Geometry> {
      *
      * @param  wkt  the Well Known Text to parse.
      * @return the geometry object for the given WKT.
-     * @throws ParseException if the WKT can not be parsed.
+     * @throws ParseException if the WKT cannot be parsed.
      */
     @Override
     public GeometryWrapper<Geometry> parseWKT(final String wkt) throws ParseException {
@@ -497,7 +497,7 @@ public final class Factory extends Geometries<Geometry> {
      *
      * @param  data  the sequence of bytes to parse.
      * @return the geometry object for the given WKB.
-     * @throws ParseException if the WKB can not be parsed.
+     * @throws ParseException if the WKB cannot be parsed.
      */
     @Override
     public GeometryWrapper<Geometry> parseWKB(final ByteBuffer data) throws ParseException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/JTS.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/JTS.java
index d4a0fa8f7c..1ffe845ea8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/JTS.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/JTS.java
@@ -121,7 +121,7 @@ public final class JTS extends Static {
      *
      * @param  source  the geometry from which to get the CRS, or {@code null}.
      * @return the coordinate reference system, or {@code null} if none.
-     * @throws FactoryException if the CRS can not be created from the SRID code.
+     * @throws FactoryException if the CRS cannot be created from the SRID code.
      */
     public static CoordinateReferenceSystem getCoordinateReferenceSystem(final Geometry source) throws FactoryException {
         if (source != null) {
@@ -200,7 +200,7 @@ public final class JTS extends Static {
      * @param  targetCRS       the CRS of target coordinates.
      * @param  areaOfInterest  the area of interest.
      * @return the mathematical operation from {@code sourceCRS} to {@code targetCRS}.
-     * @throws FactoryException if the operation can not be created.
+     * @throws FactoryException if the operation cannot be created.
      */
     private static CoordinateOperation findOperation(final CoordinateReferenceSystem sourceCRS,
                                                      final CoordinateReferenceSystem targetCRS,
@@ -238,8 +238,8 @@ public final class JTS extends Static {
      * @param  geometry   the geometry to transform, or {@code null}.
      * @param  targetCRS  the target coordinate reference system, or {@code null}.
      * @return the transformed geometry, or the same geometry if it is already in target CRS.
-     * @throws FactoryException if transformation to the target CRS can not be constructed.
-     * @throws TransformException if the given geometry can not be transformed.
+     * @throws FactoryException if transformation to the target CRS cannot be constructed.
+     * @throws TransformException if the given geometry cannot be transformed.
      */
     public static Geometry transform(Geometry geometry, final CoordinateReferenceSystem targetCRS)
             throws FactoryException, TransformException
@@ -267,8 +267,8 @@ public final class JTS extends Static {
      * @param  operation  the coordinate operation to apply, or {@code null}.
      * @param  validate   whether to validate the operation source CRS.
      * @return the transformed geometry, or the same geometry if it is already in target CRS.
-     * @throws FactoryException if transformation to the target CRS can not be found.
-     * @throws TransformException if the given geometry can not be transformed.
+     * @throws FactoryException if transformation to the target CRS cannot be found.
+     * @throws TransformException if the given geometry cannot be transformed.
      */
     public static Geometry transform(Geometry geometry, CoordinateOperation operation, final boolean validate)
             throws FactoryException, TransformException
@@ -296,7 +296,7 @@ public final class JTS extends Static {
      * @param  geometry   the geometry to transform, or {@code null}.
      * @param  transform  the transform to apply, or {@code null}.
      * @return the transformed geometry, or the same geometry if it is already in target CRS.
-     * @throws TransformException if the given geometry can not be transformed.
+     * @throws TransformException if the given geometry cannot be transformed.
      */
     public static Geometry transform(Geometry geometry, final MathTransform transform) throws TransformException {
         if (geometry != null && transform != null && !transform.isIdentity()) {
@@ -323,7 +323,7 @@ public final class JTS extends Static {
      * shape coordinates.
      *
      * @param  factory   factory to use for creating the geometry, or {@code null} for the default.
-     * @param  shape     the Java2D shape to convert. Can not be {@code null}.
+     * @param  shape     the Java2D shape to convert. Cannot be {@code null}.
      * @param  flatness  the maximum distance that line segments are allowed to deviate from curves.
      * @return JTS geometry with shape coordinates. Never null but can be empty.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/ShapeConverter.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/ShapeConverter.java
index 2b29d73854..c98cdad3dd 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/ShapeConverter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/ShapeConverter.java
@@ -105,7 +105,7 @@ abstract class ShapeConverter {
      * Coordinates are copies; this is not a view.
      *
      * @param  factory   factory to use for creating the geometry, or {@code null} for the default.
-     * @param  shape     the Java2D shape to convert. Can not be {@code null}.
+     * @param  shape     the Java2D shape to convert. Cannot be {@code null}.
      * @param  flatness  the maximum distance that line segments are allowed to deviate from curves.
      * @return JTS geometry with shape coordinates. Never null but can be empty.
      */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Wrapper.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Wrapper.java
index 385277fd57..69783a8bae 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Wrapper.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/Wrapper.java
@@ -133,7 +133,7 @@ final class Wrapper extends GeometryWrapper<Geometry> {
      * Returns the geometry coordinate reference system, or {@code null} if none.
      *
      * @return the coordinate reference system, or {@code null} if none.
-     * @throws BackingStoreException if the CRS can not be created from the SRID code.
+     * @throws BackingStoreException if the CRS cannot be created from the SRID code.
      */
     @Override
     public CoordinateReferenceSystem getCoordinateReferenceSystem() {
@@ -549,7 +549,7 @@ add:    for (Geometry next = geometry;;) {
      *
      * @param  target  the desired type.
      * @return the converted geometry.
-     * @throws IllegalArgumentException if the geometry can not be converted to the specified type.
+     * @throws IllegalArgumentException if the geometry cannot be converted to the specified type.
      */
     @Override
     public GeometryWrapper<Geometry> toGeometryType(final GeometryType target) {
@@ -570,7 +570,7 @@ add:    for (Geometry next = geometry;;) {
      *
      * @param  target  the desired type.
      * @return the converted geometry.
-     * @throws IllegalArgumentException if the geometry can not be converted to the specified type.
+     * @throws IllegalArgumentException if the geometry cannot be converted to the specified type.
      */
     private Geometry convert(final GeometryType target) {
         final GeometryFactory factory = geometry.getFactory();
@@ -678,8 +678,8 @@ add:    for (Geometry next = geometry;;) {
      *
      * @param  operation  the coordinate operation to apply, or {@code null}.
      * @param  validate   whether to validate the operation source CRS.
-     * @throws FactoryException if transformation to the target CRS can not be found.
-     * @throws TransformException if the geometry can not be transformed.
+     * @throws FactoryException if transformation to the target CRS cannot be found.
+     * @throws TransformException if the geometry cannot be transformed.
      */
     @Override
     public GeometryWrapper<Geometry> transform(final CoordinateOperation operation, final boolean validate)
@@ -695,7 +695,7 @@ add:    for (Geometry next = geometry;;) {
      *
      * @param  targetCRS  the target coordinate reference system, or {@code null}.
      * @return the transformed geometry (may be the same geometry instance), or {@code null}.
-     * @throws TransformException if this geometry can not be transformed.
+     * @throws TransformException if this geometry cannot be transformed.
      */
     @Override
     public GeometryWrapper<Geometry> transform(final CoordinateReferenceSystem targetCRS) throws TransformException {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/package-info.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/package-info.java
index 2bb87081ab..7f28f03124 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/package-info.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/package-info.java
@@ -17,7 +17,7 @@
 
 /**
  * A set of helper classes for the SIS implementation.
- * contains also classes that may move to the public API someday,
+ * also contains classes that may move to the public API someday,
  * but are considered not yet ready.
  *
  * <p><strong>Do not use!</strong></p>
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java
index 435dce5cbf..54a82cfd76 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/GeometryConverter.java
@@ -138,7 +138,7 @@ final class GeometryConverter<R,G> extends Node implements Optimization.OnExpres
      *
      * @todo Try to change the class parameterized type for restricting to geometries {@code <G>}.
      *       If we can do that, remove all {@code if} statements for doing only geometry wrapping.
-     *       If we can not do that, check how to propagate the wrap-around policy from some context.
+     *       If we cannot do that, check how to propagate the wrap-around policy from some context.
      *
      * @param  input  the geometry to evaluate with this expression.
      * @return the geometry wrapper, or {@code null} if the evaluated value is null.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
index 6b3f83bff8..f60c689127 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
@@ -78,7 +78,7 @@ final class ST_Transform<R,G> extends FunctionWithSRID<R> {
      * Creates a new function with the given parameters. It is caller's responsibility to ensure
      * that the given array is non-null and does not contain null elements.
      *
-     * @throws InvalidFilterValueException if CRS can not be constructed from the second expression.
+     * @throws InvalidFilterValueException if CRS cannot be constructed from the second expression.
      */
     ST_Transform(final Expression<? super R, ?>[] parameters, final Geometries<G> library) {
         super(SQLMM.ST_Transform, parameters, PRESENT);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SpatialFunction.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SpatialFunction.java
index d250e5c6f0..5c08e49ba9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SpatialFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SpatialFunction.java
@@ -203,7 +203,7 @@ abstract class SpatialFunction<R> extends Node implements FeatureExpression<R,Ob
      * @param  addTo      where to add the type of properties evaluated by this expression.
      * @return builder of type resulting from expression evaluation (never null).
      * @throws InvalidFilterValueException if the given feature type does not contain the expected properties,
-     *         or if this method can not determine the result type of the expression.
+     *         or if this method cannot determine the result type of the expression.
      *         It may be because that expression is backed by an unsupported implementation.
      */
     @Override
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
index 79e33132f2..4c36d5b108 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
@@ -272,7 +272,7 @@ public abstract class TiledProcess<R> {
          * merged} on {@code this}.
          *
          * @return the computation result.
-         * @throws Exception if final result can not be computed.
+         * @throws Exception if final result cannot be computed.
          */
         protected abstract R result() throws Exception;
 
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java
index 76c642c072..d254c78e83 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java
@@ -142,7 +142,7 @@ public final class Isolines {
      * @param  gridToCRS  transform from pixel coordinates to geometry coordinates, or {@code null} if none.
      *                    Integer source coordinates are located at pixel centers.
      * @return the isolines for each band in the given image.
-     * @throws TransformException if an interpolated point can not be transformed using the given transform.
+     * @throws TransformException if an interpolated point cannot be transformed using the given transform.
      */
     public static Isolines[] generate(final RenderedImage data, final double[][] levels,
                                       final MathTransform gridToCRS) throws TransformException
@@ -153,7 +153,7 @@ public final class Isolines {
     }
 
     /**
-     * Generates isolines in background using an arbitrary amount of processors.
+     * Generates isolines in background using an arbitrary number of processors.
      * This method returns immediately (i.e. the current thread is not used for isoline computation).
      * The result will become available at a later time in the {@link Future} object.
      *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Joiner.java b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Joiner.java
index b9ccfcfe87..08d897fd6d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Joiner.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Joiner.java
@@ -22,7 +22,7 @@ import org.opengis.referencing.operation.TransformException;
 
 
 /**
- * Assembles arbitrary amount of {@link PolylineBuffer}s in a single Java2D {@link Shape} for an isoline level.
+ * Assembles arbitrary number of {@link PolylineBuffer}s in a single Java2D {@link Shape} for an isoline level.
  * This class extends {@link PathBuilder} with two additional features: remove spikes caused by ambiguities,
  * then apply a {@link MathTransform} on all coordinate values.
  *
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java
index e88944a163..66a1fa38ca 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java
@@ -521,7 +521,7 @@ final class Tracer {
          * {@link #polylineOnLeft} and {@code polylineOnTop} will become empty after this method call.
          *
          * @param  polylineOnTop  value of {@code polylinesOnTop[x]}.
-         * @throws TransformException if the {@link Tracer#gridToCRS} transform can not be applied.
+         * @throws TransformException if the {@link Tracer#gridToCRS} transform cannot be applied.
          */
         private void closeLeftWithTop(final PolylineBuffer polylineOnTop) throws TransformException {
             interpolateMissingLeftSide();
@@ -601,7 +601,7 @@ final class Tracer {
          * Invoked after the iteration has been completed on the full area of interest.
          * This method writes all remaining polylines to {@link #partialPaths}.
          * It assumes that {@link #finishedRow()} has already been invoked.
-         * This {@link Level} instance can not be used anymore after this call.
+         * This {@link Level} instance cannot be used anymore after this call.
          */
         final void finish() throws TransformException {
             assert polylineOnLeft.isEmpty();
@@ -712,7 +712,7 @@ final class Tracer {
      * @param  polylines  the polylines to write.
      * @param  close      whether to close the polygon.
      * @return the given path builder, or a newly created builder if the argument was null.
-     * @throws TransformException if the {@link #gridToCRS} transform can not be applied.
+     * @throws TransformException if the {@link #gridToCRS} transform cannot be applied.
      */
     private Joiner writeTo(Joiner path, final PolylineBuffer[] polylines, final boolean close) throws TransformException {
         for (int pi=0; pi < polylines.length; pi++) {
diff --git a/core/sis-feature/src/test/java/org/apache/sis/coverage/CategoryListTest.java b/core/sis-feature/src/test/java/org/apache/sis/coverage/CategoryListTest.java
index 22130a0308..55e5d3b165 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/coverage/CategoryListTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/coverage/CategoryListTest.java
@@ -119,7 +119,7 @@ public final strictfp class CategoryListTest extends TestCase {
             /*
              * Previous test didn't tested NaN values, which is the main difference between Arrays.binarySearch(…) and
              * CategoryList.binarySearch(…). Now test those NaNs. We fill the last half of the array with NaN values;
-             * the first half keep original real values. Then we search sometime real values, sometime NaN values.
+             * the first half keep original real values. Then we search sometimes real values, sometimes NaN values.
              */
             int nanOrdinalLimit = 0;
             realNumberLimit /= 2;
diff --git a/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridGeometryTest.java b/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridGeometryTest.java
index 5a4b41c690..ec1cbf7e9f 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridGeometryTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/GridGeometryTest.java
@@ -438,7 +438,7 @@ public final strictfp class GridGeometryTest extends TestCase {
     /**
      * Tests {@link GridGeometry#getEnvelope(CoordinateReferenceSystem)}.
      *
-     * @throws TransformException if coordinates can not be transformed.
+     * @throws TransformException if coordinates cannot be transformed.
      */
     @Test
     public void testGetEnvelope() throws TransformException {
@@ -524,7 +524,7 @@ public final strictfp class GridGeometryTest extends TestCase {
     /**
      * Tests {@link GridGeometry#relocate(GridExtent)}.
      *
-     * @throws TransformException if the relocated envelope can not be computed.
+     * @throws TransformException if the relocated envelope cannot be computed.
      */
     @Test
     public void testRelocate() throws TransformException {
@@ -663,7 +663,7 @@ public final strictfp class GridGeometryTest extends TestCase {
     /**
      * Tests {@link GridGeometry#createTransformTo(GridGeometry, PixelInCell)}.
      *
-     * @throws TransformException if the transform can not be computed.
+     * @throws TransformException if the transform cannot be computed.
      */
     @Test
     public void testCreateTransformTo() throws TransformException {
diff --git a/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java b/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
index 0dc02ef9bf..567d4a6d01 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/coverage/grid/ResampledGridCoverageTest.java
@@ -262,7 +262,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests application of an identity transform computed from an explicitly given "grid to CRS" transform.
      * We expect the source coverage to be returned unchanged.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testExplicitIdentity() throws TransformException {
@@ -279,7 +279,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * This test is identical to {@link #testExplicitIdentity()} except that the "grid to CRS" transform
      * specified to the {@code resample(…)} operation is null.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     @DependsOnMethod("testExplicitIdentity")
@@ -296,7 +296,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests resampling with a transform which is only a translation by integer values.
      * This test verifies that an optimized path (much cheaper than real resampling) is taken.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testIntegerTranslation() throws TransformException {
@@ -321,7 +321,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests application of axis swapping in a two-dimensional coverage.
      * This test verifies the envelope of resampled coverage.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testAxisSwap() throws TransformException {
@@ -359,7 +359,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests application of axis swapping in a three-dimensional coverage, together with an axis flip.
      * This test verifies that the pixel values of resampled coverage are found in expected quadrant.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     @DependsOnMethod("testAxisSwap")
@@ -387,7 +387,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
     /**
      * Tests an operation moving the dimension of temporal axis in a four-dimensional coverage.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testTemporalAxisMoved() throws TransformException {
@@ -405,7 +405,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests resampling in a sub-region specified by a grid extent. This method uses a three-dimensional coverage,
      * which implies that this method also tests the capability to identify which slice needs to be resampled.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testSubGridExtent() throws TransformException {
@@ -444,7 +444,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * are reduced to 1D. However, it is a problem for image case which requires 2D coordinates.
      * So we must ensure that resample conversion keeps at least two dimensions.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testSubGridExtentColumnar() throws TransformException {
@@ -467,7 +467,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
     /**
      * Tests resampling in a sub-region specified by an envelope.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testSubGeographicArea() throws TransformException {
@@ -484,7 +484,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
     /**
      * Tests application of a non-linear transform.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testReprojection() throws TransformException {
@@ -502,12 +502,12 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
     }
 
     /**
-     * Tests application of a three-dimensional transform which can not be reduced to a two-dimensional transform.
+     * Tests application of a three-dimensional transform which cannot be reduced to a two-dimensional transform.
      * It happens for example when transformation of <var>x</var> or <var>y</var> coordinate depends on <var>z</var>
-     * coordinate value. In such case we can not separate the 3D transform into (2D + 1D) transforms. This method
+     * coordinate value. In such case we cannot separate the 3D transform into (2D + 1D) transforms. This method
      * verifies that {@link ResampledGridCoverage} nevertheless manages to do its work even in that situation.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testNonSeparableGridToCRS() throws TransformException {
@@ -550,7 +550,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * from the four-dimensional "grid to CRS" transform given in argument to the {@code resample(…)} method,
      * combined with the source grid extent.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testDimensionalityIncrease() throws TransformException {
@@ -564,7 +564,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
     /**
      * Tests the removal of temporal axis.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testDimensionalityReduction() throws TransformException {
@@ -579,7 +579,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests resampling with a target domain larger than the source domain.
      * Pixel outside the source domain shall be set to fill value, which is 0.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      *
      * @see <a href="https://issues.apache.org/jira/browse/SIS-495">SIS-495</a>
      */
@@ -606,7 +606,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
      * Tests resampling of an image associated to a coordinate system using the 0 to 360° range of longitude.
      * The image crosses the 180° longitude. The resampling does not involve map projection.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testLongitude360() throws TransformException {
@@ -640,7 +640,7 @@ public final strictfp class ResampledGridCoverageTest extends TestCase {
     /**
      * Tests map reprojection of an image associated to a coordinate system using the 0 to 360° range of longitude.
      *
-     * @throws TransformException if some coordinates can not be transformed to the target grid geometry.
+     * @throws TransformException if some coordinates cannot be transformed to the target grid geometry.
      */
     @Test
     public void testReprojectionFromLongitude360() throws TransformException {
diff --git a/core/sis-feature/src/test/java/org/apache/sis/feature/AbstractFeatureTest.java b/core/sis-feature/src/test/java/org/apache/sis/feature/AbstractFeatureTest.java
index 592838a99c..aedaddd3f9 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/AbstractFeatureTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/AbstractFeatureTest.java
@@ -130,7 +130,7 @@ public final strictfp class AbstractFeatureTest extends FeatureTestCase {
                 }
                 for (final Object element : (isMultiValued ? (Iterable<?>) value : PropertyView.singletonOrEmpty(value))) {
                     if (!base.isInstance(element)) {
-                        throw new ClassCastException("Can not cast " + value.getClass() + " to " + base + " in " + name + '.');
+                        throw new ClassCastException("Cannot cast " + value.getClass() + " to " + base + " in " + name + '.');
                     }
                 }
             }
diff --git 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
index 67d15d1171..e6032abb79 100644
--- 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,7 +83,7 @@ public final strictfp class DefaultAssociationRoleTest extends TestCase {
      *
      * @param  name      the name as either a {@link String} or a {@link GenericName}.
      * @param  parent    a feature type created by {@link DefaultFeatureTypeTest#city()}, or {@code null}.
-     * @param  property  the association to an other feature.
+     * @param  property  the association to another feature.
      * @return the feature type to use for testing purpose.
      */
     private static DefaultFeatureType createType(final Object name,
@@ -142,7 +142,7 @@ public final strictfp class DefaultAssociationRoleTest extends TestCase {
 
     /**
      * Tests {@link DefaultFeatureType#isAssignableFrom(FeatureType)} and {@link DefaultFeatureType#equals(Object)}
-     * on a feature type having a bidirectional association to an other feature. This test will fall in an infinite
+     * on a feature type having a bidirectional association to another feature. This test will fall in an infinite
      * loop if the implementation does not have proper guard against infinite recursivity.
      */
     @Test
diff --git 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
index 141118f1ba..d6c30f05b0 100644
--- 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
@@ -74,13 +74,13 @@ public final strictfp class DefaultFeatureTypeTest extends TestCase {
     }
 
     /**
-     * Creates a sub-type of the "city" type with only one additional property, an arbitrary amount of strings.
+     * Creates a sub-type of the "city" type with only one additional property, an arbitrary number of strings.
      * The feature contains the following attribute:
      *
      * <ul>
      *   <li>{@code city}         as a  {@link String}  (mandatory)</li>
      *   <li>{@code population}   as an {@link Integer} (mandatory)</li>
-     *   <li>{@code universities} as an arbitrary amount of {@link String}</li>
+     *   <li>{@code universities} as an arbitrary number of {@link String}</li>
      * </ul>
      *
      * @return the feature for an university city.
@@ -132,7 +132,7 @@ public final strictfp class DefaultFeatureTypeTest extends TestCase {
 
     /**
      * Creates a sub-type of the "metropolis" type with the "region" attribute overridden to
-     * {@link InternationalString} and an arbitrary amount of universities.
+     * {@link InternationalString} and an arbitrary number of universities.
      */
     static DefaultFeatureType worldMetropolis() {
         return worldMetropolis(metropolis(), universityCity(), CharacteristicTypeMapTest.temperature(), InternationalString.class);
@@ -296,7 +296,7 @@ public final strictfp class DefaultFeatureTypeTest extends TestCase {
     }
 
     /**
-     * Ensures that we can not use two properties with the same name.
+     * Ensures that we cannot use two properties with the same name.
      */
     @Test
     @DependsOnMethod("testSimple")
@@ -416,7 +416,7 @@ public final strictfp class DefaultFeatureTypeTest extends TestCase {
     }
 
     /**
-     * Tests a feature type which inherit from an other feature type, but without property overriding.
+     * Tests a feature type which inherit from another feature type, but without property overriding.
      *
      * <p>Current implementation performs its tests on the {@link #capital()} feature.</p>
      */
@@ -487,7 +487,7 @@ public final strictfp class DefaultFeatureTypeTest extends TestCase {
     }
 
     /**
-     * Tests inheritance with a property that override an other property with a more specific type.
+     * Tests inheritance with a property that override another property with a more specific type.
      */
     @Test
     @DependsOnMethod({"testMultiInheritance", "testNameCollision"})
@@ -509,7 +509,7 @@ public final strictfp class DefaultFeatureTypeTest extends TestCase {
         assertArrayEquals("superTypes", new Object[] {metropolis, universityCity}, worldMetropolis.getSuperTypes().toArray());
         assertFalse      ("isAbstract",      worldMetropolis.isAbstract());
         assertFalse      ("isSparse",        worldMetropolis.isSparse());
-        assertFalse      ("isSimple",        worldMetropolis.isSimple());           // Because of the arbitrary amount of universities.
+        assertFalse      ("isSimple",        worldMetropolis.isSimple());           // Because of the arbitrary number of universities.
         assertEquals     ("instanceSize", 6, worldMetropolis.indices().size());
 
         assertPropertiesEquals(worldMetropolis, false, "region", "temperature");
diff --git a/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java b/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java
index 149443b95d..dbed0b40c6 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/FeatureTestCase.java
@@ -353,12 +353,12 @@ public abstract strictfp class FeatureTestCase extends TestCase {
                 false, null, DefaultAttributeTypeTest.universities()));
         /*
          * The value below is an instance of Collection<String>. But as of Java 8, the <String> parameterized type
-         * can not be verified at runtime. The best check we can have is Collection<?>, which does not allow addition
+         * cannot be verified at runtime. The best check we can have is Collection<?>, which does not allow addition
          * of new values.
          */
         Collection<?> values = (Collection<?>) feature.getPropertyValue("universities");
         assertTrue("isEmpty", values.isEmpty());
-        // Can not perform values.add("something") here.
+        // Cannot perform values.add("something") here.
 
         feature.setPropertyValue("universities", Arrays.asList("UCAR", "Marie-Curie"));
         values = (Collection<?>) feature.getPropertyValue("universities");
diff --git a/core/sis-feature/src/test/java/org/apache/sis/feature/PropertySingletonTest.java b/core/sis-feature/src/test/java/org/apache/sis/feature/PropertySingletonTest.java
index fc6497e4be..e3e34285d1 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/feature/PropertySingletonTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/feature/PropertySingletonTest.java
@@ -104,7 +104,7 @@ public final strictfp class PropertySingletonTest extends TestCase {
     }
 
     /**
-     * Ensures that we can not add more than 1 element.
+     * Ensures that we cannot add more than 1 element.
      */
     @Test
     @DependsOnMethod("testSingleton")
diff --git a/core/sis-feature/src/test/java/org/apache/sis/image/ImageTestCase.java b/core/sis-feature/src/test/java/org/apache/sis/image/ImageTestCase.java
index ba595b2c54..c48e96f727 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/image/ImageTestCase.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/image/ImageTestCase.java
@@ -96,7 +96,7 @@ public abstract strictfp class ImageTestCase extends TestCase {
     }
 
     /**
-     * Saves the current image as a PNG image in the given file. This is sometime useful for visual
+     * Saves the current image as a PNG image in the given file. This is sometimes useful for visual
      * check purpose, and is used only as a helper tools for tuning the test suites. Floating-point
      * images are converted to grayscale before to be saved.
      *
@@ -124,7 +124,7 @@ public abstract strictfp class ImageTestCase extends TestCase {
 
     /**
      * Saves the first band of the given raster as a PNG image in the given file.
-     * This is sometime useful for visual check purpose, and is used only as a helper tools
+     * This is sometimes useful for visual check purpose, and is used only as a helper tools
      * for tuning the test suites. The raster is converted to grayscale before to be saved.
      *
      * @param  raster  the raster to write in PNG format.
diff --git a/core/sis-feature/src/test/java/org/apache/sis/image/ResamplingGridTest.java b/core/sis-feature/src/test/java/org/apache/sis/image/ResamplingGridTest.java
index f6bacc245f..cf6eea202f 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/image/ResamplingGridTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/image/ResamplingGridTest.java
@@ -164,7 +164,7 @@ public final strictfp class ResamplingGridTest extends TestCase {
         assertInstanceOf("Expected a non-linear transform.", ResamplingGrid.class, tr);
         final ResamplingGrid grid = (ResamplingGrid) tr;
         assertEquals("The x dimension should be affine.",   1, grid.numXTiles);
-        assertEquals("The y dimension can not be affine.", 16, grid.numYTiles);     // Empirical value.
+        assertEquals("The y dimension cannot be affine.", 16, grid.numYTiles);     // Empirical value.
     }
 
     /**
@@ -201,8 +201,8 @@ public final strictfp class ResamplingGridTest extends TestCase {
         final MathTransform2D tr = compare("Lambert", projection, domain);
         assertInstanceOf("Expected a non-linear transform.", ResamplingGrid.class, tr);
         final ResamplingGrid grid = (ResamplingGrid) tr;
-        assertEquals("The x dimension can not be affine.", 32, grid.numXTiles);     // Empirical value.
-        assertEquals("The y dimension can not be affine.", 16, grid.numYTiles);     // Empirical value.
+        assertEquals("The x dimension cannot be affine.", 32, grid.numXTiles);     // Empirical value.
+        assertEquals("The y dimension cannot be affine.", 16, grid.numYTiles);     // Empirical value.
     }
 
     /**
diff --git a/core/sis-feature/src/test/java/org/apache/sis/index/tree/PointTreeNodeTest.java b/core/sis-feature/src/test/java/org/apache/sis/index/tree/PointTreeNodeTest.java
index 038631aab0..233812219f 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/index/tree/PointTreeNodeTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/index/tree/PointTreeNodeTest.java
@@ -91,7 +91,7 @@ public final strictfp class PointTreeNodeTest extends TestCase {
     /**
      * Verifies {@link org.apache.sis.index.tree.NodeIterator.Cursor#CLEAR_MASKS}.
      *
-     * @throws ReflectiveOperationException if this test can not access to private field that we want to verify.
+     * @throws ReflectiveOperationException if this test cannot access to private field that we want to verify.
      */
     @Test
     public void verifyClearMasks() throws ReflectiveOperationException {
diff --git a/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ColorizerTest.java b/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ColorizerTest.java
index 8fc4c8a49d..3eceb31cf3 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ColorizerTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/ColorizerTest.java
@@ -46,7 +46,7 @@ public final strictfp class ColorizerTest extends TestCase {
     /**
      * Tests the creation of an index color model using {@link Colorizer#Colorizer(Collection)}.
      *
-     * @throws TransformException if a sample value can not be converted.
+     * @throws TransformException if a sample value cannot be converted.
      */
     @Test
     public void testRangeAndColors() throws TransformException {
@@ -89,7 +89,7 @@ public final strictfp class ColorizerTest extends TestCase {
      * Tests the creation of an index color model using {@link Colorizer#Colorizer(Function)}
      * and an initialization with a {@link SampleDimension}.
      *
-     * @throws TransformException if a sample value can not be converted.
+     * @throws TransformException if a sample value cannot be converted.
      */
     @Test
     public void testSampleDimension() throws TransformException {
diff --git a/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/SampleModelFactoryTest.java b/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/SampleModelFactoryTest.java
index 9b8baf8263..c9e3007437 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/SampleModelFactoryTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/internal/coverage/j2d/SampleModelFactoryTest.java
@@ -97,7 +97,7 @@ public final strictfp class SampleModelFactoryTest extends TestCase {
 
     /**
      * Tests the creation and modification of a {@link MultiPixelPackedSampleModel}.
-     * We can not test band sub-setting for this kind of sample model because it can
+     * We cannot test band sub-setting for this kind of sample model because it can
      * only have a single band.
      */
     @Test
diff --git a/core/sis-feature/src/test/java/org/apache/sis/internal/feature/jts/JTSTest.java b/core/sis-feature/src/test/java/org/apache/sis/internal/feature/jts/JTSTest.java
index e46e4018c0..921b871213 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/internal/feature/jts/JTSTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/internal/feature/jts/JTSTest.java
@@ -49,7 +49,7 @@ public final strictfp class JTSTest extends TestCase {
     /**
      * Tests {@link JTS#getCoordinateReferenceSystem(Geometry)}.
      *
-     * @throws FactoryException if an EPSG code can not be resolved.
+     * @throws FactoryException if an EPSG code cannot be resolved.
      */
     @Test
     public void testGetCoordinateReferenceSystem() throws FactoryException {
@@ -170,7 +170,7 @@ public final strictfp class JTSTest extends TestCase {
     }
 
     /**
-     * Tests various {@code transform} methods. This includes (sometime indirectly):
+     * Tests various {@code transform} methods. This includes (sometimes indirectly):
      *
      * <ul>
      *   <li>{@link JTS#transform(Geometry, CoordinateReferenceSystem)}</li>
@@ -178,8 +178,8 @@ public final strictfp class JTSTest extends TestCase {
      *   <li>{@link JTS#transform(Geometry, MathTransform)}</li>
      * </ul>
      *
-     * @throws FactoryException if an EPSG code can not be resolved.
-     * @throws TransformException if a coordinate can not be transformed.
+     * @throws FactoryException if an EPSG code cannot be resolved.
+     * @throws TransformException if a coordinate cannot be transformed.
      */
     @Test
     public void testTransform() throws FactoryException, TransformException {
@@ -211,8 +211,8 @@ public final strictfp class JTSTest extends TestCase {
     /**
      * Tests various {@code transform} method with a three-dimensional geometry.
      *
-     * @throws FactoryException if an EPSG code can not be resolved.
-     * @throws TransformException if a coordinate can not be transformed.
+     * @throws FactoryException if an EPSG code cannot be resolved.
+     * @throws TransformException if a coordinate cannot be transformed.
      */
     @Test
     public void testTransform3D() throws FactoryException, TransformException {
@@ -232,8 +232,8 @@ public final strictfp class JTSTest extends TestCase {
     /**
      * Test {@code transform} method on an empty geometry.
      *
-     * @throws FactoryException if an EPSG code can not be resolved.
-     * @throws TransformException if a coordinate can not be transformed.
+     * @throws FactoryException if an EPSG code cannot be resolved.
+     * @throws TransformException if a coordinate cannot be transformed.
      */
     @Test
     public void testTransformEmpty() throws FactoryException, TransformException {
diff --git a/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java b/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java
index e5fa451e0b..303a3ee8be 100644
--- a/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java
+++ b/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java
@@ -61,7 +61,7 @@ public final strictfp class IsolinesTest extends TestCase {
      * Tests isolines computed in a contouring grid having only one cell.
      * The cell may have zero, one or two line segments.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     @Test
     public void testSingleCell() throws TransformException {
@@ -177,7 +177,7 @@ public final strictfp class IsolinesTest extends TestCase {
     /**
      * Tests isolines computed in a contouring grid having 2×2 cells.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     @Test
     public void testMultiCells() throws TransformException {
@@ -231,7 +231,7 @@ public final strictfp class IsolinesTest extends TestCase {
      * Tests isolines computed in a contouring grid having more than one band.
      * The same values than {@link #testSingleCell()} are used.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     @Test
     public void testSingleCellMultiBands() throws TransformException {
@@ -267,7 +267,7 @@ public final strictfp class IsolinesTest extends TestCase {
      * The same values than {@link #testMultiCells()} are used, but it tests a different
      * code path because {@link Isolines} contains a special case for one-banded image.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     @Test
     public void testMultiCellsMultiBands() throws TransformException {
@@ -286,7 +286,7 @@ public final strictfp class IsolinesTest extends TestCase {
     /**
      * Tests a cell containing a NaN value.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     @Test
     public void testNaN() throws TransformException {
@@ -304,7 +304,7 @@ public final strictfp class IsolinesTest extends TestCase {
      * Generates isolines from a 2×2 image having the given values.
      * The result is stored in {@link #isoline}; it may be {@code null}.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     private void generateFromCell(float v00, float v10, float v01, float v11) throws TransformException {
         generateFromImage(2, v00, v10, v01, v11);
@@ -314,7 +314,7 @@ public final strictfp class IsolinesTest extends TestCase {
      * Generates isolines from a size×size image having the given values.
      * The result is stored in {@link #isoline}; it may be {@code null}.
      *
-     * @throws TransformException if a point can not be transformed to its final coordinate space.
+     * @throws TransformException if a point cannot be transformed to its final coordinate space.
      */
     private void generateFromImage(final int size, final float... values) throws TransformException {
         final BufferedImage image = RasterFactory.createGrayScaleImage(DataBuffer.TYPE_FLOAT, size, size, 1, 0, 0, 10);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/AdapterReplacement.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/AdapterReplacement.java
index 3f87bf89a9..a3fb58080d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/AdapterReplacement.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/AdapterReplacement.java
@@ -25,7 +25,7 @@ import javax.xml.bind.annotation.adapters.XmlAdapter;
 /**
  * An interface for {@link XmlAdapter} to be used in replacement of the instance created by JAXB.
  * This interface provides a way to replace <cite>default</cite> adapters by <cite>configured</cite>
- * ones. It does not allow the addition of new adapters (i.e. it can not be used in replacement of
+ * ones. It does not allow the addition of new adapters (i.e. it cannot be used in replacement of
  * the {@link javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter} annotation).
  *
  * <p>This interface is mostly for handling extensions to metadata profile provided as extension,
@@ -55,7 +55,7 @@ public interface AdapterReplacement {
      * }
      *
      * @param  marshaller The marshaller to be configured.
-     * @throws JAXBException if the given marshaller can not be configured.
+     * @throws JAXBException if the given marshaller cannot be configured.
      */
     void register(Marshaller marshaller) throws JAXBException;
 
@@ -68,7 +68,7 @@ public interface AdapterReplacement {
      * }
      *
      * @param  unmarshaller The unmarshaller to be configured.
-     * @throws JAXBException if the given unmarshaller can not be configured.
+     * @throws JAXBException if the given unmarshaller cannot be configured.
      */
     void register(Unmarshaller unmarshaller) throws JAXBException;
 }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/ModifiableIdentifierMap.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/ModifiableIdentifierMap.java
index 0fc131c290..67ee3534d4 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/ModifiableIdentifierMap.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/ModifiableIdentifierMap.java
@@ -62,7 +62,7 @@ public final class ModifiableIdentifierMap extends IdentifierMapAdapter {
      * Sets the {@code xlink:href} value, which may be null. If an explicit {@code xlink:href} identifier exists,
      * then it will removed before to set the new {@code href} in the {@link XLink} object. The intent is to give
      * precedence to the {@link XLink#getHRef()} property in every cases where the {@code href} is parsable as a
-     * {@link URI}, and use the value associated to the {@code HREF} key only as a fallback when the string can not
+     * {@link URI}, and use the value associated to the {@code HREF} key only as a fallback when the string cannot
      * be parsed.
      *
      * @param  href  the new value, or {@code null} for removing the value.
@@ -139,7 +139,7 @@ public final class ModifiableIdentifierMap extends IdentifierMapAdapter {
      *
      * <p>If the given {@code authority} is {@code HREF} and if the given string is parsable as a {@link URI},
      * then this method will actually store the value as the {@link XLink#getHRef()} property of the {@code XLink}
-     * associated to the {@code XLINK} key. Only if the given string can not be parsed, then the value is stored
+     * associated to the {@code XLINK} key. Only if the given string cannot be parsed, then the value is stored
      * <cite>as-is</cite> under the {@code HREF} key.</p>
      *
      * @param  authority  the authority for which to set the code.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/PrimitiveTypeProperties.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/PrimitiveTypeProperties.java
index ff7a12fb22..2a81da8312 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/PrimitiveTypeProperties.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/PrimitiveTypeProperties.java
@@ -24,7 +24,7 @@ import org.apache.sis.xml.NilReason;
 
 /**
  * A workaround for attaching properties ({@code nilreason}, {@code href}, <i>etc.</i>) to primitive type wrappers.
- * The normal approach in SIS is to implement the {@link org.apache.sis.xml.NilObject} interface. However we can not
+ * The normal approach in SIS is to implement the {@link org.apache.sis.xml.NilObject} interface. However we cannot
  * do so when the object is a final Java class like {@link Boolean}, {@link Integer}, {@link Double} or {@link String}.
  * This class provides a workaround using specific instances of those wrappers.
  *
@@ -48,7 +48,7 @@ public final class PrimitiveTypeProperties {
      * but only the specific {@code Integer} instance used as sentinel value for nil.
      *
      * <h4>Weak references</h4>
-     * We can not use weak value references, because we don't want the {@link NilReason} (the map value) to be lost
+     * We cannot use weak value references, because we don't want the {@link NilReason} (the map value) to be lost
      * while the sentinel value (the map key) is still in use. We could use weak references for the keys, but JDK 7
      * does not provides any map implementation which is both an {@code IdentityHashMap} and a {@code WeakHashMap}.
      *
@@ -104,7 +104,7 @@ public final class PrimitiveTypeProperties {
      */
     public static Object property(final Object primitive) {
         /*
-         * No 'assert isValidKey(primitive)' because this method is sometime invoked
+         * No 'assert isValidKey(primitive)' because this method is sometimes invoked
          * only after a brief inspection (e.g. 'NilReason.mayBeNil(Object)' method).
          */
         synchronized (SENTINEL_VALUES) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/SpecializedIdentifier.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/SpecializedIdentifier.java
index ecbcc443e1..235660151b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/SpecializedIdentifier.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/SpecializedIdentifier.java
@@ -137,7 +137,7 @@ public final class SpecializedIdentifier<T> implements Identifier, Cloneable, Se
     }
 
     /**
-     * Invoked by {@link #parse(Citation,String)} when a string can not be parsed.
+     * Invoked by {@link #parse(Citation,String)} when a string cannot be parsed.
      * This is considered a non-fatal error, because the parse method can fallback
      * on the generic {@link IdentifierMapEntry} in such cases.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/cat/CodeListUID.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/cat/CodeListUID.java
index 12ea227d48..81ca50578d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/cat/CodeListUID.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/cat/CodeListUID.java
@@ -87,7 +87,7 @@ public final class CodeListUID {
      * This is the namespace used by default in Apache SIS.
      *
      * <h4>Historical note</h4>
-     * The XSD files can be downloaded from that URL as well, but we sometime experiment unexpected end of file.
+     * The XSD files can be downloaded from that URL as well, but we sometimes experiment unexpected end of file.
      * The same files can be downloaded from <a href="https://schemas.isotc211.org/">ISO/TC 211 repository</a>,
      * which seems more stable. The TC 211 repository is used for downloads, while the standard ISO URL is sill
      * used for namespaces.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
index 0e7b9e1dc1..b31340c401 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_DateTime.java
@@ -84,7 +84,7 @@ public class GO_DateTime extends XmlAdapter<GO_DateTime, Date> {
     /**
      * Builds a wrapper for the given {@link Date}.
      *
-     * @param date  the date to marshal. Can not be {@code null}.
+     * @param date  the date to marshal. Cannot be {@code null}.
      */
     private GO_DateTime(final Date date) {
         final Context context = Context.current();
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_GenericName.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_GenericName.java
index 228131136d..072caaf562 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_GenericName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/GO_GenericName.java
@@ -139,7 +139,7 @@ public class GO_GenericName extends XmlAdapter<GO_GenericName, GenericName> {
      *   <gml:alias>
      *     <gco:TypeName>
      *       <gco:aName>
-     *         <gco:CharacterString>An other local name</gco:CharacterString>
+     *         <gco:CharacterString>Another local name</gco:CharacterString>
      *       </gco:aName>
      *     </gco:TypeName>
      *   </gml:alias>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/ObjectReference.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/ObjectReference.java
index adaf37c04b..dccddea8e1 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/ObjectReference.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/ObjectReference.java
@@ -50,7 +50,7 @@ import org.apache.sis.internal.jaxb.SpecializedIdentifier;
  */
 final class ObjectReference {
     /**
-     * A unique identifier to an external resources, or to an other part of a XML document.
+     * A unique identifier to an external resources, or to another part of a XML document.
      * The {@code uuidref} attribute is used to refer to an XML element that has a corresponding
      * {@code uuid} attribute.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java
index 62d945efd7..6ea35ef970 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gco/PropertyType.java
@@ -94,7 +94,7 @@ import org.apache.sis.util.resources.Errors;
  * for enforcing its definition in subclasses. But this has been removed for two reasons:
  * <ul>
  *   <li>While the return value is usually {@code BoundType}, in some situations it is
- *       rather an other type like {@code String}. For this raison the return type must
+ *       rather another type like {@code String}. For this reason the return type must
  *       be declared as {@code Object}, and subclasses have to restrict it to a more
  *       specific type.</li>
  *   <li>The parameterized return type forces the compiler to generate bridge methods under
@@ -320,7 +320,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
     }
 
     /**
-     * A URN to an external resources, or to an other part of a XML document, or an identifier.
+     * A URN to an external resources, or to another part of a XML document, or an identifier.
      * The {@code uuidref} attribute is used to refer to an XML element that has a corresponding
      * {@code uuid} attribute.
      *
@@ -337,7 +337,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
      * Sets the {@code uuidref} attribute value.
      *
      * @param  uuid  the new attribute value.
-     * @throws IllegalArgumentException if the given UUID can not be parsed.
+     * @throws IllegalArgumentException if the given UUID cannot be parsed.
      * @category gco:ObjectReference
      */
     public final void setUUIDREF(final String uuid) throws IllegalArgumentException {
@@ -361,7 +361,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
     }
 
     /**
-     * A URN to an external resources, or to an other part of a XML document, or an identifier.
+     * A URN to an external resources, or to another part of a XML document, or an identifier.
      * The {@code xlink:href} attribute allows an XML element to refer to another XML element
      * that has a corresponding {@code id} attribute.
      *
@@ -379,7 +379,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
      * Sets the {@code href} attribute value.
      *
      * @param  href  the new attribute value.
-     * @throws URISyntaxException if the given string can not be parsed as a URI.
+     * @throws URISyntaxException if the given string cannot be parsed as a URI.
      * @category xlink
      */
     public final void setHRef(final String href) throws URISyntaxException {
@@ -403,7 +403,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
      * Sets the {@code role} attribute value.
      *
      * @param  role  the new attribute value.
-     * @throws URISyntaxException if the given string can not be parsed as a URI.
+     * @throws URISyntaxException if the given string cannot be parsed as a URI.
      * @category xlink
      */
     public final void setRole(final String role) throws URISyntaxException {
@@ -427,7 +427,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
      * Sets the {@code arcrole} attribute value.
      *
      * @param  arcrole  the new attribute value.
-     * @throws URISyntaxException if the given string can not be parsed as a URI.
+     * @throws URISyntaxException if the given string cannot be parsed as a URI.
      * @category xlink
      */
     public final void setArcRole(final String arcrole) throws URISyntaxException {
@@ -580,7 +580,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
      *
      * @param  value  the adapter for a metadata value.
      * @return an instance of the GeoAPI interface which represents the metadata value.
-     * @throws URISyntaxException if a URI can not be parsed.
+     * @throws URISyntaxException if a URI cannot be parsed.
      */
     @Override
     public final BoundType unmarshal(final ValueType value) throws URISyntaxException {
@@ -591,7 +591,7 @@ public abstract class PropertyType<ValueType extends PropertyType<ValueType,Boun
      * If the {@linkplain #metadata} is still null, tries to resolve it using UUID, XLink
      * or NilReason information. This method is invoked at unmarshalling time.
      *
-     * @throws URISyntaxException if a nil reason is present and can not be parsed.
+     * @throws URISyntaxException if a nil reason is present and cannot be parsed.
      */
     final BoundType resolve(final Context context) throws URISyntaxException {
         final ObjectReference ref = reference(false);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java
index ac3bfdee71..6036d1edd2 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gcx/Anchor.java
@@ -30,7 +30,7 @@ import org.apache.sis.xml.XLink;
  * The {@code Anchor} element, which is included in {@code CharacterString} elements.
  * In XML documents,  anchors are values with {@code XLink} attributes used in places
  * where we would normally expect a character sequence. Since Java properties of type
- * {@code CharSequence} can not return {@code XLink},  we workaround that restriction
+ * {@code CharSequence} cannot return {@code XLink},  we workaround that restriction
  * by providing this {@code Anchor} class as a {@code XLink} subtype implementing the
  * {@link InternationalString} interface, so it can be used with the above-cited Java
  * properties.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/package-info.java
index a85149a37b..ad7051127b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/geometry/package-info.java
@@ -18,7 +18,7 @@
 /**
  * JAXB adapters for geometries.
  * This package regroups all adapters mapping GeoAPI interfaces to their SIS
- * implementation. We must use adapters since JAXB can not annotate interfaces.
+ * implementation. We must use adapters since JAXB cannot annotate interfaces.
  * Consequently the purpose of these adapters is to replace interfaces.
  *
  * <p>Every time JAXB tries to marshal or unmarshal an interface, the adapter
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java
index 18dae97de8..877503c1a3 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/Measure.java
@@ -193,7 +193,7 @@ public final class Measure {
      * Sets the unit of measure. This method is invoked by JAXB at unmarshalling time.
      *
      * @param  uom  the unit of measure as a string.
-     * @throws URISyntaxException if the {@code uom} looks like a URI, but can not be parsed.
+     * @throws URISyntaxException if the {@code uom} looks like a URI, but cannot be parsed.
      */
     public void setUOM(String uom) throws URISyntaxException {
         final Context context = Context.current();
@@ -223,7 +223,7 @@ public final class Measure {
      * The SIS adapter forces the unit to {@link Units#UNITY}, but we want to let the user
      * know that he probably did something wrong.</div>
      *
-     * @param  newUnit  the new unit (can not be null).
+     * @param  newUnit  the new unit (cannot be null).
      * @return {@code true} if a different unit was defined before this method call.
      */
     public boolean setUnit(final Unit<?> newUnit) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/MeasureList.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/MeasureList.java
index 6e87acb188..28cfe8fc2b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/MeasureList.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/MeasureList.java
@@ -99,7 +99,7 @@ public final class MeasureList {
      * Sets the unit of measure. This method is invoked by JAXB at unmarshalling time.
      *
      * @param  uom  the unit of measure as a string.
-     * @throws URISyntaxException if the {@code uom} looks like a URI, but can not be parsed.
+     * @throws URISyntaxException if the {@code uom} looks like a URI, but cannot be parsed.
      */
     public void setUOM(String uom) throws URISyntaxException {
         final Context context = Context.current();
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/package-info.java
index 25afebd5b0..8c69520e8b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/gml/package-info.java
@@ -18,7 +18,7 @@
 /**
  * Miscellaneous objects and adapters defined in the {@code "gml"} namespace.
  * This package contains adapters mapping GeoAPI interfaces to their SIS implementation.
- * We must use adapters since JAXB can not handle interfaces. Consequently the purpose of
+ * We must use adapters since JAXB cannot handle interfaces. Consequently the purpose of
  * these adapters is to replace arbitrary instances of interfaces by SIS implementations.
  *
  * <p>Every time JAXB try to marshal or unmarshal an instance of an interface,
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java
index 3ac84b9843..d45a2a0df7 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/Country.java
@@ -146,7 +146,7 @@ public final class Country extends GO_CharacterString {
             if (!codeListValue.isEmpty() && Context.isFlagSet(context, Context.SUBSTITUTE_COUNTRY)) {
                 /*
                  * Marshal the locale as a <gco:CharacterString> instead of <Country>,
-                 * using the user-supplied anchors if any.
+                 * using the user supplied anchors if any.
                  */
                 final CharSequence string = CharSequenceAdapter.value(context, locale, codeListValue);
                 if (string != null) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java
index 7e7134a6a9..50a46358db 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LanguageCode.java
@@ -106,7 +106,7 @@ public final class LanguageCode extends GO_CharacterString {
             if (!codeListValue.isEmpty() && Context.isFlagSet(context, Context.SUBSTITUTE_LANGUAGE)) {
                 /*
                  * Marshal the locale as a <gco:CharacterString> instead of <LanguageCode>,
-                 * using the user-supplied anchors if any.
+                 * using the user supplied anchors if any.
                  */
                 final CharSequence string = CharSequenceAdapter.value(context, locale, codeListValue);
                 if (string != null) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocaleAndCharset.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocaleAndCharset.java
index 2461e8b1a9..1d24362413 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocaleAndCharset.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/LocaleAndCharset.java
@@ -88,7 +88,7 @@ public final class LocaleAndCharset implements Node {
     }
 
     /**
-     * Considers this node as non-editable since it represents the key in a map, and keys can not be modified
+     * Considers this node as non-editable since it represents the key in a map, and keys cannot be modified
      * through the {@link Map.Entry} interface. However {@link Child} will be editable for the value column.
      */
     @Override
@@ -154,7 +154,7 @@ public final class LocaleAndCharset implements Node {
     }
 
     /**
-     * Always throws an exception since we can not edit the key of a map entry. Attempts to edit other columns
+     * Always throws an exception since we cannot edit the key of a map entry. Attempts to edit other columns
      * than the value column will also cause an exception to be thrown, but the error message provided by the
      * wrapped node is more detailed.
      */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java
index 003cc53689..a4da6aa6a2 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/lan/TextGroup.java
@@ -97,7 +97,7 @@ final class TextGroup {
     /**
      * Constructs a {@linkplain TextGroup text group} for a single locale. This constructor
      * puts exactly one string in the {@code TextGroup}, as required by ISO 19139:2007.
-     * However it would be possible to declare an other constructor allowing the more compact form
+     * However it would be possible to declare another constructor allowing the more compact form
      * (the smaller) if there is a need for that in the future.
      *
      * @param  locale  the string language.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java
index 2a87af664f..901cb16940 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/package-info.java
@@ -18,7 +18,7 @@
 /**
  * JAXB adapters for metadata. The class defined in this package are both JAXB adapters
  * replacing GeoAPI interfaces by SIS implementation classes at marshalling time (since
- * JAXB can not marshal directly interfaces), and wrappers around the value to be marshalled.
+ * JAXB cannot marshal directly interfaces), and wrappers around the value to be marshalled.
  * ISO 19139 have the strange habit to wrap every properties in an extra level, for example:
  *
  * {@preformat xml
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java
index 7d1235839a..7fe69da942 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/Parameter.java
@@ -165,7 +165,7 @@ abstract class Parameter<T> extends SimpleIdentifiedObject implements ParameterD
 
     /**
      * Null-safe string representation of the given identifier, for comparison purpose.
-     * We ignore codespace because they can not be represented in ISO 19139 XML documents.
+     * We ignore codespace because they cannot be represented in ISO 19139 XML documents.
      */
     private static String toString(final Identifier identifier) {
         return (identifier != null) ? identifier.toString() : null;
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java
index 039f48574e..4a673a04ab 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/QualityParameter.java
@@ -188,7 +188,7 @@ public final class QualityParameter extends Parameter {
 
     /**
      * Infers the value class from the type name.
-     * This method is the reason why we can not parameterize this {@code QualityParameter} class
+     * This method is the reason why we cannot parameterize this {@code QualityParameter} class
      * (see <cite>Note about raw-type usage</cite> in class javadoc), because there is no way we
      * can ensure that the class inferred from {@link #valueType} is really for type {@code <T>}.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
index 350daf8bb5..5e9553e30f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/ServiceParameter.java
@@ -306,7 +306,7 @@ public final class ServiceParameter extends Parameter {
 
     /**
      * Infers the value class from the attribute type.
-     * This method is the reason why we can not parameterize this {@code ServiceParameter} class
+     * This method is the reason why we cannot parameterize this {@code ServiceParameter} class
      * (see <cite>Note about raw-type usage</cite> in class javadoc), because there is no way we
      * can ensure that the class inferred from {@link MemberName#getAttributeType()} is really
      * for type {@code <T>}.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
index 8d09ded25c..c82521e3c0 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/metadata/replace/package-info.java
@@ -22,7 +22,7 @@
  * <p>Some objects defined in various standards have overlapping functionalities.
  * For example the Metadata (ISO 19115), Referencing by Coordinates (ISO 19111),
  * Data Quality (ISO 19157) and Web Processing Service (WPS) standards all define their own parameter objects.
- * An other example is ISO 19115 defining basic referencing information, which is clearly ISO 19111 work.
+ * Another example is ISO 19115 defining basic referencing information, which is clearly ISO 19111 work.
  * GeoAPI tries to provide an uniform API by merging objects, or by omitting an object from one standard
  * in favor of the equivalent object of another standard. However at XML (un)marshalling time,
  * we still need to temporarily recreate the omitted object as defined in the original standard.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
index 116bfefd6f..ae22abba8a 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/AxisNames.java
@@ -72,7 +72,7 @@ public final class AxisNames {
      * Direction in the EPSG database is "East", but "counterClockwise" may also be used.
      *
      * <p>Axis name <cite>"Geocentric longitude"</cite> can also be used.
-     * In astronomy, <cite>"Planetocentric longitude"</cite> is sometime used.</p>
+     * In astronomy, <cite>"Planetocentric longitude"</cite> is sometimes used.</p>
      *
      * @see <a href="https://en.wikipedia.org/wiki/Spherical_coordinate_system">Spherical coordinate system on Wikipedia</a>
      * @see <a href="https://mathworld.wolfram.com/SphericalCoordinates.html">Spherical coordinate system on MathWorld</a>
@@ -87,7 +87,7 @@ public final class AxisNames {
      * axis named "elevation".
      *
      * <p>Axis name <cite>"Geocentric latitude"</cite> can also be used.
-     * In astronomy, <cite>"Planetocentric latitude"</cite> is sometime used.</p>
+     * In astronomy, <cite>"Planetocentric latitude"</cite> is sometimes used.</p>
      */
     public static final String SPHERICAL_LATITUDE = "Spherical latitude";
 
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ExcludedSet.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ExcludedSet.java
index 865a9f0a64..28bee8c8a1 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ExcludedSet.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ExcludedSet.java
@@ -25,7 +25,7 @@ import org.apache.sis.util.resources.Errors;
 
 /**
  * A unmodifiable empty set with a customized exception message thrown by the {@link #add(Object)}
- * method. This set is used only for mutually exclusive properties, when a collection can not have
+ * method. This set is used only for mutually exclusive properties, when a collection cannot have
  * elements because the other property is set.
  *
  * @author  Martin Desruisseaux (Geomatys)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Identifiers.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Identifiers.java
index c764dee6c8..b7a6a4e98d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Identifiers.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Identifiers.java
@@ -239,7 +239,7 @@ public final class Identifiers extends Static {
      * @param  id1  the first collection of identifiers, or {@code null}.
      * @param  id2  the second collection of identifiers, or {@code null}.
      * @return {@code TRUE} or {@code FALSE} on match or mismatch respectively, or {@code null} if this method
-     *         can not determine if there is a match or mismatch.
+     *         cannot determine if there is a match or mismatch.
      */
     public static Boolean hasCommonIdentifier(final Iterable<? extends Identifier> id1,
                                               final Iterable<? extends Identifier> id2)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
index 852a542b3a..d4e6d80b81 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Merger.java
@@ -111,7 +111,7 @@ public class Merger {
      * @param  source  the source metadata to merge into the target. Will never be modified.
      * @param  target  the target metadata where to merge values. Will be modified as a result of this call.
      * @throws ClassCastException if the source and target are not instances of the same metadata standard.
-     * @throws InvalidMetadataException if the {@code target} metadata can not hold all {@code source} properties,
+     * @throws InvalidMetadataException if the {@code target} metadata cannot hold all {@code source} properties,
      *         for example because the source class is a more specialized type than the target class.
      * @throws IllegalArgumentException if this method detects a cross-reference between source and target metadata.
      */
@@ -410,7 +410,7 @@ distribute:                 while (it.hasNext()) {
     }
 
     /**
-     * Invoked when {@code Merger} can not merge a metadata value by itself.
+     * Invoked when {@code Merger} cannot merge a metadata value by itself.
      * The default implementation throws an {@link InvalidMetadataException}.
      * Subclasses can override this method if they want to perform a different processing.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java
index d42f5e70a7..6ffc2f3cf7 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/NameMeaning.java
@@ -202,7 +202,7 @@ loop:   for (int p=0; ; p++) {
             if (!Strings.appendUnicodeIdentifier(buffer.append(DefinitionURI.SEPARATOR), '\u0000', part, ".-", false)) {
                 /*
                  * Only the version (p = 2) is optional. All other fields are mandatory.
-                 * If no character has been added for a mandatory field, we can not build a URN.
+                 * If no character has been added for a mandatory field, we cannot build a URN.
                  */
                 if (p != 2) {
                     return null;
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
index 9503ab5e1e..aab46325a5 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/ReferencingServices.java
@@ -144,7 +144,7 @@ public class ReferencingServices extends OptionalDependency {
      * @param  findOpCaller  non-null for replacing some (not all) exceptions by {@code null} return value.
      * @return the bounding box or {@code null} on failure. Never {@code null} if {@code findOpCaller} argument is {@code null}.
      * @throws UnsupportedOperationException if the {@code "sis-referencing"} module has not been found on the classpath.
-     * @throws TransformException if the given envelope can not be transformed.
+     * @throws TransformException if the given envelope cannot be transformed.
      */
     public DefaultGeographicBoundingBox setBounds(Envelope envelope, DefaultGeographicBoundingBox target, String findOpCaller)
             throws TransformException
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
index b9471dd363..017b2c491f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/Resources.java
@@ -114,7 +114,7 @@ public final class Resources extends IndexedResourceBundle {
      *
      * @param  locale  the locale, or {@code null} for the default locale.
      * @return resources in the given locale.
-     * @throws MissingResourceException if resources can not be found.
+     * @throws MissingResourceException if resources cannot be found.
      */
     public static Resources forLocale(final Locale locale) throws MissingResourceException {
         return getBundle(Resources.class, locale);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/SensorType.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/SensorType.java
index fb9615b9fa..64a5eae861 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/SensorType.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/SensorType.java
@@ -56,7 +56,7 @@ public final class SensorType extends CodeList<SensorType> {
      * automatically added to the list returned by {@link #values()}.
      *
      * @param  name  the name of the new element.
-     *         This name must not be in use by an other element of this type.
+     *         This name must not be in use by another element of this type.
      */
     private SensorType(final String name) {
         super(name, VALUES);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/LegacyPropertyAdapter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/LegacyPropertyAdapter.java
index 8ce3cf82c1..6fd3e79c74 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/LegacyPropertyAdapter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/legacy/LegacyPropertyAdapter.java
@@ -29,7 +29,7 @@ import org.apache.sis.util.Emptiable;
 
 
 /**
- * An adapter for collections of a legacy type replaced by an other collection.
+ * An adapter for collections of a legacy type replaced by another collection.
  * This adapter is used for implementation of deprecated methods in the {@link org.apache.sis.metadata.iso}
  * sub-packages, usually when the deprecation is the result of upgrading from an older to a newer ISO standard.
  *
@@ -302,7 +302,7 @@ public abstract class LegacyPropertyAdapter<L,N> extends AbstractCollection<L> {
      *
      * <p><b>Rational:</b> {@link Collection#equals(Object)} contract explicitly forbids comparisons with
      * {@code List} and {@code Set}. The rational explained in {@code Collection} javadoc applies also to
-     * other kind of {@code Collection} implementations: we can not enforce {@code Collection.equals(Object)}
+     * other kind of {@code Collection} implementations: we cannot enforce {@code Collection.equals(Object)}
      * to be symmetric in such cases.</p>
      *
      * @param  other  the other object to compare with this collection, or {@code null}.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Dialect.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Dialect.java
index 711e0f4c35..5f59bf7ab6 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Dialect.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Dialect.java
@@ -23,7 +23,7 @@ import org.apache.sis.util.CharSequences;
 
 /**
  * The SQL dialect used by a connection. This class defines also a few driver-specific operations
- * that can not (to our knowledge) be inferred from the {@link DatabaseMetaData}.
+ * that cannot (to our knowledge) be inferred from the {@link DatabaseMetaData}.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @author  Johann Sorel (Geomatys)
@@ -110,7 +110,7 @@ public enum Dialect {
 
     /**
      * Returns the presumed SQL dialect.
-     * If this method can not guess the dialect, than {@link #ANSI} is presumed.
+     * If this method cannot guess the dialect, than {@link #ANSI} is presumed.
      *
      * @param  metadata  the database metadata.
      * @return the presumed SQL dialect (never {@code null}).
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Initializer.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Initializer.java
index 6c5b6297b7..9f3de6fb3a 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Initializer.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/Initializer.java
@@ -219,7 +219,7 @@ public abstract class Initializer {
      * in order to let users control their data source. This method does nothing if the data source has
      * already been initialized.
      *
-     * <p>{@code Initializer} will not register any shutdown process for user-supplied data source.
+     * <p>{@code Initializer} will not register any shutdown process for user supplied data source.
      * We presume that database life cycle is managed by the caller.</p>
      *
      * @param  ds  supplier of data source to set, or {@code null} for removing previous supplier.
@@ -300,7 +300,7 @@ public abstract class Initializer {
             /*
              * At this point we determined that there is no JNDI context or no object binded to "jdbc/SpatialMetadata".
              * Check for programmatically supplied data source. We verify only after JNDI in order to let users control
-             * their data source if desired. We do not provide shutdown hook for user-supplied data source; we presume
+             * their data source if desired. We do not provide shutdown hook for user supplied data source; we presume
              * that users manage themselves their database life cycle.
              */
             if (supplier != null) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/LocalDataSource.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/LocalDataSource.java
index 2ad9e387d7..e798ecae09 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/LocalDataSource.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/LocalDataSource.java
@@ -129,7 +129,7 @@ public final class LocalDataSource implements DataSource, Comparable<LocalDataSo
                 if (home != null) try {
                     path = Paths.get(home).relativize(path);
                 } catch (IllegalArgumentException | SecurityException e) {
-                    // The path can not be relativized. This is okay.
+                    // The path cannot be relativized. This is okay.
                     Logging.recoverableException(getLogger(Loggers.SQL), LocalDataSource.class, "<init>", e);
                 }
                 path   = path.normalize();
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
index 77d7a244e8..13a6370932 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/metadata/sql/ScriptRunner.java
@@ -352,7 +352,7 @@ public class ScriptRunner implements AutoCloseable {
      * Returns the connection to the database.
      *
      * @return the connection.
-     * @throws SQLException if the connection can not be obtained.
+     * @throws SQLException if the connection cannot be obtained.
      */
     protected final Connection getConnection() throws SQLException {
         return statement.getConnection();
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
index 76ecb6b183..1c4cd2ef64 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleCitation.java
@@ -30,7 +30,7 @@ import org.apache.sis.internal.util.Strings;
  * <div class="note"><b>Design note:</b>
  * we do not put more field than {@link #title} in this {@code SimpleCitation} in order to keep it simple,
  * because the title is the only "universal" property (the need for all other fields will be determined in
- * subclasses on a case-by-case basis) and because {@code SimpleCitation} are sometime only proxy identified
+ * subclasses on a case-by-case basis) and because {@code SimpleCitation} are sometimes only proxy identified
  * by the {@link #title}.</div>
  *
  * @author  Martin Desruisseaux (Geomatys)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/XmlUtilities.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/XmlUtilities.java
index 4379578f86..4ce01ccc94 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/XmlUtilities.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/xml/XmlUtilities.java
@@ -73,7 +73,7 @@ public final class XmlUtilities extends SystemListener {
      * Returns the factory for creating {@link javax.xml.datatype} objects.
      *
      * @return the factory (never {@code null}).
-     * @throws DatatypeConfigurationException if the factory can not be created.
+     * @throws DatatypeConfigurationException if the factory cannot be created.
      */
     public static DatatypeFactory getDatatypeFactory() throws DatatypeConfigurationException {
         DatatypeFactory f = factory;
@@ -138,7 +138,7 @@ public final class XmlUtilities extends SystemListener {
      * @param  context  the current (un)marshalling context, or {@code null} if none.
      * @param  date     the date to convert to a XML calendar, or {@code null}.
      * @return the XML calendar, or {@code null} if {@code date} was null.
-     * @throws DatatypeConfigurationException if the factory can not be created.
+     * @throws DatatypeConfigurationException if the factory cannot be created.
      */
     public static XMLGregorianCalendar toXML(final Context context, final Date date) throws DatatypeConfigurationException {
         if (date != null) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
index 0299805643..16befeef3f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
@@ -65,7 +65,7 @@ import org.apache.sis.util.collection.TreeTable;
  * <h2>Thread safety</h2>
  * Instances of this class are <strong>not</strong> synchronized for multi-threading.
  * Synchronization, if needed, is caller's responsibility. Note that synchronization locks
- * are not necessarily the metadata instances. For example an other common approach is to
+ * are not necessarily the metadata instances. For example another common approach is to
  * use a single lock for the whole metadata tree (including children).
  *
  * @author  Martin Desruisseaux (Geomatys)
@@ -118,7 +118,7 @@ public abstract class AbstractMetadata implements LenientComparable, Emptiable {
      *   <li>An empty {@linkplain CharSequence character sequences}.</li>
      *   <li>An {@linkplain java.util.Collection#isEmpty() empty collection} or an empty array.</li>
      *   <li>A collection or array containing only {@code null}, nil or empty elements.</li>
-     *   <li>An other metadata object containing only {@code null}, nil or empty properties.</li>
+     *   <li>Another metadata object containing only {@code null}, nil or empty properties.</li>
      * </ul>
      *
      * Note that empty properties can be removed by calling the {@link ModifiableMetadata#prune()} method.
@@ -208,7 +208,7 @@ public abstract class AbstractMetadata implements LenientComparable, Emptiable {
      *       If the metadata property is a collection, then the zero-based index of the element in that collection.
      *       Otherwise {@code null}. For example in a tree table view of {@code DefaultCitation}, if the
      *       {@code "alternateTitle"} collection contains two elements, then there is a node with index 0
-     *       for the first element and an other node with index 1 for the second element.
+     *       for the first element and another node with index 1 for the second element.
      *
      *       <div class="note"><b>Note:</b>
      *       The {@code (IDENTIFIER, INDEX)} pair can be used as a primary key for uniquely identifying a node
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataCopier.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataCopier.java
index cd548823c8..76dd43b62a 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataCopier.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataCopier.java
@@ -238,7 +238,7 @@ public class MetadataCopier extends MetadataVisitor<Object> {
                 }
                 if (c instanceof EnumSet<?> || c instanceof CodeListSet<?>) {
                     /*
-                     * Enum and CodeList elements can not be cloned. Do not clone their collection neither;
+                     * Enum and CodeList elements cannot be cloned. Do not clone their collection neither;
                      * we presume that the setter method (to be invoked by reflection) will do that itself.
                      */
                 } else {
@@ -256,7 +256,7 @@ public class MetadataCopier extends MetadataVisitor<Object> {
             /*
              * Maps are rare in GeoAPI interfaces derived from ISO 19115. The main one
              * is `Map<Locale,Charset>` returned by `Metadata.getLocalesAndCharsets()`.
-             * We can not copy those entries because the `type` argument is `Map.Entry`,
+             * We cannot copy those entries because the `type` argument is `Map.Entry`,
              * which is not enough information. Recursive copy should not be necessary
              * anyway because we do not use `Map` for storing other metadata objects.
              * We do not clone the map because it should be done by the setter method.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
index 4593ae5380..a638e2f89e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataStandard.java
@@ -239,7 +239,7 @@ public class MetadataStandard implements Serializable {
 
     /**
      * Creates a new instance working on implementation of interfaces defined in the
-     * specified package. This constructor is used only for the pre-defined constants.
+     * specified package. This constructor is used only for the predefined constants.
      *
      * @param  citation          bibliographical reference to the international standard.
      * @param  interfacePackage  the root package for metadata interfaces.
@@ -364,7 +364,7 @@ public class MetadataStandard implements Serializable {
         } else if (key.isValid()) {
             /*
              * Nothing was computed, we need to start from scratch. The first step is to find
-             * the interface implemented by the given class. If we can not find an interface,
+             * the interface implemented by the given class. If we cannot find an interface,
              * we will delegate to the dependencies and store the result for avoiding redoing
              * this search next time.
              */
@@ -909,7 +909,7 @@ public class MetadataStandard implements Serializable {
      *       If the metadata property is a collection, then the zero-based index of the element in that collection.
      *       Otherwise {@code null}. For example in a tree table view of {@code DefaultCitation}, if the
      *       {@code "alternateTitle"} collection contains two elements, then there is a node with index 0
-     *       for the first element and an other node with index 1 for the second element.
+     *       for the first element and another node with index 1 for the second element.
      *
      *       <div class="note"><b>Note:</b>
      *       The {@code (IDENTIFIER, INDEX)} pair can be used as a primary key for uniquely identifying a node
@@ -1076,7 +1076,7 @@ public class MetadataStandard implements Serializable {
             /*
              * 'hash' may be null if a cycle has been found. Example: A depends on B which depends on A,
              * in which case the null value is returned for the second occurrence of A (not the first one).
-             * We can not compute a hash code value here, but it should be okay since that metadata is part
+             * We cannot compute a hash code value here, but it should be okay since that metadata is part
              * of a bigger metadata object, and that enclosing object should have other properties for computing
              * its hash code.
              */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
index 6093fb0c5f..2e84787860 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/ModifiableMetadata.java
@@ -174,7 +174,7 @@ public abstract class ModifiableMetadata extends AbstractMetadata {
 
         /**
          * The metadata is unmodifiable.
-         * When a metadata is final, it can not be moved back to an editable state
+         * When a metadata is final, it cannot be moved back to an editable state
          * (but it is still possible to create a modifiable copy with {@link MetadataCopier}).
          * Invoking any setter method on an unmodifiable metadata cause an
          * {@link UnmodifiableMetadataException} to be thrown.
@@ -209,7 +209,7 @@ public abstract class ModifiableMetadata extends AbstractMetadata {
         }
 
         /**
-         * Whether this enumeration represents a state where data can not be modified anymore.
+         * Whether this enumeration represents a state where data cannot be modified anymore.
          */
         final boolean isUnmodifiable() {
             return code >= ModifiableMetadata.FINAL;
@@ -711,7 +711,7 @@ public abstract class ModifiableMetadata extends AbstractMetadata {
     /**
      * Returns {@code true} if empty collection should be returned as {@code null} value.
      * This is usually not a behavior that we allow in public API. However this behavior
-     * is sometime desired internally, for example when marshalling with JAXB or when
+     * is sometimes desired internally, for example when marshalling with JAXB or when
      * performing a {@code equals}, {@code isEmpty} or {@code prune} operation
      * (for avoiding creating unnecessary collections).
      */
@@ -867,7 +867,7 @@ public abstract class ModifiableMetadata extends AbstractMetadata {
             return new CodeListSet(elementType);
         }
         /*
-         * If we can not compute an initial capacity from the size of an existing source, use an arbitrary
+         * If we cannot compute an initial capacity from the size of an existing source, use an arbitrary
          * small value (currently 4). We use a small value because collections will typically contain few
          * elements (often just a singleton).
          */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java
index a703710bbf..68acb374c5 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyAccessor.java
@@ -309,7 +309,7 @@ class PropertyAccessor {
                 /*
                  * If we found no setter method expecting an argument of the same type than the
                  * argument returned by the GeoAPI method,  try again with the type returned by
-                 * the implementation class. It is typically the same type, but sometime it may
+                 * the implementation class. It is typically the same type, but sometimes it may
                  * be a parent type.
                  *
                  * It is a necessary condition that the type returned by the getter is assignable
@@ -442,7 +442,7 @@ class PropertyAccessor {
                 }
                 /*
                  * At this point, we are ready to accept the method. Before doing so, check if the method override
-                 * an other method defined in a parent class with a covariant return type. The JVM considers such
+                 * another method defined in a parent class with a covariant return type. The JVM considers such
                  * cases as two different methods, while from a Java developer point of view this is the same method.
                  */
                 final Integer pi = indices.put(name, count);
@@ -786,7 +786,7 @@ class PropertyAccessor {
      *   <li>APPEND:           Set the value only if it does not overwrite an existing value, then returns
      *                         {@link Boolean#TRUE} if the metadata changed as a result of this method call,
      *                         {@link Boolean#FALSE} if the metadata didn't changed or {@code null} if the
-     *                         value can not be set because an other value already exists.</li>
+     *                         value cannot be set because another value already exists.</li>
      *   <li>IGNORE_READ_ONLY: Set the value and returns {@code null} on success. If the property is read-only,
      *                         do not throw an exception; returns exception class instead.</li>
      * </ul>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java
index d7f80ad076..c3d98bb68c 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/PropertyComparator.java
@@ -38,7 +38,7 @@ import org.opengis.annotation.Obligation;
  *       then this comparator complies to that order.</li>
  *   <li>Otherwise this comparator sorts mandatory methods first, followed by
  *       conditional methods, then optional ones.</li>
- *   <li>If the order can not be inferred from the above, then the comparator
+ *   <li>If the order cannot be inferred from the above, then the comparator
  *       fallbacks on alphabetical order.</li>
  * </ol>
  *
@@ -102,7 +102,7 @@ final class PropertyComparator implements Comparator<Method> {
             /*
              * We enter in this block only if the user specified its own metadata implementation and that
              * custom implementation does not have any JAXB @XmlType annotation. In such case this method
-             * can not sort the properties. So we will use the class defined by org.apache.sis.metadata.iso
+             * cannot sort the properties. So we will use the class defined by org.apache.sis.metadata.iso
              * instead.
              */
             implementation = standardImpl;
@@ -290,7 +290,7 @@ final class PropertyComparator implements Comparator<Method> {
      * by the property name {@code "title"}. We will perform this operation only if there is
      * at least 1 character after the prefix.
      *
-     * @param  name  the method name (can not be {@code null}).
+     * @param  name  the method name (cannot be {@code null}).
      * @param  base  must be the result of {@code prefix(name).length()}.
      * @return the property name (never {@code null}).
      */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
index fe747929b7..0e797d0880 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
@@ -91,8 +91,8 @@ final class StandardImplementation extends MetadataStandard {
 
     /**
      * Returns {@code true} if the given type is conceptually abstract.
-     * The given type is usually an interface, so here "abstract" can not be in the Java sense.
-     * If this method can not find information about whether the given type is abstract,
+     * The given type is usually an interface, so here "abstract" cannot be in the Java sense.
+     * If this method cannot find information about whether the given type is abstract,
      * then this method conservatively returns {@code false}.
      */
     private static boolean isAbstract(final Class<?> type) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TitleProperty.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TitleProperty.java
index 9bc428adaf..3c4835e2ce 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TitleProperty.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TitleProperty.java
@@ -57,7 +57,7 @@ import java.lang.annotation.Documented;
  *
  * The property referenced by this annotation should be the main property if possible, but not necessarily
  * since it may be only a label. However the property shall be a singleton ([0…1] or [1…1] multiplicity)
- * and can not be another metadata object.
+ * and cannot be another metadata object.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.8
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java
index e2b3f25810..a37e9e4943 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNode.java
@@ -59,7 +59,7 @@ import org.apache.sis.util.resources.Vocabulary;
  * and {@link CollectionElement#indexInList} fields may not be stable.
  * The former may be invalid if the node is serialized and deserialized by two different versions of Apache SIS
  * having properties in different order. The second may be invalid if the collection is not guaranteed to preserve
- * order on serialization (e.g. {@code CodeListSet} with user-supplied elements, in which case the elements order
+ * order on serialization (e.g. {@code CodeListSet} with user supplied elements, in which case the elements order
  * depends on the instantiation order).</div>
  *
  * @author  Martin Desruisseaux (Geomatys)
@@ -105,7 +105,7 @@ class TreeNode implements Node {
      *   <li>For {@link Element} (a metadata property which is not a collection),
      *       the value is {@code accessor.get(indexInData, metadata)}.</li>
      *   <li>For {@link CollectionElement} (an element in a collection),
-     *       an other index is used for fetching the element in that collection.</li>
+     *       another index is used for fetching the element in that collection.</li>
      * </ul>
      *
      * This field shall never be null.
@@ -131,7 +131,7 @@ class TreeNode implements Node {
 
     /**
      * The children of this node, or {@code null} if not yet computed. If and only if the node
-     * can not have children (i.e. {@linkplain #isLeaf() is a leaf}), then this field is set to
+     * cannot have children (i.e. {@linkplain #isLeaf() is a leaf}), then this field is set to
      * {@link #LEAF}.
      *
      * @see #getChildren()
@@ -158,7 +158,7 @@ class TreeNode implements Node {
      * Creates the root node of a new metadata tree table.
      *
      * @param  table     the table which is creating this root node.
-     * @param  metadata  the root metadata object (can not be null).
+     * @param  metadata  the root metadata object (cannot be null).
      * @param  baseType  the return type of the getter method that provides the value encapsulated by this node.
      */
     TreeNode(final TreeTableView table, final Object metadata, final Class<?> baseType) {
@@ -600,7 +600,7 @@ class TreeNode implements Node {
         void setUserObject(Object value) {
             final Collection<?> values = (Collection<?>) super.getUserObject();
             if (!(values instanceof List<?>)) {
-                // 'setValue' is the public method which invoked this one.
+                // `setValue(…)` is the public method which invoked this one.
                 throw new UnsupportedOperationException(Errors.format(Errors.Keys.UnsupportedOperation_1, "setValue"));
             }
             final Class<?> targetType;
@@ -676,7 +676,7 @@ class TreeNode implements Node {
     @SuppressWarnings("ReturnOfCollectionOrArrayField")
     public final Collection<Node> getChildren() {
         /*
-         * 'children' is set to LEAF if an only if the node *can not* have children,
+         * `children` is set to LEAF if an only if the node *cannot* have children,
          * in which case we do not need to check for changes in the underlying metadata.
          */
         if (!isLeaf()) {
@@ -685,7 +685,7 @@ class TreeNode implements Node {
                 value = getUserObject();
                 if (value == null) {
                     /*
-                     * If there is no value, returns an empty set but *do not* set 'children'
+                     * If there is no value, returns an empty set but *do not* set `children`
                      * to that set, in order to allow this method to check again the next time
                      * that this method is invoked.
                      */
@@ -698,7 +698,7 @@ class TreeNode implements Node {
              * If there is a value, check if the cached collection is still applicable.
              * We verify that the collection is a wrapper for the same metadata object.
              * If we need to create a new collection, we know that the property accessor
-             * exists otherwise the call to 'isLeaf()' above would have returned 'true'.
+             * exists otherwise the call to `isLeaf()` above would have returned 'true'.
              */
             if (children == null || ((TreeNodeChildren) children).metadata != value) {
                 PropertyAccessor accessor = table.standard.getAccessor(new CacheKey(value.getClass(), baseType), true);
@@ -781,7 +781,7 @@ class TreeNode implements Node {
             if (delegate == null) {
                 /*
                  * For the given identifier, get the index in the property accessor.
-                 * This can be done only before the 'delegate' is found - after that
+                 * This can be done only before the `delegate` is found - after that
                  * point, the identifier will become unmodifiable.
                  */
                 if (column == TableColumn.IDENTIFIER) {
@@ -791,7 +791,7 @@ class TreeNode implements Node {
                 }
                 /*
                  * Set the value for the property specified by the above identifier,
-                 * then get the 'delegate' on the assumption that the new value will
+                 * then get the `delegate` on the assumption that the new value will
                  * be added at the end of collection (if the property is a collection).
                  */
                 if (column == TableColumn.VALUE) {
@@ -812,7 +812,7 @@ class TreeNode implements Node {
                     }
                     delegate = siblings.childAt(indexInData, indexInList);
                     /*
-                     * Do not set 'delegate.cachedValue = value', since 'value' may
+                     * Do not set 'delegate.cachedValue = value', since `value` may
                      * have been converted by the setter method to another value.
                      */
                     return;
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java
index 638cd9cf97..45090edf8f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java
@@ -572,7 +572,7 @@ final class TreeNodeChildren extends AbstractCollection<TreeTable.Node> {
      * @throws IllegalArgumentException if this list does not have a property for the node identifier.
      * @throws IllegalStateException if a value already exists and no more value can be added for the node identifier.
      * @throws UnmodifiableMetadataException if the property for the node identifier is read-only.
-     * @throws ClassCastException if the node value can not be converted to the expected type.
+     * @throws ClassCastException if the node value cannot be converted to the expected type.
      * @throws BackingStoreException if the metadata implementation threw a checked exception.
      */
     @Override
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
index b7708d64f6..e23fcb4417 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/DefaultMetadata.java
@@ -1318,7 +1318,7 @@ public class DefaultMetadata extends ISOMetadata implements Metadata {
      * This method sets the linkage of the first online resource in the citation of the first identification info.
      *
      * @param  newValue  the new data set URI.
-     * @throws URISyntaxException if the given value can not be parsed as a URI.
+     * @throws URISyntaxException if the given value cannot be parsed as a URI.
      *
      * @deprecated As of ISO 19115:2014, replaced by {@link #getIdentificationInfo()}
      *    followed by {@link DefaultDataIdentification#getCitation()}
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
index 77a211d3da..cb6a6ef5af 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/ISOMetadata.java
@@ -301,7 +301,7 @@ public class ISOMetadata extends ModifiableMetadata implements IdentifiedObject,
     private void setUUID(final String id) {
         /*
          * IdentifierMapAdapter will take care of converting the String to UUID if possible, or
-         * will store the value as a plain String if it can not be converted. In the latter case,
+         * will store the value as a plain String if it cannot be converted. In the latter case,
          * a warning will be emitted (logged or processed by listeners).
          */
         getIdentifierMap().put(IdentifierSpace.UUID, id);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
index 45efc76b17..7bbdc3e817 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/acquisition/package-info.java
@@ -72,7 +72,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
index 1a8f066afe..0f2316d4c6 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/Citations.java
@@ -41,7 +41,7 @@ import org.apache.sis.metadata.iso.DefaultIdentifier;           // For javadoc
 
 
 /**
- * A set of pre-defined constants and static methods working on {@linkplain Citation citations}.
+ * A set of predefined constants and static methods working on {@linkplain Citation citations}.
  * This class provides two kinds of {@code Citation} constants:
  *
  * <ul>
@@ -499,7 +499,7 @@ public final class Citations extends Static {
      * <ul>
      *   <li>If the given title is {@code null} or empty (ignoring spaces), then this method returns {@code null}.</li>
      *   <li>Otherwise if the given string matches an {@linkplain DefaultCitation#getIdentifiers() identifier} of one of
-     *       the pre-defined constants ({@link #EPSG}, {@link #GEOTIFF}, <i>etc.</i>), then that constant is returned.</li>
+     *       the predefined constants ({@link #EPSG}, {@link #GEOTIFF}, <i>etc.</i>), then that constant is returned.</li>
      *   <li>Otherwise, a new citation is created with the specified name as the title.</li>
      * </ul>
      *
diff --git 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
index 1eb9f686b2..68bafb24a7 100644
--- 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
@@ -47,9 +47,9 @@ import org.apache.sis.internal.metadata.Dependencies;
  *
  * <ul>
  *   <li>In ISO 19115:2003, each {@code Contact} had only one {@code Telephone} instance, but that instance
- *       could have an arbitrary amount of "voice" and "facsimile" numbers. The methods (now deprecated) were
+ *       could have an arbitrary number of "voice" and "facsimile" numbers. The methods (now deprecated) were
  *       {@link DefaultContact#getPhone()}, {@link #getVoices()} and {@link #getFacsimiles()}.</li>
- *   <li>In ISO 19115:2014, each {@code Contact} has an arbitrary amount of {@code Telephone} instances, and
+ *   <li>In ISO 19115:2014, each {@code Contact} has an arbitrary number of {@code Telephone} instances, and
  *       each telephone has exactly one number. The new methods are {@link DefaultContact#getPhones()},
  *       {@link #getNumber()} and {@link #getNumberType()}.</li>
  * </ul>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
index 3770ab1656..9dfde30aad 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/citation/package-info.java
@@ -71,7 +71,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
index 2a2bb7ce9a..7dc9ea387f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/constraint/package-info.java
@@ -48,7 +48,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
index f52eb5f3c3..c919a5551f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/content/package-info.java
@@ -65,7 +65,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
index 5cfe20c745..20e49db1a9 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/DefaultFormat.java
@@ -53,8 +53,8 @@ import org.apache.sis.metadata.iso.ISOMetadata;
  * The specification often has an abbreviation (for example "PNG") which can be stored as an
  * {@linkplain DefaultCitation#getAlternateTitles() alternate title}.
  *
- * <p>Apache SIS provides pre-defined metadata structures for some commonly-used formats.
- * A pre-defined format can be obtained by a call to
+ * <p>Apache SIS provides predefined metadata structures for some commonly-used formats.
+ * A predefined format can be obtained by a call to
  * <code>{@linkplain org.apache.sis.metadata.sql.MetadataSource#lookup(Class, String) lookup}(Format.class,
  * <var>abbreviation</var>)</code> where <var>abbreviation</var> can be one of the values listed below:</p>
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
index 45e5ffc676..81e5fcbe02 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/distribution/package-info.java
@@ -52,7 +52,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.java
index ed0420408b..218b364fea 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultGeographicBoundingBox.java
@@ -57,8 +57,8 @@ import static java.lang.Double.doubleToLongBits;
  * <ul>
  *   <li>{@link #setBounds(double, double, double, double)} for setting the extent from (λ,φ) values.</li>
  *   <li>{@link #setBounds(Envelope)} for setting the extent from the given envelope.</li>
- *   <li>{@link #setBounds(GeographicBoundingBox)} for setting the extent from an other bounding box.</li>
- *   <li>{@link #add(GeographicBoundingBox)} for expanding this extent to include an other bounding box.</li>
+ *   <li>{@link #setBounds(GeographicBoundingBox)} for setting the extent from another bounding box.</li>
+ *   <li>{@link #add(GeographicBoundingBox)} for expanding this extent to include another bounding box.</li>
  *   <li>{@link #intersect(GeographicBoundingBox)} for the intersection between the two bounding boxes.</li>
  * </ul>
  *
@@ -524,7 +524,7 @@ public class DefaultGeographicBoundingBox extends AbstractGeographicExtent imple
      *
      * @param  envelope  the envelope to use for setting this geographic bounding box.
      * @throws UnsupportedOperationException if the referencing module is not on the classpath.
-     * @throws TransformException if the envelope can not be transformed to a geographic extent.
+     * @throws TransformException if the envelope cannot be transformed to a geographic extent.
      *
      * @see DefaultExtent#addElements(Envelope)
      * @see DefaultVerticalExtent#setBounds(Envelope)
@@ -789,7 +789,7 @@ public class DefaultGeographicBoundingBox extends AbstractGeographicExtent imple
         }
         /*
          * Above code really requires DefaultGeographicBoundingBox.class, not getClass().
-         * This code is used only for performance raison. The super-class implementation
+         * This code is used only for performance reason. The super-class implementation
          * is generic enough for all other cases.
          */
         if (object != null && object.getClass() == DefaultGeographicBoundingBox.class) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
index bc777cc120..33ab2c8527 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultSpatialTemporalExtent.java
@@ -221,7 +221,7 @@ public class DefaultSpatialTemporalExtent extends DefaultTemporalExtent implemen
      *
      * @param  envelope  the envelope to use for setting this spatiotemporal extent.
      * @throws UnsupportedOperationException if the referencing module is not on the classpath.
-     * @throws TransformException if the envelope can not be transformed to a temporal extent.
+     * @throws TransformException if the envelope cannot be transformed to a temporal extent.
      */
     @Override
     public void setBounds(final Envelope envelope) throws TransformException {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultTemporalExtent.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultTemporalExtent.java
index 3f7e0735eb..f787df6dc3 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultTemporalExtent.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultTemporalExtent.java
@@ -229,7 +229,7 @@ public class DefaultTemporalExtent extends ISOMetadata implements TemporalExtent
      *
      * @param  envelope  the envelope to use for setting this temporal extent.
      * @throws UnsupportedOperationException if the referencing module or the temporal module is not on the classpath.
-     * @throws TransformException if the envelope can not be transformed to a temporal extent.
+     * @throws TransformException if the envelope cannot be transformed to a temporal extent.
      *
      * @see DefaultExtent#addElements(Envelope)
      * @see DefaultGeographicBoundingBox#setBounds(Envelope)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultVerticalExtent.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultVerticalExtent.java
index 4a91a69304..b7136c0dfb 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultVerticalExtent.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/DefaultVerticalExtent.java
@@ -58,7 +58,7 @@ import org.apache.sis.xml.NilReason;
  *   <li>Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases.
  *       Serialization support is appropriate for short term storage or RMI between applications running the
  *       same version of Apache SIS. For long term storage, use {@link org.apache.sis.xml.XML} instead.</li>
- *   <li>Coordinate Reference System can not be specified by identifier only; they have to be specified in full.
+ *   <li>Coordinate Reference System cannot be specified by identifier only; they have to be specified in full.
  *       See <a href="https://issues.apache.org/jira/browse/SIS-397">SIS-397</a>.</li>
  * </ul>
  *
@@ -251,7 +251,7 @@ public class DefaultVerticalExtent extends ISOMetadata implements VerticalExtent
      *
      * @param  envelope  the envelope to use for setting this vertical extent.
      * @throws UnsupportedOperationException if the referencing module is not on the classpath.
-     * @throws TransformException if the envelope can not be transformed to a vertical extent.
+     * @throws TransformException if the envelope cannot be transformed to a vertical extent.
      *
      * @see DefaultExtent#addElements(Envelope)
      * @see DefaultGeographicBoundingBox#setBounds(Envelope)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/Extents.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/Extents.java
index 9ed63cf613..75ecdc85ec 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/Extents.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/Extents.java
@@ -676,7 +676,7 @@ public final class Extents extends Static {
      * if it already represents the intersection result.</p>
      *
      * <h4>Advantage and inconvenient of this method</h4>
-     * This method can not intersect extents defined with different datums because height transformations
+     * This method cannot intersect extents defined with different datums because height transformations
      * generally require the geodetic positions (latitudes and longitudes) of the heights to transform.
      * For more general transformations, it is better to convert all extent components into a single envelope,
      * then {@linkplain org.apache.sis.geometry.Envelopes#transform(CoordinateOperation, Envelope) transform
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
index 522677e968..7be533e4a1 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/extent/package-info.java
@@ -79,11 +79,11 @@
  *
  *       <li>{@link org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox#setBounds(org.opengis.metadata.extent.GeographicBoundingBox)
  *       setBounds(GeographicBoundingBox)}
- *       for setting the extent from an other bounding box.</li>
+ *       for setting the extent from another bounding box.</li>
  *
  *       <li>{@link org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox#add
  *       add(GeographicBoundingBox)}
- *       for expanding this extent to include an other bounding box.</li>
+ *       for expanding this extent to include another bounding box.</li>
  *
  *       <li>{@link org.apache.sis.metadata.iso.extent.DefaultGeographicBoundingBox#intersect
  *       intersect(GeographicBoundingBox)}
@@ -119,7 +119,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/OperationName.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/OperationName.java
index a7e7356f51..1d7424f4d3 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/OperationName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/OperationName.java
@@ -29,7 +29,7 @@ import org.apache.sis.internal.util.Strings;
 
 
 /**
- * An {@code OperationMetadata} placeholder to be replaced later by a reference to an other {@link OperationMetadata}.
+ * An {@code OperationMetadata} placeholder to be replaced later by a reference to another {@link OperationMetadata}.
  * This temporary place holder is used when the operation name is unmarshalled before the actual operation definition.
  *
  * @author  Martin Desruisseaux (Geomatys)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
index 59ecd6080a..2a141c935f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/identification/package-info.java
@@ -80,7 +80,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
index 6f4f1ac4bf..2326852e36 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/lineage/package-info.java
@@ -50,7 +50,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
index a5ec98b428..ea1b2e8a5d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/maintenance/package-info.java
@@ -46,7 +46,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
index ca91955ed4..6e89b090bb 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/package-info.java
@@ -66,7 +66,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
index 0650db257b..8c56bb152a 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/package-info.java
@@ -22,7 +22,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
index 4ef118f9d9..d89691fc40 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/spatial/package-info.java
@@ -68,7 +68,7 @@
  *
  * <h2>Null values, nil objects and collections</h2>
  * All constructors and setter methods accept {@code null} arguments.
- * A null argument value means that the metadata element can not be provided, and the reason for that is unspecified.
+ * A null argument value means that the metadata element cannot be provided, and the reason for that is unspecified.
  * Alternatively, users can specify why a metadata element is missing by providing a value created by
  * {@link org.apache.sis.xml.NilReason#createNilObject NilReason.createNilObject(Class)}.
  *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
index eae0077bc2..c79439a94f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/package-info.java
@@ -48,7 +48,7 @@
  * <ul class="verbose">
  *   <li>The {@code Abstract} prefix means that the class is abstract in the sense of the implemented standard.
  *       It it not necessarily abstract in the sense of Java. Because incomplete metadata are common in practice,
- *       sometime we wish to instantiate an "abstract" class despite the lack of knowledge about the exact sub-type.</li>
+ *       sometimes we wish to instantiate an "abstract" class despite the lack of knowledge about the exact sub-type.</li>
  *   <li>The properties are determined by the getter methods declared in the interfaces.
  *       Getter methods declared in the implementation classes are ignored.</li>
  *   <li>Setter methods, if any, can be declared in the implementation classes without the need for declarations
@@ -107,7 +107,7 @@
  * The SIS library supports XML marshalling and unmarshalling with JAXB annotations.
  *
  * <p>Only the implementation classes defined in the {@link org.apache.sis.metadata.iso} packages and sub-packages
- * are annotated for JAXB marshalling. If a metadata is implemented by an other package (for example
+ * are annotated for JAXB marshalling. If a metadata is implemented by another package (for example
  * {@link org.apache.sis.metadata.sql}), then it shall be converted to an annotated class before to be marshalled.
  * All SIS annotated classes provide a copy constructor for this purpose. A shallow copy is sufficient;
  * JAXB adapters will convert the elements on-the-fly when needed.</p>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/CachedStatement.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/CachedStatement.java
index 90614106fb..f8b54ae07e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/CachedStatement.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/CachedStatement.java
@@ -37,7 +37,7 @@ import org.apache.sis.internal.system.Loggers;
  *
  * <h2>Synchronization</h2>
  * This class is <strong>not</strong> thread-safe. Callers must perform their own synchronization in such a way
- * that only one query is executed on the same connection (JDBC connections can not be assumed thread-safe).
+ * that only one query is executed on the same connection (JDBC connections cannot be assumed thread-safe).
  * The synchronization lock shall be the {@link MetadataSource} which contain this entry.
  *
  * <h2>Closing</h2>
@@ -69,7 +69,7 @@ final class CachedStatement implements AutoCloseable {
 
     /**
      * The statement associated with this entry. The SQL query depends on the {@link #type},
-     * which can not be changed, and the {@link #identifier}, which can be changed at any time.
+     * which cannot be changed, and the {@link #identifier}, which can be changed at any time.
      * The first parameter of the statement shall be the identifier.
      */
     private final PreparedStatement statement;
@@ -163,7 +163,7 @@ final class CachedStatement implements AutoCloseable {
 
     /**
      * Closes the statement and free all resources.
-     * After this method has been invoked, this object can not be used anymore.
+     * After this method has been invoked, this object cannot be used anymore.
      *
      * <p>This method is not invoked by the method or thread that created this {@code CachedStatement} instance.
      * This method is invoked by {@link MetadataSource#close()} instead.</p>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/Dispatcher.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/Dispatcher.java
index 63a15907e4..777f62956f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/Dispatcher.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/Dispatcher.java
@@ -201,7 +201,7 @@ final class Dispatcher implements InvocationHandler {
      * @return the property value, or {@code null} if none.
      * @throws ReflectiveOperationException if an error occurred while querying the {@link #cache}.
      * @throws SQLException if an error occurred while querying the database.
-     * @throws MetadataStoreException if a value was not found or can not be converted to the expected type.
+     * @throws MetadataStoreException if a value was not found or cannot be converted to the expected type.
      */
     private Object fetchValue(final LookupInfo info, final Method method)
             throws ReflectiveOperationException, SQLException, MetadataStoreException
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/LookupInfo.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/LookupInfo.java
index bd3274c9ec..3c6f7663e4 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/LookupInfo.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/LookupInfo.java
@@ -125,7 +125,7 @@ final class LookupInfo {
      * The expected value is an instance of a class outside the metadata package, for example
      * {@link String}, {@link org.opengis.util.InternationalString}, {@link java.net.URI}, <i>etc.</i>
      *
-     * @throws UnconvertibleObjectException if the value can not be converter.
+     * @throws UnconvertibleObjectException if the value cannot be converter.
      */
     @SuppressWarnings({"unchecked","rawtypes"})
     final Object convert(final Class<?> targetType, Object value) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataFallback.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataFallback.java
index 4f7a6f2f3e..f3f768c45e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataFallback.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataFallback.java
@@ -34,7 +34,7 @@ import static java.util.Collections.singleton;
 
 /**
  * A fallback providing hard-coded values of metadata entities.
- * Used when connection to the spatial metadata can not be established.
+ * Used when connection to the spatial metadata cannot be established.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.2
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java
index 4cf0c3509c..4cf7975876 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataSource.java
@@ -78,7 +78,7 @@ import org.apache.sis.util.iso.Types;
 
 /**
  * A connection to a metadata database in read-only mode. It can be either the database
- * {@linkplain #getProvided() provided by Apache SIS} with pre-defined ISO 19115 metadata,
+ * {@linkplain #getProvided() provided by Apache SIS} with predefined ISO 19115 metadata,
  * or another database specified at construction time.
  * Metadata instances can be obtained as in the example below:
  *
@@ -175,7 +175,7 @@ public class MetadataSource implements AutoCloseable {
      *
      * Every access to this array <strong>must</strong> be synchronized on {@code MetadataSource.this}.
      * Execution of a prepared statement may also need to be done inside the synchronized block,
-     * because a single JDBC connection can not be assumed thread-safe.
+     * because a single JDBC connection cannot be assumed thread-safe.
      *
      * <p>Usage example:</p>
      * {@preformat java
@@ -294,15 +294,15 @@ public class MetadataSource implements AutoCloseable {
 
     /**
      * Returns the metadata source connected to the {@code "jdbc/SpatialMetadata"} database.
-     * In a default Apache SIS installation, this metadata source contains pre-defined records
+     * In a default Apache SIS installation, this metadata source contains predefined records
      * for some commonly used {@linkplain org.apache.sis.metadata.iso.citation.DefaultCitation
      * citations} and {@linkplain org.apache.sis.metadata.iso.distribution.DefaultFormat formats}
      * among others.
      *
-     * <p>If connection to the metadata database can not be established, then this method returns
+     * <p>If connection to the metadata database cannot be established, then this method returns
      * a fallback with a few hard-coded values.</p>
      *
-     * @return source of pre-defined metadata records from the {@code "jdbc/SpatialMetadata"} database.
+     * @return source of predefined metadata records from the {@code "jdbc/SpatialMetadata"} database.
      */
     public static synchronized MetadataSource getProvided() {
         MetadataSource ms = instance;
@@ -321,7 +321,7 @@ public class MetadataSource implements AutoCloseable {
             } catch (Exception e) {
                 ms = MetadataFallback.INSTANCE;
                 /*
-                 * Derby sometime wraps SQLException into another SQLException.  For making the stack strace a
+                 * Derby sometimes wraps SQLException into another SQLException.  For making the stack strace a
                  * little bit simpler, keep only the root cause provided that the exception type is compatible.
                  * If the Derby driver was not found at all, reduce the logging level since Derby is optional.
                  */
@@ -435,7 +435,7 @@ public class MetadataSource implements AutoCloseable {
     }
 
     /**
-     * If the metadata schema does not exist in the database, creates it and inserts the pre-defined metadata values.
+     * If the metadata schema does not exist in the database, creates it and inserts the predefined metadata values.
      * The current implementation has the following restrictions:
      *
      * <ul>
@@ -912,7 +912,7 @@ public class MetadataSource implements AutoCloseable {
              * At this point, a null value means that the given type is a class rather than an interface.
              * This may happen when a new type defined by a standard has not yet been defined in GeoAPI.
              * In such case, we only have the implementation class in Apache SIS, not yet the interface.
-             * Since we can not create a Proxy, we have to fetch all property values now. This is not
+             * Since we cannot create a Proxy, we have to fetch all property values now. This is not
              * very efficient and may waste a little bit of memory, but it should not happen too often.
              */
             if (value == null) {
@@ -966,7 +966,7 @@ public class MetadataSource implements AutoCloseable {
      * @param  toSearch  contains the identifier and preferred index of the record to search.
      * @return the value of the requested attribute, or {@code null} if none.
      * @throws SQLException if the SQL query failed.
-     * @throws MetadataStoreException if a value was not found or can not be converted to the expected type.
+     * @throws MetadataStoreException if a value was not found or cannot be converted to the expected type.
      */
     final Object readColumn(final LookupInfo info, final Method method, final Dispatcher toSearch)
             throws SQLException, MetadataStoreException
@@ -992,7 +992,7 @@ public class MetadataSource implements AutoCloseable {
                 /*
                  * Prepares the statement and executes the SQL query in this synchronized block.
                  * Note that the usage of `result` must stay inside this synchronized block
-                 * because we can not assume that JDBC connections are thread-safe.
+                 * because we cannot assume that JDBC connections are thread-safe.
                  */
                 CachedStatement result = prepareStatement(type, tableName, toSearch.preferredIndex);
                 value = result.getValue(toSearch.identifier, columnName);
@@ -1224,7 +1224,7 @@ public class MetadataSource implements AutoCloseable {
             }
         }
         if (delay > 0) {
-            // Some statements can not be disposed yet.
+            // Some statements cannot be disposed yet.
             DelayedExecutor.schedule(new CloseTask(currentTime + delay + EXTRA_DELAY));
             isCloseScheduled = true;
         } else {
@@ -1239,7 +1239,7 @@ public class MetadataSource implements AutoCloseable {
     /**
      * Closes the given resource without throwing exception. In case of failure while closing the resource,
      * the message is logged but the process continue since we are not supposed to use the resource anymore.
-     * This method is invoked from methods that can not throw a SQL exception.
+     * This method is invoked from methods that cannot throw a SQL exception.
      */
     private void closeQuietly(final AutoCloseable resource) {
         if (resource != null) try {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataWriter.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataWriter.java
index 4343c03512..42bb4bf4da 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataWriter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/MetadataWriter.java
@@ -216,7 +216,7 @@ public class MetadataWriter extends MetadataSource {
                     Errors.Keys.IllegalArgumentClass_2, "metadata", metadata.getClass()));
         } catch (SQLException e) {
             /*
-             * Derby sometime wraps SQLException into another SQLException.  For making the stack strace a
+             * Derby sometimes wraps SQLException into another SQLException.  For making the stack strace a
              * little bit simpler, keep only the root cause provided that the exception type is compatible.
              */
             throw new MetadataStoreException(e.getLocalizedMessage(), Exceptions.unwrap(e));
@@ -282,7 +282,7 @@ public class MetadataWriter extends MetadataSource {
         /*
          * Process to the table creation if it does not already exists. If the table has parents, they will be
          * created first. The latter will work only for database supporting table inheritance, like PostgreSQL.
-         * For other kind of database engine, we can not store metadata having parent interfaces.
+         * For other kind of database engine, we cannot store metadata having parent interfaces.
          */
         Boolean isChildTable = createTable(stmt, interfaceType, table, columns);
         if (isChildTable == null) {
@@ -323,7 +323,7 @@ public class MetadataWriter extends MetadataSource {
                 final boolean isCodeList = ControlledVocabulary.class.isAssignableFrom(rt);     // Accept also some enums.
                 if (isCodeList || standard.isMetadata(rt)) {
                     /*
-                     * Found a reference to an other metadata. Remind that column for creating a foreign key
+                     * Found a reference to another metadata. Remind that column for creating a foreign key
                      * constraint later, except if the return type is an abstract CodeList or Enum (in which
                      * case the reference could be to any CodeList or Enum table). Abstract CodeList or Enum
                      * may happen when the concrete class is not yet available in the GeoAPI version that we
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/TableHierarchy.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/TableHierarchy.java
index d362793ca4..8a80d9cfc1 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/TableHierarchy.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/sql/TableHierarchy.java
@@ -26,7 +26,7 @@ import org.apache.sis.util.iso.Types;
  * This features is partially supported in PostgreSQL database.
  *
  * <p>This class is a work around for databases that support table inheritances,
- * but not yet index inheritance. For example in PostgreSQL 9.5.13, we can not yet declare
+ * but not yet index inheritance. For example in PostgreSQL 9.5.13, we cannot yet declare
  * a foreigner key to the super table and find the entries in inherited tables that way.</p>
  *
  * <p>An alternative to current workaround would be to repeat a search in all child tables.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java
index 633a00f196..ae5f1429cd 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/AbstractName.java
@@ -72,7 +72,7 @@ import org.apache.sis.internal.system.DefaultFactories;
  */
 
 /*
- * JAXB annotation would be @XmlType(name = "CodeType"), but this can not be used here
+ * JAXB annotation would be @XmlType(name = "CodeType"), but this cannot be used here
  * since "CodeType" is used for various classes (including LocalName and ScopedName).
  */
 @XmlTransient
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultLocalName.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultLocalName.java
index 1ed4135186..736c35b372 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultLocalName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultLocalName.java
@@ -66,7 +66,7 @@ import org.apache.sis.xml.Namespaces;
  */
 
 /*
- * JAXB annotation would be @XmlType(name ="CodeType"), but this can not be used here
+ * JAXB annotation would be @XmlType(name ="CodeType"), but this cannot be used here
  * since "CodeType" is used for various classes (including GenericName and ScopedName).
  * (Un)marhalling of this class needs to be handled by a JAXB adapter.
  */
@@ -108,7 +108,7 @@ public class DefaultLocalName extends AbstractName implements LocalName {
      * {@preformat xml
      *   <gco:TypeName>
      *     <gco:aName>
-     *       <gco:CharacterString>An other local name</gco:CharacterString>
+     *       <gco:CharacterString>Another local name</gco:CharacterString>
      *     </gco:aName>
      *   </gco:TypeName>
      * }
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultMemberName.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultMemberName.java
index 4182fe0cfc..f647a4b7b7 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultMemberName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultMemberName.java
@@ -72,7 +72,7 @@ public class DefaultMemberName extends DefaultLocalName implements MemberName {
      *
      * @param scope          the scope of this name, or {@code null} for a global scope.
      * @param name           the local name (never {@code null}).
-     * @param attributeType  the type of the data associated with the record member (can not be {@code null}).
+     * @param attributeType  the type of the data associated with the record member (cannot be {@code null}).
      */
     protected DefaultMemberName(final NameSpace scope, final CharSequence name, final TypeName attributeType) {
         super(scope, name);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
index 32854fd0cb..0f0e6f3d76 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
@@ -209,7 +209,7 @@ public class DefaultNameFactory extends AbstractFactory implements NameFactory {
      * @param  name   the type name as a string or an international string.
      * @return the type name for the given scope and character sequence.
      * @throws UnknownNameException if a mapping from the name to a Java class was expected to exist
-     *         (because the specified scope is "OGC" or "class") but the associated Java class can not be found.
+     *         (because the specified scope is "OGC" or "class") but the associated Java class cannot be found.
      *
      * @see #toTypeName(Class)
      * @see DefaultTypeName#DefaultTypeName(NameSpace, CharSequence)
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java
index 1d30650911..59c743f8d5 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameSpace.java
@@ -567,7 +567,7 @@ public class DefaultNameSpace implements NameSpace, Serializable {
      * Otherwise completes the initialization of the deserialized instance.
      *
      * <p>Because of its package-private access, this method is <strong>not</strong> invoked if
-     * the deserialized class is a subclass defined in an other package. This is the intended
+     * the deserialized class is a subclass defined in another package. This is the intended
      * behavior since we don't want to replace an instance of a user-defined class.</p>
      *
      * @return the unique instance.
diff --git 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
index 80597500b3..20d0940fbb 100644
--- 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
@@ -72,7 +72,7 @@ public class DefaultRecord implements Record, Serializable {
     private static final long serialVersionUID = -5293250754663538325L;
 
     /**
-     * The type definition of this record. Can not be {@code null}.
+     * The type definition of this record. Cannot be {@code null}.
      */
     @SuppressWarnings("serial")
     final RecordDefinition definition;
@@ -106,7 +106,7 @@ public class DefaultRecord implements Record, Serializable {
      * Creates a new record initialized to a shallow copy of the given record.
      * The fields contained in the given record are <strong>not</strong> recursively copied.
      *
-     * @param  record  the record to copy (can not be null).
+     * @param  record  the record to copy (cannot be null).
      *
      * @since 0.8
      */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java
index 7046f7f6a4..723c14ae6f 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordSchema.java
@@ -63,7 +63,7 @@ import org.apache.sis.internal.util.Strings;
  * Subclasses should make sure that any overridden methods remain safe to call from multiple threads.
  *
  * <h2>Limitations</h2>
- * This class is currently not serializable because {@code RecordSchema} contain an arbitrary amount of record
+ * This class is currently not serializable because {@code RecordSchema} contain an arbitrary number of record
  * types in its {@linkplain #getDescription() description} map. Since each {@code RecordType} has a reference
  * to its schema, serializing a single {@code RecordType} could imply serializing all of them.
  * In order to reduce the risk of unexpected behavior, serialization is currently left to subclasses.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java
index caf55c6c1f..a519a44dac 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultRecordType.java
@@ -50,7 +50,7 @@ import org.apache.sis.internal.metadata.RecordSchemaSIS;
 /**
  * An immutable definition of the type of a {@linkplain DefaultRecord record}.
  * A {@code RecordType} is identified by a {@linkplain #getTypeName() type name} and contains an
- * arbitrary amount of {@linkplain #getMembers() members} (fields) as (<var>name</var>, <var>type</var>) pairs.
+ * arbitrary number of {@linkplain #getMembers() members} (fields) as (<var>name</var>, <var>type</var>) pairs.
  * A {@code RecordType} may therefore contain another {@code RecordType} as a field.
  *
  * <div class="note"><b>Comparison with Java reflection:</b>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultScopedName.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultScopedName.java
index b2c20c8b06..e1061c4d6e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultScopedName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultScopedName.java
@@ -59,7 +59,7 @@ import org.apache.sis.internal.util.UnmodifiableArrayList;
  */
 
 /*
- * JAXB annotation would be @XmlType(name ="CodeType"), but this can not be used here
+ * JAXB annotation would be @XmlType(name ="CodeType"), but this cannot be used here
  * since "CodeType" is used for various classes (including GenericName and LocalName).
  * (Un)marhalling of this class needs to be handled by a JAXB adapter.
  */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultTypeName.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultTypeName.java
index 7e00cfc999..55c894610d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultTypeName.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultTypeName.java
@@ -43,7 +43,7 @@ import org.apache.sis.util.UnknownNameException;
  * A more standard practice would be to use the
  * <a href="https://schemas.opengis.net/definitions/1.1.0/dataType.xml">data type URN standard values</a>
  * (third column in the table below), but the set of data type identifiers defined by OGC is currently
- * small and is sometime not an exact match.
+ * small and is sometimes not an exact match.
  *
  * <table class="sis">
  *   <caption>Mapping from Java classes to type names (non-exhaustive list)</caption>
@@ -179,17 +179,17 @@ public class DefaultTypeName extends DefaultLocalName implements TypeName {
      *           then the corresponding class is associated to this type name.</li>
      *       <li>Otherwise no Java class is associated to this type name.
      *           No exception is thrown because names in the global namespace could be anything;
-     *           this constructor can not know if the given name was wrong.</li>
+     *           this constructor cannot know if the given name was wrong.</li>
      *     </ul>
      *   </li>
      *   <li>Otherwise no Java class is associated to this type name,
-     *       because this method can not check the validity of names in other namespaces.</li>
+     *       because this method cannot check the validity of names in other namespaces.</li>
      * </ul>
      *
      * @param  scope  the scope of this name, or {@code null} for a global scope.
      * @param  name   the local name (never {@code null}).
      * @throws UnknownNameException if a mapping from this name to a Java class was expected to exist
-     *         (because the specified scope is "OGC" or "class") but the associated Java class can not be found.
+     *         (because the specified scope is "OGC" or "class") but the associated Java class cannot be found.
      *
      * @see DefaultNameFactory#createTypeName(NameSpace, CharSequence)
      */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Names.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Names.java
index 08ebe2d76b..342a5f7011 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Names.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Names.java
@@ -380,11 +380,11 @@ public final class Names extends Static {
      *       <li>If the name is one of the names recognized in {@code "OGC"} scope (see above),
      *           then the corresponding class is returned.</li>
      *       <li>Otherwise {@code null} is returned. No exception is thrown because names in the global namespace
-     *           could be anything; this method can not be sure that the given name was wrong.</li>
+     *           could be anything; this method cannot be sure that the given name was wrong.</li>
      *     </ul>
      *   </li>
      *   <li>Otherwise {@code null} is returned,
-     *       because this method can not check the validity of names in other namespaces.</li>
+     *       because this method cannot check the validity of names in other namespaces.</li>
      * </ul>
      *
      * @param  type  the type name from which to infer a Java class.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/RecordDefinition.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/RecordDefinition.java
index 1ff3343296..a4a28087e6 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/RecordDefinition.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/RecordDefinition.java
@@ -54,7 +54,7 @@ import org.apache.sis.internal.util.CollectionsExt;
 @XmlTransient
 abstract class RecordDefinition {                                       // Intentionally not Serializable.
     /**
-     * {@code RecordDefinition} implementation used as a fallback when the user-supplied {@link RecordType}
+     * {@code RecordDefinition} implementation used as a fallback when the user supplied {@link RecordType}
      * is not an instance of {@link DefaultRecordType}. So this adapter is used only if Apache SIS is mixed
      * with other implementations.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/IdentifierSpace.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/IdentifierSpace.java
index 5c2945bc18..7e4343827b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/IdentifierSpace.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/IdentifierSpace.java
@@ -91,7 +91,7 @@ public interface IdentifierSpace<T> extends Citation {
     IdentifierSpace<UUID> UUID = new NonMarshalledAuthority<>("gco:uuid", NonMarshalledAuthority.UUID);
 
     /**
-     * An optional attribute for URN to an external resources, or to an other part of a XML
+     * An optional attribute for URN to an external resources, or to another part of a XML
      * document, or an identifier. This is one of the many attributes available in the
      * {@link #XLINK} identifier space, but is provided as a special constant because
      * {@code href} is the most frequently used {@code xlink} attribute.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/InputFactory.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/InputFactory.java
index e90136ba0b..7204c41a51 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/InputFactory.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/InputFactory.java
@@ -69,7 +69,7 @@ final class InputFactory extends Static {
      *
      * @param  in  where to read from.
      * @return the reader.
-     * @throws XMLStreamException if the reader can not be created.
+     * @throws XMLStreamException if the reader cannot be created.
      */
     public static XMLEventReader createXMLEventReader(final InputStream in) throws XMLStreamException {
         return FACTORY.createXMLEventReader(in);
@@ -82,7 +82,7 @@ final class InputFactory extends Static {
      *
      * @param  in  where to read from.
      * @return the reader.
-     * @throws XMLStreamException if the reader can not be created.
+     * @throws XMLStreamException if the reader cannot be created.
      */
     public static XMLEventReader createXMLEventReader(final Reader in) throws XMLStreamException {
         return FACTORY.createXMLEventReader(in);
@@ -93,7 +93,7 @@ final class InputFactory extends Static {
      *
      * @param  in  where to read from.
      * @return the reader.
-     * @throws XMLStreamException if the reader can not be created.
+     * @throws XMLStreamException if the reader cannot be created.
      */
     public static XMLEventReader createXMLEventReader(final InputSource in) throws XMLStreamException {
         return FACTORY.createXMLEventReader(new SAXSource(in));
@@ -104,7 +104,7 @@ final class InputFactory extends Static {
      *
      * @param  in  where to read from.
      * @return the reader.
-     * @throws XMLStreamException if the reader can not be created.
+     * @throws XMLStreamException if the reader cannot be created.
      */
     public static XMLEventReader createXMLEventReader(final Node in) throws XMLStreamException {
         return FACTORY.createXMLEventReader(new DOMSource(in));
@@ -115,7 +115,7 @@ final class InputFactory extends Static {
      *
      * @param  in  where to read from.
      * @return the reader.
-     * @throws XMLStreamException if the reader can not be created.
+     * @throws XMLStreamException if the reader cannot be created.
      */
     public static XMLEventReader createXMLEventReader(final Source in) throws XMLStreamException {
         return FACTORY.createXMLEventReader(in);
@@ -128,7 +128,7 @@ final class InputFactory extends Static {
      *
      * @param  in  where to read from.
      * @return the reader.
-     * @throws XMLStreamException if the reader can not be created.
+     * @throws XMLStreamException if the reader cannot be created.
      */
     public static XMLEventReader createXMLEventReader(final XMLStreamReader in) throws XMLStreamException {
         return FACTORY.createXMLEventReader(new StreamReaderDelegate(in) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java
index 76edc4fb77..39d75af171 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java
@@ -154,7 +154,7 @@ public class MarshallerPool {
      * or {@link #createUnmarshaller()} methods instead.</p>
      *
      * @param  properties  the properties to be given to the (un)marshaller, or {@code null} if none.
-     * @throws JAXBException if the JAXB context can not be created.
+     * @throws JAXBException if the JAXB context cannot be created.
      */
     public MarshallerPool(final Map<String,?> properties) throws JAXBException {
         /*
@@ -177,7 +177,7 @@ public class MarshallerPool {
      *
      * @param  context     the JAXB context.
      * @param  properties  the properties to be given to the (un)marshaller, or {@code null} if none.
-     * @throws JAXBException if the marshaller pool can not be created.
+     * @throws JAXBException if the marshaller pool cannot be created.
      */
     @SuppressWarnings({"unchecked", "rawtypes"})          // Generic array creation
     public MarshallerPool(final JAXBContext context, final Map<String,?> properties) throws JAXBException {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/Namespaces.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/Namespaces.java
index 338b2e0427..e79d289022 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/Namespaces.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/Namespaces.java
@@ -532,7 +532,7 @@ public final class Namespaces extends Static {
 
     /**
      * A map of (<var>URLs</var>, <var>prefix</var>). Stores URLs for which
-     * the prefix to use can not be easily inferred from the URL itself.
+     * the prefix to use cannot be easily inferred from the URL itself.
      */
     private static final Map<String,String> SPECIFIC_URLS;
     static {
@@ -574,7 +574,7 @@ public final class Namespaces extends Static {
     /**
      * Returns the preferred prefix for the given namespace URI.
      *
-     * @param  namespace     the namespace URI for which the prefix needs to be found. Can not be {@code null}.
+     * @param  namespace     the namespace URI for which the prefix needs to be found. Cannot be {@code null}.
      * @param  defaultValue  the default prefix to return if the given {@code namespace} is not recognized,
      *                       or {@code null}.
      * @return the prefix inferred from the namespace URI, or {@code null} if the given namespace is unrecognized
@@ -612,7 +612,7 @@ public final class Namespaces extends Static {
      * A namespace is returned on a <em>best effort</em> basis only; this method may or may not check the full name, and
      * values returned by this method may change in future SIS versions (e.g. when new standards become supported by SIS
      * or when existing standards are upgraded). This method should be used in last resort only, when this information
-     * can not be obtained easily in a more reliable way.</p>
+     * cannot be obtained easily in a more reliable way.</p>
      *
      * @param  type  a class name defined by ISO 19115 or related standards (e.g. {@code "CI_Citation"}.
      * @return a <em>possible</em> namespace for the given type, or {@code null} if unknown.
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilInternationalString.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilInternationalString.java
index 03ed72ff43..96ac0b4820 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilInternationalString.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilInternationalString.java
@@ -67,7 +67,7 @@ final class NilInternationalString implements InternationalString, NilObject, Se
 
     /**
      * Unconditionally throws {@link IndexOutOfBoundsException},
-     * since we can not get any character from an empty string.
+     * since we cannot get any character from an empty string.
      */
     @Override
     public char charAt(final int index) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObject.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObject.java
index 05e8110ae3..ab21b3c84b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObject.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObject.java
@@ -25,7 +25,7 @@ package org.apache.sis.xml;
  * The information may be absent for various reasons, including the attribute being inapplicable in the metadata context
  * ({@link NilReason#INAPPLICABLE}), the information probably exists but is unknown to the data provider
  * ({@link NilReason#UNKNOWN UNKNOW}), the information may not exist at all ({@link NilReason#MISSING
- * MISSING}) or can not be divulged ({@link NilReason#WITHHELD WITHHELD}).
+ * MISSING}) or cannot be divulged ({@link NilReason#WITHHELD WITHHELD}).
  *
  * <p>Nil objects appear most frequently in XML documents because if a mandatory ISO 19115-1 attribute
  * is absent, then the ISO 19115-3 standard requires us to said why it is absent. The following example
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilReason.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilReason.java
index fefd8742e3..b9f13c9903 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilReason.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilReason.java
@@ -205,7 +205,7 @@ public final class NilReason implements Serializable {
      *   <li>If the given argument is one of the {@code "inapplicable"}, {@code "missing"},
      *       {@code "template"}, {@code "unknown"}, {@code "withheld"} or {@code "other"}
      *       strings (ignoring cases and leading/trailing spaces), then the corresponding
-     *       pre-defined constant is returned.</li>
+     *       predefined constant is returned.</li>
      *   <li>Otherwise if the given argument is {@code "other:"} followed by an explanation
      *       text, then an instance for that explanation is returned. More specifically:
      *       <ul>
@@ -224,7 +224,7 @@ public final class NilReason implements Serializable {
      * @param  reason  the reason why an element is not present.
      * @return the reason as a {@code NilReason} object.
      * @throws URISyntaxException if the given string is not one of the predefined enumeration
-     *         values and can not be parsed as a URI.
+     *         values and cannot be parsed as a URI.
      */
     public static NilReason valueOf(String reason) throws URISyntaxException {
         reason = CharSequences.trimWhitespaces(reason);
@@ -383,7 +383,7 @@ public final class NilReason implements Serializable {
          * to cache those values anyway, we opportunistically extend the caching to other types too.
          *
          * Implementation note: we have two synchronizations here: one lock on 'this' because of the
-         * 'synchronized' statement in this method signature, and an other lock in WeakValueHashMap.
+         * 'synchronized' statement in this method signature, and another lock in WeakValueHashMap.
          * The second lock may seem useless since we already hold a lock on 'this'. But it is actually
          * needed because the garbage-collected entries are removed from the map in a background thread
          * (see ReferenceQueueConsumer), which is synchronized on the map itself. It is better to keep
@@ -440,7 +440,7 @@ public final class NilReason implements Serializable {
      * There is no special case for {@link Character} because Java {@code char}s are not really full Unicode characters.
      * They are parts of UTF-16 encoding instead. If there is a need to represent a single Unicode character, we should
      * probably still use a {@link String} where the string contain 1 or 2 Java characters. This may also facilitate the
-     * encoding in the XML files, since many files use an other encoding than UTF-16 anyway.</div>
+     * encoding in the XML files, since many files use another encoding than UTF-16 anyway.</div>
      *
      * @throws IllegalArgumentException if the given type is not a supported type.
      */
@@ -461,7 +461,7 @@ public final class NilReason implements Serializable {
      * Returns {@code true} if the given object may be one of the sentinel values
      * created by {@link #createNilPrimitive(Class)}. This method only checks the value.
      * If this method returns {@code true}, then the caller still needs to check the actual instance using the
-     * {@link PrimitiveTypeProperties} class. The purpose of this method is to filter the values that can not
+     * {@link PrimitiveTypeProperties} class. The purpose of this method is to filter the values that cannot
      * be sentinel values, in order to avoid the synchronization done by {@code PrimitiveTypeProperties}.
      */
     private static boolean mayBeNil(final Object object) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/OutputFactory.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/OutputFactory.java
index ba6736a1be..c30a2432ac 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/OutputFactory.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/OutputFactory.java
@@ -71,7 +71,7 @@ final class OutputFactory extends Static {
      * @param  out       where to write to.
      * @param  encoding  the document encoding (usually {@code "UTF-8"}).
      * @return the writer.
-     * @throws XMLStreamException if the writer can not be created.
+     * @throws XMLStreamException if the writer cannot be created.
      */
     public static XMLEventWriter createXMLEventWriter(OutputStream out, String encoding) throws XMLStreamException {
         return FACTORY.createXMLEventWriter(out, encoding);
@@ -84,7 +84,7 @@ final class OutputFactory extends Static {
      *
      * @param  out  where to write to.
      * @return the writer.
-     * @throws XMLStreamException if the writer can not be created.
+     * @throws XMLStreamException if the writer cannot be created.
      */
     public static XMLEventWriter createXMLEventWriter(final Writer out) throws XMLStreamException {
         return FACTORY.createXMLEventWriter(out);
@@ -96,7 +96,7 @@ final class OutputFactory extends Static {
      *
      * @param  out  where to write to.
      * @return the writer.
-     * @throws XMLStreamException if the writer can not be created.
+     * @throws XMLStreamException if the writer cannot be created.
      */
     public static XMLEventWriter createXMLEventWriter(final ContentHandler out) throws XMLStreamException {
         return FACTORY.createXMLEventWriter(new SAXResult(out));
@@ -108,7 +108,7 @@ final class OutputFactory extends Static {
      *
      * @param  out  where to write to.
      * @return the writer.
-     * @throws XMLStreamException if the writer can not be created.
+     * @throws XMLStreamException if the writer cannot be created.
      */
     public static XMLEventWriter createXMLEventWriter(final Node out) throws XMLStreamException {
         return FACTORY.createXMLEventWriter(new DOMResult(out));
@@ -120,7 +120,7 @@ final class OutputFactory extends Static {
      *
      * @param  out  where to write to.
      * @return the writer.
-     * @throws XMLStreamException if the writer can not be created.
+     * @throws XMLStreamException if the writer cannot be created.
      */
     public static XMLEventWriter createXMLEventWriter(final Result out) throws XMLStreamException {
         return FACTORY.createXMLEventWriter(out);
@@ -134,7 +134,7 @@ final class OutputFactory extends Static {
      *
      * @param  out  where to write to.
      * @return the writer.
-     * @throws XMLStreamException if the writer can not be created.
+     * @throws XMLStreamException if the writer cannot be created.
      */
     public static XMLEventWriter createXMLEventWriter(final XMLStreamWriter out) throws XMLStreamException {
         return FACTORY.createXMLEventWriter(new StAXResult(new StreamWriterDelegate(out) {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java
index 11b8ee14f8..e570506272 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/ReferenceResolver.java
@@ -75,7 +75,7 @@ public class ReferenceResolver {
      * @param  <T>          the compile-time type of the {@code type} argument.
      * @param  context      context (GML version, locale, <i>etc.</i>) of the (un)marshalling process.
      * @param  type         the type of object to be unmarshalled, often as a GeoAPI interface.
-     * @param  identifiers  an arbitrary amount of identifiers. For each identifier,
+     * @param  identifiers  an arbitrary number of identifiers. For each identifier,
      *         the {@linkplain org.apache.sis.referencing.ImmutableIdentifier#getAuthority() authority}
      *         is typically (but not necessarily) one of the constants defined in {@link IdentifierSpace}.
      * @return an object of the given type for the given identifiers, or {@code null} if none.
@@ -190,7 +190,7 @@ public class ReferenceResolver {
      * Returns {@code true} if the marshaller can use a reference to the given object
      * instead of writing the full XML element. This method is invoked when an object to
      * be marshalled has a UUID identifier. Because those object may be defined externally,
-     * SIS can not know if the object shall be fully marshalled or not.
+     * SIS cannot know if the object shall be fully marshalled or not.
      * Such information needs to be provided by the application.
      *
      * <p>The default implementation returns {@code true} in the following cases:</p>
@@ -217,7 +217,7 @@ public class ReferenceResolver {
      * Returns {@code true} if the marshaller can use a {@code xlink:href} reference to the given
      * object instead of writing the full XML element. This method is invoked when an object to be
      * marshalled has a {@link XLink} identifier. Because those object may be defined externally,
-     * SIS can not know if the object shall be fully marshalled or not.
+     * SIS cannot know if the object shall be fully marshalled or not.
      * Such information needs to be provided by the application.
      *
      * <p>The default implementation returns {@code true} in the following cases:</p>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformedEvent.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformedEvent.java
index d70130fb07..7da3125c33 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformedEvent.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformedEvent.java
@@ -35,7 +35,7 @@ import javax.xml.namespace.QName;
 
 /**
  * Base class of events that are wrappers over the events emitted during the reading or writing of an XML document.
- * Those wrappers are used for changing the namespace and sometime the name of XML elements or attributes.
+ * Those wrappers are used for changing the namespace and sometimes the name of XML elements or attributes.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.0
@@ -205,7 +205,7 @@ abstract class TransformedEvent<E extends XMLEvent> implements XMLEvent {
 
     /**
      * Wrapper over an element emitted during the reading or writing of an XML document.
-     * This wrapper is used for changing the namespace and sometime the name of the element.
+     * This wrapper is used for changing the namespace and sometimes the name of the element.
      */
     static final class End extends TransformedEvent<EndElement> implements EndElement {
         /** The namespaces, may or may not be the same than the wrapped event. */
@@ -228,7 +228,7 @@ abstract class TransformedEvent<E extends XMLEvent> implements XMLEvent {
 
     /**
      * Wrapper over an element emitted during the reading or writing of an XML document.
-     * This wrapper is used for changing the namespace and sometime the name of the element.
+     * This wrapper is used for changing the namespace and sometimes the name of the element.
      * The attributes may also be modified.
      */
     static class Start extends TransformedEvent<StartElement> implements StartElement {
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/Transformer.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/Transformer.java
index 3eb67b8ee6..a0b732e8ff 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/Transformer.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/Transformer.java
@@ -71,7 +71,7 @@ import org.apache.sis.internal.jaxb.TypeRegistration;
  *   <li>Handling of above-cited classes duplication requires either a bunch of {@code if (x instanceof Y)} in every
  *       SIS corners, or to modify the {@code xjc} output in order to give to generated classes a common parent class
  *       or interface. In the latter case, the auto-generated classes require significant work anyways.</li>
- *   <li>The namespaces of all versions appear in the {@code xmlns} attributes of the root element (we can not always
+ *   <li>The namespaces of all versions appear in the {@code xmlns} attributes of the root element (we cannot always
  *       create separated JAXB contexts), which is confusing and prevent usage of usual prefixes for all versions
  *       except one.</li>
  * </ul>
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingNamespaces.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingNamespaces.java
index efa36ed533..8049c7832e 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingNamespaces.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/TransformingNamespaces.java
@@ -172,7 +172,7 @@ class TransformingNamespaces implements NamespaceContext {
         String p = context.getPrefix(version.importNS(namespaceURI));
         if (p != null) return p;
         /*
-         * We can not use the `imports` map when the same namespace (e.g. "http://www.isotc211.org/2005/gmd" from
+         * We cannot use the `imports` map when the same namespace (e.g. "http://www.isotc211.org/2005/gmd" from
          * legacy ISO 19139:2007) is mapped to multiple namespaces in the new ISO 19115-3:2016 or other standard.
          * In such case, we have to iterate over `exports` entries until we find an inverse mapping.
          */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/ValueConverter.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/ValueConverter.java
index b48f4dc344..ee408163f7 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/ValueConverter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/ValueConverter.java
@@ -257,7 +257,7 @@ public class ValueConverter {
      * @param  value    the string to convert to a locale, or {@code null}.
      * @return the converted locale, or {@code null} if the given value was null or empty, or
      *         if an exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws IllformedLocaleException if the given string can not be converted to a locale.
+     * @throws IllformedLocaleException if the given string cannot be converted to a locale.
      *
      * @see Locales#parse(String)
      */
@@ -282,7 +282,7 @@ public class ValueConverter {
      * @param  value    the string to convert to a character set, or {@code null}.
      * @return the converted character set, or {@code null} if the given value was null or empty, or
      *         if an exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws IllegalCharsetNameException if the given string can not be converted to a character set.
+     * @throws IllegalCharsetNameException if the given string cannot be converted to a character set.
      *
      * @see Charset#forName(String)
      *
@@ -319,7 +319,7 @@ public class ValueConverter {
      * @param  value    the string to convert to a unit, or {@code null}.
      * @return the converted unit, or {@code null} if the given value was null or empty, or
      *         if an exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws IllegalArgumentException if the given string can not be converted to a unit.
+     * @throws IllegalArgumentException if the given string cannot be converted to a unit.
      *
      * @see Units#valueOf(String)
      */
@@ -378,7 +378,7 @@ public class ValueConverter {
      * @param  value    the string to convert to a UUID, or {@code null}.
      * @return the converted UUID, or {@code null} if the given value was null or empty, or
      *         if an exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws IllegalArgumentException if the given string can not be converted to a UUID.
+     * @throws IllegalArgumentException if the given string cannot be converted to a UUID.
      *
      * @see UUID#fromString(String)
      */
@@ -407,7 +407,7 @@ public class ValueConverter {
      * @param  value    the string to convert to a URI, or {@code null}.
      * @return the converted URI, or {@code null} if the given value was null or empty, or if
      *         an exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws URISyntaxException if the given string can not be converted to a URI.
+     * @throws URISyntaxException if the given string cannot be converted to a URI.
      *
      * @see URI#URI(String)
      */
@@ -436,7 +436,7 @@ public class ValueConverter {
      * @param  value    the URL to convert to a URI, or {@code null}.
      * @return the converted URI, or {@code null} if the given value was null or if an
      *         exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws URISyntaxException if the given URL can not be converted to a URI.
+     * @throws URISyntaxException if the given URL cannot be converted to a URI.
      *
      * @see URL#toURI()
      */
@@ -464,7 +464,7 @@ public class ValueConverter {
      * @param  value    the URI to convert to a URL, or {@code null}.
      * @return the converted URL, or {@code null} if the given value was null or if an
      *         exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws MalformedURLException if the given URI can not be converted to a URL.
+     * @throws MalformedURLException if the given URI cannot be converted to a URL.
      *
      * @see URI#toURL()
      */
@@ -492,7 +492,7 @@ public class ValueConverter {
      * @param  value    the string to convert to a nil reason, or {@code null}.
      * @return the converted nil reason, or {@code null} if the given value was null or empty, or
      *         if an exception was thrown and {@code exceptionOccured(…)} returned {@code true}.
-     * @throws URISyntaxException if the given string can not be converted to a nil reason.
+     * @throws URISyntaxException if the given string cannot be converted to a nil reason.
      *
      * @see NilReason#valueOf(String)
      */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/XLink.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/XLink.java
index 6acec0c261..4db5273aae 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/XLink.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/XLink.java
@@ -97,7 +97,7 @@ public class XLink implements Serializable {
     private Type type;
 
     /**
-     * A URN to an external resources, or to an other part of a XML document, or an identifier.
+     * A URN to an external resources, or to another part of a XML document, or an identifier.
      *
      * @see #getHRef()
      * @category locator
@@ -395,7 +395,7 @@ public class XLink implements Serializable {
      *
      * @param  field  the attribute code, as documented in {@link XLink.Type#fieldMask}.
      * @throws UnsupportedOperationException if this {@code xlink} is unmodifiable.
-     * @throws IllegalStateException if the given field can not be set for this kind of {@code xlink}.
+     * @throws IllegalStateException if the given field cannot be set for this kind of {@code xlink}.
      */
     private void canWrite(final int field, final String name, final Object value) throws IllegalStateException {
         if (hashCode != 0) {
@@ -418,7 +418,7 @@ public class XLink implements Serializable {
     }
 
     /**
-     * Returns a URN to an external resources, or to an other part of a XML document, or an identifier.
+     * Returns a URN to an external resources, or to another part of a XML document, or an identifier.
      *
      * @return a URN to a resources, or {@code null} if none.
      *
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java
index ddc782f38d..917c6324bf 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java
@@ -239,7 +239,7 @@ public final class XML extends Static {
      * supports only the schema versions documented in this {@linkplain XML class javadoc}, for example
      * the ISO 19115-3:2016 version of metadata schema.  For unmarshalling a document encoded according
      * an older metadata schema (e.g. ISO 19139:2007), a transformation is applied on-the-fly.  However
-     * this transformation may sometime produce undesirable results or make debugging more difficult.
+     * this transformation may sometimes produce undesirable results or make debugging more difficult.
      * For this reason {@link MarshallerPool} applies the transformation only if explicitly requested,
      * either by setting a {@link #METADATA_VERSION} or {@link #GML_VERSION} explicitly, or by setting
      * this {@code LENIENT_UNMARSHAL} property to {@code true} if the version to unmarshal is not known
@@ -262,7 +262,7 @@ public final class XML extends Static {
      *   <li>Otherwise an empty element containing only the values of the above-cited attributes is created.</li>
      * </ul>
      *
-     * Applications can sometime do better by using some domain-specific knowledge, for example by searching in a
+     * Applications can sometimes do better by using some domain-specific knowledge, for example by searching in a
      * database. Users can define their search algorithm by subclassing {@link ReferenceResolver} and configuring
      * a unmarshaller as below:
      *
@@ -279,10 +279,10 @@ public final class XML extends Static {
     public static final String RESOLVER = "org.apache.sis.xml.resolver";
 
     /**
-     * Controls the behaviors of the (un)marshalling process when an element can not be processed,
+     * Controls the behaviors of the (un)marshalling process when an element cannot be processed,
      * or alter the element values. The value for this property shall be an instance of {@link ValueConverter}.
      *
-     * <p>If an element in a XML document can not be parsed (for example if a {@linkplain java.net.URL}
+     * <p>If an element in a XML document cannot be parsed (for example if a {@linkplain java.net.URL}
      * string is not valid), the default behavior is to throw an exception which cause the
      * (un)marshalling of the entire document to fail. This default behavior can be customized by
      * invoking {@link Marshaller#setProperty(String, Object)} with this {@code CONVERTER} property
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/XPointer.java b/core/sis-metadata/src/main/java/org/apache/sis/xml/XPointer.java
index 284568d569..cc6ad1ce2d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/XPointer.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/XPointer.java
@@ -88,7 +88,7 @@ enum XPointer {
         if (f >= 0) {
             /*
              * The fragment should typically be of the form "xpointer(//*[@gml:id='m'])".
-             * However sometime we found no "xpointer", but directly the unit instead.
+             * However sometimes we found no "xpointer", but directly the unit instead.
              */
             int i = url.indexOf('(', f);
             if (i >= 0 && regionMatches("xpointer", url, f, i)) {
diff --git a/core/sis-metadata/src/main/resources/org/apache/sis/metadata/sql/Citations.sql b/core/sis-metadata/src/main/resources/org/apache/sis/metadata/sql/Citations.sql
index ae1119eefe..a6d7c9ab69 100644
--- a/core/sis-metadata/src/main/resources/org/apache/sis/metadata/sql/Citations.sql
+++ b/core/sis-metadata/src/main/resources/org/apache/sis/metadata/sql/Citations.sql
@@ -93,7 +93,7 @@ CREATE TABLE metadata."Responsibility" (
 --
 -- All parties referenced in this SQL file. We currently have only organisations, no individuals.
 -- This SQL file has a one-to-one relationship between "Party" (organisation) and "Responsibility"
--- but sometime with different identifiers for emphasising on the product rather than the company.
+-- but sometimes with different identifiers for emphasising on the product rather than the company.
 --
 INSERT INTO metadata."Organisation" ("ID", "name") VALUES
   ('{org}Apache', 'The Apache Software Foundation'),
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/FreeTextMarshallingTest.java b/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/FreeTextMarshallingTest.java
index f036a1305c..3cbeaffad9 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/FreeTextMarshallingTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/FreeTextMarshallingTest.java
@@ -53,7 +53,7 @@ public final strictfp class FreeTextMarshallingTest extends TestCase {
      * The free text is wrapped inside a citation for marshalling
      * purpose, but only the free text is actually tested.
      *
-     * @throws JAXBException if the XML in this test can not be parsed by JAXB.
+     * @throws JAXBException if the XML in this test cannot be parsed by JAXB.
      */
     @Test
     public void testLegacy() throws JAXBException {
@@ -88,7 +88,7 @@ public final strictfp class FreeTextMarshallingTest extends TestCase {
      * The free text is wrapped inside a citation for marshalling
      * purpose, but only the free text is actually tested.
      *
-     * @throws JAXBException if the XML in this test can not be parsed by JAXB.
+     * @throws JAXBException if the XML in this test cannot be parsed by JAXB.
      */
     @Test
     public void testStandard() throws JAXBException {
@@ -125,7 +125,7 @@ public final strictfp class FreeTextMarshallingTest extends TestCase {
      * also because it is more compact and closer to what we would expect
      * inside a {@code <textGroup>} node.
      *
-     * @throws JAXBException if the XML in this test can not be parsed by JAXB.
+     * @throws JAXBException if the XML in this test cannot be parsed by JAXB.
      */
     @Test
     public void testNonStandard() throws JAXBException {
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/OtherLocalesTest.java b/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/OtherLocalesTest.java
index 4200b9a3f9..5f5bcec6ef 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/OtherLocalesTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/internal/jaxb/lan/OtherLocalesTest.java
@@ -85,7 +85,7 @@ public final strictfp class OtherLocalesTest extends TestCase {
         assertArrayEquals(new Locale[] {ENGLISH}, languages.keySet().toArray());
         /*
          * The first 'add' operation on an empty 'languages' list generates a default locale.
-         * Note that we can not test the first element of 'languages', since it is system-dependent.
+         * Note that we cannot test the first element of 'languages', since it is system-dependent.
          */
         languages.clear();
         assertTrue(otherLocales.add(new PT_Locale(FRENCH)));
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/internal/xml/XmlUtilitiesTest.java b/core/sis-metadata/src/test/java/org/apache/sis/internal/xml/XmlUtilitiesTest.java
index a94a99cc32..b2217b9f52 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/internal/xml/XmlUtilitiesTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/internal/xml/XmlUtilitiesTest.java
@@ -40,7 +40,7 @@ public final strictfp class XmlUtilitiesTest extends TestCase {
      * Tests the {@link XmlUtilities#toXML} method.
      * This test arbitrarily uses the CET timezone.
      *
-     * @throws DatatypeConfigurationException if the XML factory can not be created.
+     * @throws DatatypeConfigurationException if the XML factory cannot be created.
      */
     @Test
     public void testToXML() throws DatatypeConfigurationException {
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/AbstractMetadataTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/AbstractMetadataTest.java
index 899753e434..e6f63c0c0b 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/AbstractMetadataTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/AbstractMetadataTest.java
@@ -75,7 +75,7 @@ public final strictfp class AbstractMetadataTest extends TestCase {
     public void testToStringOnCyclicMetadata() {
         final String text = MetadataStandardTest.createCyclicMetadata().toString();
         /*
-         * We can not perform a full comparison of the string since it is locale-dependent.
+         * We cannot perform a full comparison of the string since it is locale-dependent.
          * Compare only the tree structure. The full tree in English is shown in javadoc.
          */
         assertTrue(text, text.startsWith("Acquisition information"));
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/HashCodeTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/HashCodeTest.java
index 240dd3c91b..f013c0cf9e 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/HashCodeTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/HashCodeTest.java
@@ -73,7 +73,7 @@ public final strictfp class HashCodeTest extends TestCase {
         instance.setTitle(title);
         assertEquals("Metadata with a single value.", Integer.valueOf(baseCode + title.hashCode()), hash(instance));
 
-        final InternationalString alternateTitle = new SimpleInternationalString("An other title");
+        final InternationalString alternateTitle = new SimpleInternationalString("Another title");
         instance.setAlternateTitles(singleton(alternateTitle));
         assertEquals("Metadata with two values.",
                      Integer.valueOf(baseCode + title.hashCode() + Arrays.asList(alternateTitle).hashCode()),
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
index db3468704f..9a597ed21a 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/MetadataStandardTest.java
@@ -246,7 +246,7 @@ public final strictfp class MetadataStandardTest extends TestCase {
 
         final DefaultPlatform   platform   = (DefaultPlatform)   getSingleton(p2.getPlatforms());
         final DefaultInstrument instrument = (DefaultInstrument) getSingleton(platform.getInstruments());
-        instrument.setType(new SimpleInternationalString("An other instrument type."));
+        instrument.setType(new SimpleInternationalString("Another instrument type."));
         assertFalse("equals", p1.equals(p2));
     }
 
@@ -358,7 +358,7 @@ public final strictfp class MetadataStandardTest extends TestCase {
     }
 
     /**
-     * Tests serialization of pre-defined constants.
+     * Tests serialization of predefined constants.
      */
     @Test
     public void testSerialization() {
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
index 99c4b83f9e..b0d1b39fc7 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyAccessorTest.java
@@ -229,7 +229,7 @@ public final strictfp class PropertyAccessorTest extends TestCase {
     }
 
     /**
-     * Tests the constructor with a method which override an other method with covariant return type.
+     * Tests the constructor with a method which override another method with covariant return type.
      * This test may need to be updated if a future GeoAPI release modifies the {@link GeographicCRS} interface.
      */
     @Test
@@ -465,8 +465,8 @@ public final strictfp class PropertyAccessorTest extends TestCase {
      * {@preformat text
      *   DefaultCitation
      *     ├─Title……………………………………………………… Ignored title
-     *     ├─Alternate title (1 of 2)…… An other title
-     *     └─Alternate title (2 of 2)…… Yet an other title
+     *     ├─Alternate title (1 of 2)…… Another title
+     *     └─Alternate title (2 of 2)…… Yet another title
      * }
      */
     @Test
@@ -483,8 +483,8 @@ public final strictfp class PropertyAccessorTest extends TestCase {
      * {@preformat text
      *   DefaultCitation
      *     ├─Title……………………………………………………… Ignored title
-     *     ├─Alternate title (1 of 2)…… An other title
-     *     └─Alternate title (2 of 2)…… Yet an other title
+     *     ├─Alternate title (1 of 2)…… Another title
+     *     └─Alternate title (2 of 2)…… Yet another title
      * }
      */
     @Test
@@ -498,8 +498,8 @@ public final strictfp class PropertyAccessorTest extends TestCase {
      * when adding elements in a collection, with or without conversion of type.
      */
     private static void testSetIntoCollection(final boolean conversion) {
-        final String              text1    = "An other title";
-        final String              text2    = "Yet an other title";
+        final String              text1    = "Another title";
+        final String              text2    = "Yet another title";
         final InternationalString title1   = new SimpleInternationalString(text1);
         final InternationalString title2   = new SimpleInternationalString(text2);
         final DefaultCitation     instance = new DefaultCitation("Ignored title");
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
index d7e84f067c..1800fc83ef 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PropertyConsistencyCheck.java
@@ -109,7 +109,7 @@ public abstract strictfp class PropertyConsistencyCheck extends AnnotationConsis
      * {@link CharSequence}, {@link Number}, {@link Date}, {@link Locale}, {@link CodeList},
      * {@link Enum} and types in the {@link #types} list.
      *
-     * <p>The returned value may be of an other type than the given one if the
+     * <p>The returned value may be of another type than the given one if the
      * {@code PropertyAccessor} converter method know how to convert that type.</p>
      *
      * @param  property  the name of the property for which to create a value.
@@ -245,7 +245,7 @@ public abstract strictfp class PropertyConsistencyCheck extends AnnotationConsis
             assertNotNull(testingMethod, elementType);
             final boolean isMap        =        Map.class.isAssignableFrom(propertyType);
             final boolean isCollection = Collection.class.isAssignableFrom(propertyType);
-            assertFalse("Element type can not be Collection.", Collection.class.isAssignableFrom(elementType));
+            assertFalse("Element type cannot be Collection.", Collection.class.isAssignableFrom(elementType));
             assertEquals("Property and element types shall be the same if and only if not a collection.",
                          !(isMap | isCollection), propertyType == elementType);
             /*
@@ -337,7 +337,7 @@ public abstract strictfp class PropertyConsistencyCheck extends AnnotationConsis
                     final int index = accessor.indexOf(name, false);
                     assertTrue(message, index >= 0);
 
-                    // Property can not be a metadata.
+                    // Property cannot be a metadata.
                     final Class<?> elementType = accessor.type(index, TypeValuePolicy.ELEMENT_TYPE);
                     assertFalse(message, standard.isMetadata(elementType));
 
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PrunerTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PrunerTest.java
index 8c34d868aa..4b0dc5607f 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/PrunerTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/PrunerTest.java
@@ -55,7 +55,7 @@ public final strictfp class PrunerTest extends TestCase {
     private final DefaultDataIdentification identification;
 
     /**
-     * A child of an other child metadata object being tested.
+     * A child of another child metadata object being tested.
      *
      * @see <a href="https://issues.apache.org/jira/browse/SIS-194">SIS-194</a>
      *
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java
index 71632378fd..e0406036f8 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeNodeTest.java
@@ -350,7 +350,7 @@ public final strictfp class TreeNodeTest extends TestCase {
         final DefaultCitation citation = metadataWithHierarchy();
         final TreeNode node = create(citation, Citation.class);
         /*
-         * Ensure that we can not overwrite existing nodes.
+         * Ensure that we cannot overwrite existing nodes.
          */
         TreeTable.Node child = node.newChild();
         child.setValue(TableColumn.IDENTIFIER, "title");
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
index ba323eab21..1d15321dab 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/TreeTableViewTest.java
@@ -74,7 +74,7 @@ public final strictfp class TreeTableViewTest extends TestCase {
 
     /**
      * Tests {@link TreeTableView#toString()}.
-     * Since the result is locale-dependent, we can not compare against an exact string.
+     * Since the result is locale-dependent, we cannot compare against an exact string.
      * We will only compare the beginning of each line.
      */
     @Test
diff --git 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
index e4c0dbea52..598b702fc6 100644
--- 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
@@ -92,7 +92,7 @@ public final strictfp class DefaultContactTest extends TestCase implements Filte
         assertArrayEquals("getPhones", tels, contact.getPhones().toArray());
         /*
          * Test the deprecated 'getPhone()' method. Invoking that method shall emit
-         * a warning, since the ISO 19115:2003 methods can not represent SMS numbers.
+         * a warning, since the ISO 19115:2003 methods cannot represent SMS numbers.
          */
         assertSame("getPhone", tel2, contact.getPhone()); // Shall ignore the TelephoneType.SMS.
         assertEquals("warningOccured", "IgnoredPropertyAssociatedTo_1", resourceKey);
@@ -131,7 +131,7 @@ public final strictfp class DefaultContactTest extends TestCase implements Filte
 
     /**
      * Same as {@link #testSetPhone()}, but hiding to {@link DefaultContact} the fact that we
-     * are using a SIS implementation of {@code Telephone}. This will test an other code path.
+     * are using a SIS implementation of {@code Telephone}. This will test another code path.
      */
     @Test
     @DependsOnMethod("testSetPhones")
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/extent/ExtentsTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/extent/ExtentsTest.java
index 134f1be9b1..1e8a587cc0 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/extent/ExtentsTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/extent/ExtentsTest.java
@@ -189,7 +189,7 @@ public final strictfp class ExtentsTest extends TestCase {
     /**
      * Tests the {@link Extents#centroid(GeographicBoundingBox)} method. This method is defined here but executed from
      * the {@link org.apache.sis.internal.referencing.ServicesForMetadataTest} class in {@code sis-referencing} module.
-     * This method can not be executed in the {@code sis-metadata} module because it has a dependency to a referencing
+     * This method cannot be executed in the {@code sis-metadata} module because it has a dependency to a referencing
      * implementation class.
      *
      * @since 0.8
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/AbstractElementTest.java b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/AbstractElementTest.java
index c3946372a8..02392b2c2b 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/AbstractElementTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/metadata/iso/quality/AbstractElementTest.java
@@ -88,7 +88,7 @@ public final strictfp class AbstractElementTest extends TestCase {
     }
 
     /**
-     * Asserts that we can not get a date at the given index in the given list.
+     * Asserts that we cannot get a date at the given index in the given list.
      */
     private static void assertCanNotGet(final List<Date> dates, final int index) {
         try {
@@ -100,7 +100,7 @@ public final strictfp class AbstractElementTest extends TestCase {
     }
 
     /**
-     * Asserts that we can not get add a date at the given index in the given list.
+     * Asserts that we cannot get add a date at the given index in the given list.
      */
     private static void assertCanNotAdd(final List<Date> dates, final int index, final Date date) {
         try {
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/AnnotationConsistencyCheck.java b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/AnnotationConsistencyCheck.java
index 47e1399d0c..04bb4c7bad 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/AnnotationConsistencyCheck.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/AnnotationConsistencyCheck.java
@@ -129,7 +129,7 @@ public abstract strictfp class AnnotationConsistencyCheck extends TestCase {
     protected abstract <T> Class<? extends T> getImplementation(Class<T> type);
 
     /**
-     * If the given GeoAPI type, when marshalled to XML, is wrapped into an other XML element,
+     * If the given GeoAPI type, when marshalled to XML, is wrapped into another XML element,
      * returns the class of the wrapper for that XML element. Otherwise returns {@code null}.
      * Such wrappers are unusual in XML (except for lists), but the ISO 19115-3 standard do that
      * systematically for every elements.
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/DocumentComparator.java b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/DocumentComparator.java
index 14a34c33ac..bac6174c95 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/DocumentComparator.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/DocumentComparator.java
@@ -196,8 +196,8 @@ public strictfp class DocumentComparator {
      *
      * @param  expected  the expected XML document.
      * @param  actual    the XML document to compare.
-     * @throws IOException if the stream can not be read.
-     * @throws ParserConfigurationException if a {@link DocumentBuilder} can not be created.
+     * @throws IOException if the stream cannot be read.
+     * @throws ParserConfigurationException if a {@link DocumentBuilder} cannot be created.
      * @throws SAXException if an error occurred while parsing the XML document.
      */
     public DocumentComparator(final Object expected, final Object actual)
@@ -249,7 +249,7 @@ public strictfp class DocumentComparator {
         if (input instanceof URI)         return ((URI) input).toURL().openStream();
         if (input instanceof URL)         return ((URL) input).openStream();
         if (input instanceof String)      return new ByteArrayInputStream(input.toString().getBytes("UTF-8"));
-        throw new IOException("Can not handle input type: " + (input != null ? input.getClass() : input));
+        throw new IOException("Cannot handle input type: " + (input != null ? input.getClass() : input));
     }
 
     /**
@@ -492,7 +492,7 @@ public strictfp class DocumentComparator {
                  * or if the DocumentBuilder was not namespace-aware. In the following table, the first
                  * column shows the usual case for "http://www.w3.org/2000/xmlns/gml". The second column
                  * shows the case if the DocumentBuilder was not aware of namespaces. The last column is
-                 * a case sometime observed.
+                 * a case sometimes observed.
                  *
                  * ┌───────────────────┬─────────────────────────────────┬──────────────┬─────────────┐
                  * │ Node method       │ Namespace (NS) aware            │ Non NS-aware │ Other case  │
@@ -663,7 +663,7 @@ public strictfp class DocumentComparator {
     }
 
     /**
-     * Parses the given text as a number. If the given text is null or can not be parsed,
+     * Parses the given text as a number. If the given text is null or cannot be parsed,
      * returns {@code NaN}. This is used only if a {@linkplain #tolerance} threshold greater
      * than zero has been provided.
      */
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
index 261c52dd4f..d246e670e6 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/PackageVerifier.java
@@ -207,7 +207,7 @@ final strictfp class PackageVerifier {
                             final Type type = c.getGenericSuperclass();
                             if (type == null) {
                                 throw new SchemaException(String.format(
-                                        "Can not infer type for %s adapter.", adapter.value().getName()));
+                                        "Cannot infer type for %s adapter.", adapter.value().getName()));
                             }
                             if (type instanceof ParameterizedType) {
                                 final Type[] p = ((ParameterizedType) type).getActualTypeArguments();
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
index 0351d9b90a..70b043a17a 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/test/xml/SchemaCompliance.java
@@ -113,7 +113,7 @@ public final strictfp class SchemaCompliance extends SchemaInformation {
      * @param  directory  the directory to scan for classes, relative to class root directory.
      * @throws IOException if an error occurred while reading files or schemas.
      * @throws ClassNotFoundException if an error occurred while loading a {@code "*.class"} file.
-     * @throws ParserConfigurationException if {@link javax.xml.parsers.DocumentBuilder} can not be created.
+     * @throws ParserConfigurationException if {@link javax.xml.parsers.DocumentBuilder} cannot be created.
      * @throws SAXException if an error occurred while parsing the XSD file.
      * @throws SchemaException if a XSD file does not comply with our assumptions,
      *         or a JAXB annotation failed a compliance check.
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NameMarshallingTest.java b/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NameMarshallingTest.java
index 7db792d5f0..3e24ddf22d 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NameMarshallingTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NameMarshallingTest.java
@@ -162,15 +162,15 @@ public final strictfp class NameMarshallingTest extends TestCase {
     @Test
     public void testTypeName() throws JAXBException {
         final NameFactory factory = DefaultFactories.forBuildin(NameFactory.class);
-        final TypeName name = factory.createTypeName(null, "An other local name");
-        assertEquals("An other local name", name.toString());
+        final TypeName name = factory.createTypeName(null, "Another local name");
+        assertEquals("Another local name", name.toString());
         final String expected =
                 "<gml:IO_IdentifiedObject xmlns:gml=\"" + Namespaces.GML + '"' +
                                         " xmlns:gco=\"" + LegacyNamespaces.GCO + "\">\n" +
                 "  <gml:alias>\n" +
                 "    <gco:TypeName>\n" +
                 "      <gco:aName>\n" +
-                "        <gco:CharacterString>An other local name</gco:CharacterString>\n" +
+                "        <gco:CharacterString>Another local name</gco:CharacterString>\n" +
                 "      </gco:aName>\n" +
                 "    </gco:TypeName>\n" +
                 "  </gml:alias>\n" +
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NamesTest.java b/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NamesTest.java
index 2463f844de..6c94db9d9f 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NamesTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/util/iso/NamesTest.java
@@ -116,7 +116,7 @@ public final strictfp class NamesTest extends TestCase {
      * Tests {@link Names#toClass(TypeName)} with in a scope different than {@code "OGC"}.
      * If the name is not recognized, then {@code toClass(TypeName)} is expected to return
      * {@code null} rather than throwing an exception because the namespace is used for too
-     * many things - we can not said that the name is wrong.
+     * many things - we cannot said that the name is wrong.
      */
     @Test
     public void testClassFromOtherNamespaces() {
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java b/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java
index 66d9b5044c..f69edaa114 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonMarshallingTest.java
@@ -169,7 +169,7 @@ public final strictfp class NilReasonMarshallingTest extends TestCase {
     }
 
     /**
-     * Tests a case where the nil reason is specified by an other reason.
+     * Tests a case where the nil reason is specified by another reason.
      *
      * @throws JAXBException if an error occurred during (un)marshalling.
      */
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonTest.java b/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonTest.java
index ce3e27faad..3ddd433f77 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/xml/NilReasonTest.java
@@ -41,7 +41,7 @@ public final strictfp class NilReasonTest extends TestCase {
     /**
      * Tests the {@link NilReason#valueOf(String)} method on constants.
      *
-     * @throws URISyntaxException if a test URI can not be parsed (should not happen).
+     * @throws URISyntaxException if a test URI cannot be parsed (should not happen).
      */
     @Test
     public void testValueOfConstant() throws URISyntaxException {
@@ -58,7 +58,7 @@ public final strictfp class NilReasonTest extends TestCase {
     /**
      * Tests the {@link NilReason#valueOf(String)} method on "other".
      *
-     * @throws URISyntaxException if a test URI can not be parsed (should not happen).
+     * @throws URISyntaxException if a test URI cannot be parsed (should not happen).
      */
     @Test
     public void testValueOfOther() throws URISyntaxException {
@@ -79,7 +79,7 @@ public final strictfp class NilReasonTest extends TestCase {
     /**
      * Tests the {@link NilReason#valueOf(String)} method on a URI.
      *
-     * @throws URISyntaxException if a test URI can not be parsed (should not happen).
+     * @throws URISyntaxException if a test URI cannot be parsed (should not happen).
      */
     @Test
     public void testValueOfURI() throws URISyntaxException {
diff --git a/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkTest.java b/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkTest.java
index bdd321f2ae..fd701adc51 100644
--- a/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkTest.java
+++ b/core/sis-metadata/src/test/java/org/apache/sis/xml/XLinkTest.java
@@ -37,7 +37,7 @@ public final strictfp class XLinkTest extends TestCase {
     /**
      * Tests the automatic {@link XLink#getType()} detection.
      *
-     * @throws URISyntaxException if a test URI can not be parsed (should not happen).
+     * @throws URISyntaxException if a test URI cannot be parsed (should not happen).
      */
     @Test
     public void testGetType() throws URISyntaxException {
@@ -50,49 +50,49 @@ public final strictfp class XLinkTest extends TestCase {
         assertEquals(XLink.Type.TITLE, link.getType());
         assertEquals("XLink[type=\"title\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setRole(new URI("org:apache:sis:role"));
         assertEquals(XLink.Type.EXTENDED, link.getType());
         assertEquals("XLink[type=\"extended\", role=\"org:apache:sis:role\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setTitle(new SimpleInternationalString("Some title"));
         assertEquals(XLink.Type.EXTENDED, link.getType());
         assertEquals("XLink[type=\"extended\", role=\"org:apache:sis:role\", title=\"Some title\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setLabel("SomeLabel");
         assertEquals(XLink.Type.RESOURCE, link.getType());
         assertEquals("XLink[type=\"resource\", role=\"org:apache:sis:role\", title=\"Some title\", label=\"SomeLabel\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setHRef(new URI("org:apache:sis:href"));
         assertEquals(XLink.Type.LOCATOR, link.getType());
         assertEquals("XLink[type=\"locator\", href=\"org:apache:sis:href\", role=\"org:apache:sis:role\", title=\"Some title\", label=\"SomeLabel\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setShow(XLink.Show.NEW);
         assertNull("Can't be Type.SIMPLE if a label is defined.", link.getType());
         assertEquals("XLink[href=\"org:apache:sis:href\", role=\"org:apache:sis:role\", title=\"Some title\", show=\"new\", label=\"SomeLabel\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setLabel(null);
         assertEquals(XLink.Type.SIMPLE, link.getType());
         assertEquals("XLink[type=\"simple\", href=\"org:apache:sis:href\", role=\"org:apache:sis:role\", title=\"Some title\", show=\"new\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
 
         link.setActuate(XLink.Actuate.ON_LOAD);
         assertEquals(XLink.Type.SIMPLE, link.getType());
         assertEquals("XLink[type=\"simple\", href=\"org:apache:sis:href\", role=\"org:apache:sis:role\", title=\"Some title\", show=\"new\", actuate=\"onLoad\"]", link.toString());
         assertFalse("Hash code should have changed.", hashCode == (hashCode = link.hashCode()));
-        assertFalse("Hash code can not be zero.", hashCode == 0);
+        assertFalse("Hash code cannot be zero.", hashCode == 0);
         /*
          * Now freezes the XLink and ensures that it is really immutable.
          */
@@ -110,7 +110,7 @@ public final strictfp class XLinkTest extends TestCase {
     /**
      * Tests write operation, which should not be allowed for some type of link.
      *
-     * @throws URISyntaxException if a test URI can not be parsed (should not happen).
+     * @throws URISyntaxException if a test URI cannot be parsed (should not happen).
      */
     @Test
     public void testWrite() throws URISyntaxException {
@@ -157,7 +157,7 @@ public final strictfp class XLinkTest extends TestCase {
     /**
      * Tests equality.
      *
-     * @throws URISyntaxException if a test URI can not be parsed (should not happen).
+     * @throws URISyntaxException if a test URI cannot be parsed (should not happen).
      */
     @Test
     public void testEquals() throws URISyntaxException {
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
index 029e365895..1ecb19ab55 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
@@ -315,7 +315,7 @@ public final class SEPortrayer {
                     }
                 }
                 if (Double.isNaN(symbolsMargin) || Double.isInfinite(symbolsMargin)) {
-                    // Symbol margin can not be pre calculated, expect a max of 300pixels.
+                    // Symbol margin cannot be pre calculated, expect a max of 300pixels.
                     symbolsMargin = 300f;
                 }
                 if (symbolsMargin > 0) {
@@ -385,7 +385,7 @@ public final class SEPortrayer {
         /*
          * Check if some used properties are not part of the type.
          * This means the FeatureSet may contain sub types.
-         * We can not optimize the query.
+         * We cannot optimize the query.
          */
         if (requiredProperties != null) {
             for (String pn : requiredProperties) {
@@ -449,12 +449,12 @@ public final class SEPortrayer {
             final List<Filter<Feature>> rulefilters = new ArrayList<>();
             for (final Rule rule : rules) {
                 if (rule.isElseFilter()) {
-                    // We can not append styling filters, an else rule match all features.
+                    // We cannot append styling filters, an else rule match all features.
                     break ruleOpti;
                 } else {
                     final Filter<Feature> rf = rule.getFilter();
                     if (rf == null || rf == Filter.<Feature>include()) {
-                        // We can not append styling filters, this rule matchs all features.
+                        // We cannot append styling filters, this rule matchs all features.
                         break ruleOpti;
                     }
                     rulefilters.add(rf);
@@ -598,9 +598,9 @@ public final class SEPortrayer {
                             break;
                         }
                     } else if (semantic == SemanticType.RASTER) {
-                        // Can not test this on feature datas.
+                        // Cannot test this on feature datas.
                     } else if (semantic == SemanticType.TEXT) {
-                        // Can not define a `text` type with current API.
+                        // Cannot define a `text` type with current API.
                     }
                 }
                 if (!valid) return Collections.emptyList();
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoader.java b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoader.java
index d7dfa3d54b..5ea0841a81 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoader.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoader.java
@@ -73,7 +73,7 @@ public class MultiResolutionCoverageLoader {
     private static final int DEFAULT_SCALE_LOG = 3;         // Scale factor of 2³ = 8.
 
     /**
-     * Arbitrary number of levels if we can not compute it from {@link #DEFAULT_SIZE} and {@link #DEFAULT_SCALE_LOG}.
+     * Arbitrary number of levels if we cannot compute it from {@link #DEFAULT_SIZE} and {@link #DEFAULT_SCALE_LOG}.
      * Reminder: the multiplication factor between two levels is 2^{@value #DEFAULT_SCALE_LOG}, so the resolution
      * goes down very fast.
      */
@@ -171,7 +171,7 @@ public class MultiResolutionCoverageLoader {
                 }
             }
         } else {
-            numLevels = DEFAULT_NUM_LEVELS;     // Arbitrary number of levels if we can not compute it.
+            numLevels = DEFAULT_NUM_LEVELS;     // Arbitrary number of levels if we cannot compute it.
         }
         /*
          * Build the arrays of resolutions from finest to coarsest.
@@ -244,7 +244,7 @@ dimensions: for (int j=0; j<tgtDim; j++) {
                     sum += e * e;
                 }
                 /*
-                 * Can not use `Arrays.binarySearch(…)` because elements are not guaranteed to be sorted.
+                 * Cannot use `Arrays.binarySearch(…)` because elements are not guaranteed to be sorted.
                  * Even if `GridCoverageResource.getResolutions()` contract said "finest to coarsest",
                  * it may not be possible to respect this condition on all dimensions in same time.
                  * The main goal is to have a `level` value as high as possible while having a resolution
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
index f87b995e2e..22e0ffc3a2 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/coverage/RenderingData.java
@@ -365,7 +365,7 @@ public class RenderingData implements Cloneable {
      *                      May be {@code null} if this grid coverage has only two dimensions with a size greater than 1 cell.
      * @param  force        whether to force data loading. Should be {@code true} if {@code coverage} changed since last call.
      * @return whether the {@linkpalin #data} changed.
-     * @throws FactoryException if the CRS changed but the transform from old to new CRS can not be determined.
+     * @throws FactoryException if the CRS changed but the transform from old to new CRS cannot be determined.
      * @throws TransformException if an error occurred while transforming coordinates from old to new CRS.
      */
     public final boolean ensureImageLoaded(GridCoverage coverage, final GridExtent sliceExtent, final boolean force)
@@ -607,7 +607,7 @@ public class RenderingData implements Cloneable {
         MathTransform cornerToDisplay = MathTransforms.concatenate(cornerToObjective, objectiveToDisplay);
         MathTransform displayToCenter = MathTransforms.concatenate(inverse, objectiveToCenter);
         /*
-         * If the source image is world-wide and if the transform involves a projection that can not represent
+         * If the source image is world-wide and if the transform involves a projection that cannot represent
          * the whole world, then we need to clip the image to a domain supported by the map projection.
          */
         final Rectangle bounds = ImageUtilities.getBounds(recoloredImage);
@@ -802,7 +802,7 @@ public class RenderingData implements Cloneable {
      *
      * @param  bounds  objective coordinates.
      * @return data coverage cell coordinates (in pixels), or {@code null} if unknown.
-     * @throws TransformException if the bounds can not be transformed.
+     * @throws TransformException if the bounds cannot be transformed.
      */
     public final Rectangle objectiveToData(final Rectangle2D bounds) throws TransformException {
         if (objectiveToCenter == null) return null;
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
index 1075d4085b..cba0c9f1f1 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Canvas.java
@@ -107,7 +107,7 @@ import org.apache.sis.coverage.grid.GridExtent;
  * </ol>
  *
  * <h2>Location of data to display</h2>
- * In addition of above-cited Coordinate Reference Systems, a {@code Canvas} contains also a point of interest.
+ * In addition of above-cited Coordinate Reference Systems, a {@code Canvas} also contains a point of interest.
  * The point of interest is often, but not necessarily, at the center of display area.
  * It defines the position where {@linkplain #getSpatialResolution() resolutions} will be computed,
  * and the position to keep fixed when scales and rotations are applied.
@@ -389,7 +389,7 @@ public class Canvas extends Observable implements Localized {
 
     /**
      * Creates a new canvas for a display device using the given coordinate reference system.
-     * The display CRS of a canvas can not be changed after construction.
+     * The display CRS of a canvas cannot be changed after construction.
      * Its coordinate system depends on the display device shape
      * (for example a two-dimensional Cartesian coordinate system for flat screens,
      * or a polar or spherical coordinate system for planetarium domes).
@@ -513,7 +513,7 @@ public class Canvas extends Observable implements Localized {
      *                   If non-null, the anchor must be associated to a CRS.
      * @throws NullPointerException if the given CRS is null.
      * @throws MismatchedDimensionException if the given CRS does not have the number of dimensions of the display device.
-     * @throws RenderException if the objective CRS can not be set to the given value for another reason.
+     * @throws RenderException if the objective CRS cannot be set to the given value for another reason.
      */
     public void setObjectiveCRS(final CoordinateReferenceSystem newValue, DirectPosition anchor) throws RenderException {
         ArgumentChecks.ensureNonNull(OBJECTIVE_CRS_PROPERTY, newValue);
@@ -714,7 +714,7 @@ public class Canvas extends Observable implements Localized {
      *
      * @param  newValue  the new <cite>objective to display</cite> conversion.
      * @throws IllegalArgumentException if given the transform does not have the expected number of dimensions or is not affine.
-     * @throws RenderException if the <cite>objective to display</cite> transform can not be set to the given value for another reason.
+     * @throws RenderException if the <cite>objective to display</cite> transform cannot be set to the given value for another reason.
      */
     public void setObjectiveToDisplay(final LinearTransform newValue) throws RenderException {
         ArgumentChecks.ensureNonNull(OBJECTIVE_TO_DISPLAY_PROPERTY, newValue);
@@ -788,7 +788,7 @@ public class Canvas extends Observable implements Localized {
      *
      * @param  newValue  the new display bounds.
      * @throws IllegalArgumentException if the given envelope does not have the expected CRS or number of dimensions.
-     * @throws RenderException if the display bounds can not be set to the given value for another reason.
+     * @throws RenderException if the display bounds cannot be set to the given value for another reason.
      */
     public void setDisplayBounds(final Envelope newValue) throws RenderException {
         ArgumentChecks.ensureNonNull(DISPLAY_BOUNDS_PROPERTY, newValue);
@@ -847,7 +847,7 @@ public class Canvas extends Observable implements Localized {
      * @param  newValue  the new coordinates of a representative point.
      * @throws NullPointerException if the given position is null.
      * @throws IllegalArgumentException if the given position does not have a CRS.
-     * @throws RenderException if the point of interest can not be set to the given value.
+     * @throws RenderException if the point of interest cannot be set to the given value.
      */
     public void setPointOfInterest(final DirectPosition newValue) throws RenderException {
         ArgumentChecks.ensureNonNull(POINT_OF_INTEREST_PROPERTY, newValue);
@@ -865,7 +865,7 @@ public class Canvas extends Observable implements Localized {
             if (objectiveCRS == null) {
                 final CoordinateReferenceSystem newObjectiveCRS = CRS.getComponentAt(crs, 0, getDisplayDimensions());
                 if (newObjectiveCRS == null) {
-                    throw new IllegalArgumentException("Can not infer objective CRS.");
+                    throw new IllegalArgumentException("Cannot infer objective CRS.");
                     // Message not localized yet because we should probably try harder.
                 }
                 operationContext.setObjectiveToGeographic(objectiveToGeographic(newObjectiveCRS));
@@ -877,12 +877,12 @@ public class Canvas extends Observable implements Localized {
              *
              * Note 1: in the CoordinateOperationContext used for selecting a MathTransform, the geographic area is
              * still the same but the spatial resolution could be slightly different because computed at a new point
-             * of interest. But we can not use the new point of interest now, because we need the MathTransform for
+             * of interest. But we cannot use the new point of interest now, because we need the MathTransform for
              * computing it. However in practice the resolution is often ignored, or does not vary a lot in regions
              * where it matter. So we assume it is okay to keep the CoordinateOperationContext with old resolution
              * in the following call to `findTransform(…)` or usage of `multidimToObjective`.
              *
-             * Note 2: `oldValue` can not be null if `multidimToObjective` is non-null.
+             * Note 2: `oldValue` cannot be null if `multidimToObjective` is non-null.
              */
             MathTransform mt = multidimToObjective;
             if (mt == null || !Utilities.equalsIgnoreMetadata(crs, oldValue.getCoordinateReferenceSystem())) {
@@ -947,11 +947,11 @@ public class Canvas extends Observable implements Localized {
      * </table>
      *
      * The {@link GridGeometry#getGridToCRS(PixelInCell)} transform built by this method is always a {@link LinearTransform}.
-     * This linearity implies that the grid geometry CRS can not be the Point Of Interest (POI) CRS, unless conversion
+     * This linearity implies that the grid geometry CRS cannot be the Point Of Interest (POI) CRS, unless conversion
      * from POI CRS to objective CRS is linear.
      *
      * @return a grid geometry encapsulating canvas properties, including supplemental dimensions if possible.
-     * @throws RenderException if the grid geometry can not be computed.
+     * @throws RenderException if the grid geometry cannot be computed.
      */
     public GridGeometry getGridGeometry() throws RenderException {
         if (gridGeometry == null) try {
@@ -1037,7 +1037,7 @@ public class Canvas extends Observable implements Localized {
      * to this method. For example the {@link GridExtent} in supplemental dimensions may be different.</p>
      *
      * @param  newValue  the grid geometry from which to get new canvas properties.
-     * @throws RenderException if the given grid geometry can not be converted to canvas properties.
+     * @throws RenderException if the given grid geometry cannot be converted to canvas properties.
      */
     public void setGridGeometry(final GridGeometry newValue) throws RenderException {
         ArgumentChecks.ensureNonNull(GRID_GEOMETRY_PROPERTY, newValue);
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasExtent.java b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasExtent.java
index 2f0ba14db3..a5d4a5f1d8 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasExtent.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasExtent.java
@@ -38,7 +38,7 @@ import org.apache.sis.internal.util.Numerics;
 
 /**
  * A {@link GridExtent} which remembers the {@link Canvas#getPointOfInterest(boolean)} coordinates.
- * This class contains also static help functions for the construction of {@link GridGeometry}.
+ * This class also contains static help functions for the construction of {@link GridGeometry}.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.3
@@ -121,7 +121,7 @@ final class CanvasExtent extends GridExtent {
      * Those dimensions are discovered by inspection of the derivative of the transform
      * from the given CRS to the objective CRS.  In addition, this method also adds the
      * CRS component of those supplemental dimensions in the given list. If a component
-     * can not be separated from the CRS, then current implementation excludes it from
+     * cannot be separated from the CRS, then current implementation excludes it from
      * the set of supplemental dimensions.
      *
      * @param  crs         the coordinate reference system of the Point Of Interest (POI).
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasFollower.java b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasFollower.java
index ffae15f06c..ce5071081d 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasFollower.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/CanvasFollower.java
@@ -104,7 +104,7 @@ public class CanvasFollower implements PropertyChangeListener, Disposable {
     /**
      * Conversions from source objective coordinates to target objective coordinates.
      * Computed when first needed, and recomputed when the objective CRS changes.
-     * A {@code null} value means that no change is needed or can not be done.
+     * A {@code null} value means that no change is needed or cannot be done.
      *
      * @see #findObjectiveTransform(String)
      */
@@ -363,7 +363,7 @@ public class CanvasFollower implements PropertyChangeListener, Disposable {
                         if (before != null) try {
                             /*
                              * Converts a change from units of the source CRS to units of the target CRS.
-                             * If that change can not be computed, fallback on a change in display units.
+                             * If that change cannot be computed, fallback on a change in display units.
                              * The POI may be null, but this is okay if the transform is linear.
                              */
                             if (objectiveTransform != null) {
@@ -505,7 +505,7 @@ public class CanvasFollower implements PropertyChangeListener, Disposable {
     }
 
     /**
-     * Invoked when the {@link #objectiveTransform} transform can not be computed,
+     * Invoked when the {@link #objectiveTransform} transform cannot be computed,
      * or when an optional information required for that transform is missing.
      * This method assumes that the public caller (possibly indirectly) is
      * {@link #propertyChange(PropertyChangeEvent)}.
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Observable.java b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Observable.java
index 73a4302026..4b7faede15 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Observable.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/Observable.java
@@ -145,7 +145,7 @@ abstract class Observable {
      * Notifies all registered listeners that a property changed its value.
      * It is caller responsibility to verify that the event source and property name are valid.
      *
-     * @param  event  the event to forward. Can not be null.
+     * @param  event  the event to forward. Cannot be null.
      *
      * @see PropertyChangeEvent
      * @see PropertyChangeListener
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/TransformChangeEvent.java b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/TransformChangeEvent.java
index 9c058e681d..c6864399e1 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/TransformChangeEvent.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/TransformChangeEvent.java
@@ -365,7 +365,7 @@ public class TransformChangeEvent extends PropertyChangeEvent {
     }
 
     /**
-     * Invoked when a change can not be computed. It should never happen because "objective to display"
+     * Invoked when a change cannot be computed. It should never happen because "objective to display"
      * transforms should always be invertible. If this error nevertheless happens, consider the change
      * as a missing optional information.
      */
diff --git a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
index cb146809ed..53b9bb2343 100644
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.java
@@ -106,7 +106,7 @@ public final class Resources extends IndexedResourceBundle {
         public static final short InconsistentWithGZD_2 = 6;
 
         /**
-         * Location type “{0}” can not have itself as a children.
+         * Location type “{0}” cannot have itself as a children.
          */
         public static final short LocationTypeCycle_1 = 11;
 
@@ -121,7 +121,7 @@ public final class Resources extends IndexedResourceBundle {
         public static final short MGRS = 15;
 
         /**
-         * Can not determine dimension of “{0}” because of odd number of characters.
+         * Cannot determine dimension of “{0}” because of odd number of characters.
          */
         public static final short OddGridCoordinateLength_1 = 7;
 
diff --git a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.properties b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.properties
index d5fdfc92a1..c2107ae833 100644
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.properties
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/internal/gazetteer/Resources.properties
@@ -35,9 +35,9 @@ IllegalSquareIdentification_1     = \u201c{0}\u201d is not a valid square identi
 IllegalUPSZone_1                  = \u201c{0}\u201d is not a valid Universal Polar Stereographic (UPS) zone.
 IllegalUTMZone_1                  = \u201c{0}\u201d is not a valid Universal Transverse Mercator (UTM) zone.
 InconsistentWithGZD_2             = Square identification in the \u201c{0}\u201d reference is inconsistent with the grid zone designation. A consistent zone would be \u201c{1}\u201d.
-LocationTypeCycle_1               = Location type \u201c{0}\u201d can not have itself as a children.
+LocationTypeCycle_1               = Location type \u201c{0}\u201d cannot have itself as a children.
 LocationTypeNotFound_1            = No location type named \u201c{0}\u201d has been found.
 ReferenceSystemNotFound_1         = No Reference System named \u201c{0}\u201d has been found.
-OddGridCoordinateLength_1         = Can not determine dimension of \u201c{0}\u201d because of odd number of characters.
+OddGridCoordinateLength_1         = Cannot determine dimension of \u201c{0}\u201d because of odd number of characters.
 ParentAlreadyExists_1             = A location type parent named \u201c{0}\u201d already exists.
 ChildAlreadyExists_1              = Location type parent already has a child named \u201c{0}\u201d.
diff --git a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerException.java b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerException.java
index 9f0c75d76b..fe966f1ebb 100644
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerException.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerException.java
@@ -20,7 +20,7 @@ import org.opengis.referencing.operation.TransformException;
 
 
 /**
- * Thrown when a coordinate can not be converted to a geographic identifier, or conversely.
+ * Thrown when a coordinate cannot be converted to a geographic identifier, or conversely.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.8
diff --git a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerFactory.java b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerFactory.java
index 7c38152d48..ed3bcf8952 100644
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerFactory.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GazetteerFactory.java
@@ -76,7 +76,7 @@ public class GazetteerFactory extends AbstractFactory {
      *
      * @param  name  name of the reference system to obtain.
      * @return shared instance of the reference system for the given name.
-     * @throws GazetteerException if the reference system can not be obtained.
+     * @throws GazetteerException if the reference system cannot be obtained.
      */
     public ReferencingByIdentifiers forName(final String name) throws GazetteerException {
         return forNameIfKnown(name).orElseThrow(() ->
@@ -90,7 +90,7 @@ public class GazetteerFactory extends AbstractFactory {
      *
      * @param  name  name of the reference system to obtain.
      * @return shared instance of the reference system for the given name.
-     * @throws GazetteerException if the reference system can not be obtained.
+     * @throws GazetteerException if the reference system cannot be obtained.
      */
     public Optional<ReferencingByIdentifiers> forNameIfKnown(String name) throws GazetteerException {
         final int s = name.lastIndexOf(DefaultNameSpace.DEFAULT_SEPARATOR);
diff --git a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java
index 6740f00dc3..3e8683810c 100644
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/GeohashReferenceSystem.java
@@ -148,7 +148,7 @@ public class GeohashReferenceSystem extends ReferencingByIdentifiers {
     final Format format;
 
     /**
-     * The user-supplied CRS with (<var>longitude</var>, <var>latitude</var>) axis order in degrees.
+     * The user supplied CRS with (<var>longitude</var>, <var>latitude</var>) axis order in degrees.
      */
     final DefaultGeographicCRS normalizedCRS;
 
@@ -178,7 +178,7 @@ public class GeohashReferenceSystem extends ReferencingByIdentifiers {
      *
      * @param  format  the format used by the {@code GeohashReferenceSystem.Coder}.
      * @param  crs     the coordinate reference system. This is usually {@link CommonCRS#defaultGeographic()}.
-     * @throws GazetteerException if the reference system can not be created.
+     * @throws GazetteerException if the reference system cannot be created.
      */
     public GeohashReferenceSystem(final Format format, final GeographicCRS crs) throws GazetteerException {
         super(properties(IDENTIFIER, IDENTIFIER, null), types());
@@ -307,7 +307,7 @@ public class GeohashReferenceSystem extends ReferencingByIdentifiers {
          * Returns an approximate precision of the geohashes formatted by this coder.
          * Values are in units of ellipsoid axis length (typically metres). If the location is unspecified,
          * then this method returns a value for the "worst case" scenario, which is at equator.
-         * The actual precision is sometime (but not always) better for coordinates closer to a pole.
+         * The actual precision is sometimes (but not always) better for coordinates closer to a pole.
          *
          * @param  position  where to evaluate the precision, or {@code null} for equator.
          * @return approximate precision of formatted geohashes.
diff --git 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
index 12ade70c13..f9c9cfe21f 100644
--- 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
@@ -608,7 +608,7 @@ public class MilitaryGridReferenceSystem extends ReferencingByIdentifiers {
          *
          * <p>Note that a MGRS reference is normally written as an entity without spaces, parentheses, dashes,
          * or decimal points. Invoking this method with a non-empty separator produces non-conform MGRS, but
-         * is sometime convenient for readability or for use in file systems (with the {@code '/'} separator).</p>
+         * is sometimes convenient for readability or for use in file systems (with the {@code '/'} separator).</p>
          *
          * @param  separator  the separator to insert between each component of the MGRS identifier.
          */
@@ -661,7 +661,7 @@ public class MilitaryGridReferenceSystem extends ReferencingByIdentifiers {
             if (crs == null) {
                 throw new GazetteerException(Errors.format(Errors.Keys.UnspecifiedCRS));
             }
-            // We can not use encoders.computeIfAbsent(crs, ...) because of checked exceptions.
+            // We cannot use encoders.computeIfAbsent(crs, ...) because of checked exceptions.
             Encoder encoder = encoders.get(crs);
             if (encoder == null) {
                 encoder = new Encoder(avoidDatumChange ? null : datum, crs);
@@ -1139,7 +1139,7 @@ public class MilitaryGridReferenceSystem extends ReferencingByIdentifiers {
             /*
              * Compute the geographic bounds of the UPS or UTM zone of validity, together with a representative point
              * (φ,λ₀). We will need to clip the area of interest to those bounds before to project that area, because
-             * the UPS and UTM projections can not cover the whole world.
+             * the UPS and UTM projections cannot cover the whole world.
              */
             double λmin, λmax, φmin, φmax;
             final int zone = Math.abs(encoder.crsZone);
@@ -1222,7 +1222,7 @@ public class MilitaryGridReferenceSystem extends ReferencingByIdentifiers {
             } else {
                 downward = yEnd <= PolarStereographicA.UPS_SHIFT;  // Downward only if AOI is fully in the lower half.
                 /*
-                 * In the polar case, we can not apply the shortcut documented in 'optimize' if there is a hole
+                 * In the polar case, we cannot apply the shortcut documented in 'optimize' if there is a hole
                  * in the UPS projection center. There is a hole if the latitude of the area of interest does not
                  * reach the pole, or if the longitude range does not make a full circle around the Earth.
                  */
@@ -2312,7 +2312,7 @@ parse:                  switch (part) {
          * @param  errorKey   {@link Resources.Keys} value to use in case of error.
          *                    The error message string shall accept exactly one argument.
          * @return the parsed integer.
-         * @throws GazetteerException if the string can not be parsed as an integer.
+         * @throws GazetteerException if the string cannot be parsed as an integer.
          */
         private static int parseInt(final CharSequence reference, final int start, final int end, final short errorKey)
                 throws GazetteerException
@@ -2341,7 +2341,7 @@ parse:                  switch (part) {
          * @param  end        index after the last character to parse as a grid coordinate.
          * @param  scale      value of {@code MathFunctions.pow10(METRE_PRECISION_DIGITS - (end - start))}.
          * @return the parsed grid coordinate (also referred to as rectangular coordinates).
-         * @throws GazetteerException if the string can not be parsed as a grid coordinate.
+         * @throws GazetteerException if the string cannot be parsed as a grid coordinate.
          */
         private static double parseCoordinate(final CharSequence reference,
                 final int start, final int end, final double scale) throws GazetteerException
diff --git a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/ModifiableLocationType.java b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/ModifiableLocationType.java
index e0ea4a68ce..b41db1485a 100644
--- a/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/ModifiableLocationType.java
+++ b/core/sis-referencing-by-identifiers/src/main/java/org/apache/sis/referencing/gazetteer/ModifiableLocationType.java
@@ -171,7 +171,7 @@ public class ModifiableLocationType extends AbstractLocationType {      // Not S
 
     /**
      * Returns the name of the location type.
-     * This name is specified at construction time and can not be changed.
+     * This name is specified at construction time and cannot be changed.
      *
      * <div class="note"><b>Examples:</b>
      * “administrative area”, “town”, “locality”, “street”, “property”.</div>
diff --git a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/GazetteerFactoryTest.java b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/GazetteerFactoryTest.java
index b791442e0e..8d5e7df5e1 100644
--- a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/GazetteerFactoryTest.java
+++ b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/GazetteerFactoryTest.java
@@ -34,7 +34,7 @@ public final strictfp class GazetteerFactoryTest extends TestCase {
     /**
      * Tests {@link ReferencingByIdentifiers#getInstance(String)}.
      *
-     * @throws GazetteerException if a reference system can not be created.
+     * @throws GazetteerException if a reference system cannot be created.
      */
     @Test
     public void testGetInstance() throws GazetteerException {
diff --git a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationViewer.java b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationViewer.java
index c07ed00a5e..27ad43f7de 100644
--- a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationViewer.java
+++ b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/LocationViewer.java
@@ -169,7 +169,7 @@ public final class LocationViewer extends JPanel {
      * @param  coder           the encoder to use for computing locations and their envelopes.
      * @param  areaOfInterest  the geographic or projected area where to get locations.
      * @param  displayCRS      the CRS to use for displaying the location shapes, or {@code null} for the envelope CRS.
-     * @throws FactoryException if a transformation to the display CRS can not be obtained.
+     * @throws FactoryException if a transformation to the display CRS cannot be obtained.
      * @throws TransformException if an error occurred while transforming an envelope.
      */
     public static void show(final String title, final MilitaryGridReferenceSystem.Coder coder, final Envelope areaOfInterest,
@@ -192,7 +192,7 @@ public final class LocationViewer extends JPanel {
      *
      * @param  coder           the encoder to use for computing locations and their envelopes.
      * @param  areaOfInterest  the geographic or projected area where to get locations.
-     * @throws FactoryException if a transformation to the display CRS can not be obtained.
+     * @throws FactoryException if a transformation to the display CRS cannot be obtained.
      * @throws TransformException if an error occurred while transforming an envelope.
      */
     public void addLocations(final MilitaryGridReferenceSystem.Coder coder, final Envelope areaOfInterest)
@@ -212,7 +212,7 @@ public final class LocationViewer extends JPanel {
      *
      * @param  label     a label that identify the location to add.
      * @param  location  the location to add to the list of locations shown by this widget.
-     * @throws FactoryException if a transformation to the display CRS can not be obtained.
+     * @throws FactoryException if a transformation to the display CRS cannot be obtained.
      * @throws TransformException if an error occurred while transforming an envelope.
      */
     public void addLocation(final String label, final Location location) throws FactoryException, TransformException {
diff --git a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java
index 2a76f68343..4804f2152d 100644
--- a/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java
+++ b/core/sis-referencing-by-identifiers/src/test/java/org/apache/sis/referencing/gazetteer/MilitaryGridReferenceSystemTest.java
@@ -132,7 +132,7 @@ public final strictfp class MilitaryGridReferenceSystemTest extends TestCase {
      * The results should be the same for all other zones.
      *
      * @throws TransformException if an error occurred while projecting a geographic coordinate.
-     * @throws ReflectiveOperationException if this test method can not access the table to verify.
+     * @throws ReflectiveOperationException if this test method cannot access the table to verify.
      */
     @Test
     @DependsOnMethod("verifyInvariants")
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
index e310d99c5d..8a35460acd 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractDirectPosition.java
@@ -319,7 +319,7 @@ public abstract class AbstractDirectPosition extends FormattableObject implement
      *
      * @param  wkt  the WKT to parse.
      * @return the coordinates, or {@code null} if none.
-     * @throws NumberFormatException if a number can not be parsed.
+     * @throws NumberFormatException if a number cannot be parsed.
      * @throws IllegalArgumentException if the parenthesis are not balanced.
      */
     static double[] parse(final CharSequence wkt) throws NumberFormatException, IllegalArgumentException {
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
index 6263e26f64..600de5d649 100644
... 19698 lines suppressed ...