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 2023/01/02 11:42:47 UTC
[sis] 02/02: Resolve compiler warnings about non-serializable fields. https://issues.apache.org/jira/browse/SIS-567
This is an automated email from the ASF dual-hosted git repository.
desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
commit a2eed4d0f8af3c3e6476737491aafde6c82d4dcc
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Mon Jan 2 12:30:47 2023 +0100
Resolve compiler warnings about non-serializable fields.
https://issues.apache.org/jira/browse/SIS-567
---
.../org/apache/sis/gui/coverage/GridTileCache.java | 2 +-
.../org/apache/sis/gui/dataset/ResourceEvent.java | 3 +++
.../java/org/apache/sis/coverage/Category.java | 2 ++
.../org/apache/sis/coverage/RegionOfInterest.java | 6 ++++--
.../org/apache/sis/coverage/SampleDimension.java | 2 ++
.../org/apache/sis/coverage/SampleRangeFormat.java | 2 +-
.../main/java/org/apache/sis/coverage/ToNaN.java | 2 +-
.../org/apache/sis/coverage/grid/GridGeometry.java | 4 ++--
.../java/org/apache/sis/coverage/package-info.java | 2 +-
.../apache/sis/feature/AbstractAssociation.java | 1 +
.../org/apache/sis/feature/AbstractAttribute.java | 1 +
.../org/apache/sis/feature/AbstractFeature.java | 3 ++-
.../apache/sis/feature/AbstractIdentifiedType.java | 4 ++++
.../org/apache/sis/feature/AssociationView.java | 1 +
.../java/org/apache/sis/feature/AttributeView.java | 2 +-
.../apache/sis/feature/DefaultAssociationRole.java | 1 +
.../apache/sis/feature/DefaultAttributeType.java | 1 +
.../org/apache/sis/feature/DefaultFeatureType.java | 5 +++++
.../java/org/apache/sis/feature/DenseFeature.java | 2 ++
.../org/apache/sis/feature/EnvelopeOperation.java | 4 ++++
.../sis/feature/FeatureOperationException.java | 1 +
.../sis/feature/InvalidFeatureException.java | 1 +
.../java/org/apache/sis/feature/LinkOperation.java | 1 +
.../org/apache/sis/feature/NamedFeatureType.java | 2 ++
.../java/org/apache/sis/feature/PropertyView.java | 2 +-
.../apache/sis/feature/SingletonAssociation.java | 1 +
.../org/apache/sis/feature/SingletonAttribute.java | 1 +
.../java/org/apache/sis/feature/SparseFeature.java | 1 +
.../apache/sis/feature/StringJoinOperation.java | 4 ++++
.../java/org/apache/sis/filter/BinaryFunction.java | 4 ++--
.../apache/sis/filter/BinaryGeometryFilter.java | 5 +++--
.../org/apache/sis/filter/ConvertFunction.java | 2 +-
.../org/apache/sis/filter/DefaultSortProperty.java | 2 +-
.../java/org/apache/sis/filter/DistanceFilter.java | 2 +-
.../java/org/apache/sis/filter/LeafExpression.java | 2 +-
.../java/org/apache/sis/filter/LikeFilter.java | 2 +-
.../java/org/apache/sis/filter/LogicalFilter.java | 4 ++--
.../java/org/apache/sis/filter/PropertyValue.java | 3 ++-
.../java/org/apache/sis/filter/UnaryFunction.java | 2 +-
.../org/apache/sis/index/tree/NodeIterator.java | 1 +
.../java/org/apache/sis/index/tree/PointTree.java | 15 ++++++-------
.../org/apache/sis/index/tree/PointTreeNode.java | 15 ++-----------
.../org/apache/sis/index/tree/QuadTreeNode.java | 7 +-----
.../org/apache/sis/internal/feature/Resources.java | 1 -
.../internal/feature/SpatialOperationContext.java | 8 +++----
.../sis/internal/feature/j2d/ShapeWrapper.java | 1 +
.../feature/jts/PackedCoordinateSequence.java | 5 +++++
.../sis/internal/filter/GeometryConverter.java | 2 +-
.../sis/internal/filter/SortByComparator.java | 1 +
.../internal/filter/sqlmm/FunctionWithSRID.java | 1 +
.../internal/filter/sqlmm/GeometryConstructor.java | 1 +
.../sis/internal/filter/sqlmm/OneGeometry.java | 3 ++-
.../apache/sis/internal/filter/sqlmm/ST_Point.java | 1 +
.../sis/internal/filter/sqlmm/ST_Transform.java | 1 +
.../sis/internal/filter/sqlmm/TwoGeometries.java | 2 ++
.../sis/internal/processing/isoline/Fragments.java | 2 +-
.../sis/internal/jaxb/IdentifierMapAdapter.java | 2 +-
.../sis/internal/jaxb/SpecializedIdentifier.java | 2 +-
.../apache/sis/internal/metadata/Resources.java | 1 -
.../sis/internal/simple/SimpleAttributeType.java | 1 +
.../internal/simple/SimpleIdentifiedObject.java | 1 +
.../sis/internal/simple/SimpleIdentifier.java | 1 +
.../org/apache/sis/metadata/MetadataFormat.java | 2 +-
.../org/apache/sis/metadata/MetadataStandard.java | 2 +-
.../org/apache/sis/metadata/iso/ISOMetadata.java | 2 +-
.../org/apache/sis/util/iso/DefaultRecord.java | 2 +-
.../org/apache/sis/util/iso/DefaultRecordType.java | 2 +-
.../org/apache/sis/util/iso/DefaultTypeName.java | 2 +-
.../org/apache/sis/util/iso/RecordDefinition.java | 2 +-
.../main/java/org/apache/sis/util/iso/Types.java | 1 +
.../main/java/org/apache/sis/xml/NilReason.java | 3 ++-
.../src/main/java/org/apache/sis/xml/XLink.java | 1 +
.../org/apache/sis/geometry/ArrayEnvelope.java | 1 +
.../org/apache/sis/geometry/CoordinateFormat.java | 3 +++
.../org/apache/sis/geometry/DirectPosition1D.java | 1 +
.../org/apache/sis/geometry/DirectPosition2D.java | 1 +
.../java/org/apache/sis/geometry/Envelope2D.java | 1 +
.../apache/sis/geometry/GeneralDirectPosition.java | 1 +
.../internal/referencing/EPSGParameterDomain.java | 1 +
.../apache/sis/internal/referencing/RTreeNode.java | 1 +
.../referencing/j2d/AffineTransform2D.java | 2 +-
.../referencing/j2d/IntervalRectangle.java | 8 +++++--
.../referencing/j2d/ParameterizedAffine.java | 3 ++-
.../sis/internal/referencing/j2d/package-info.java | 2 +-
.../referencing/provider/DatumShiftGridFile.java | 3 +++
.../referencing/provider/DatumShiftGridGroup.java | 5 ++++-
.../referencing/provider/package-info.java | 2 +-
.../java/org/apache/sis/io/wkt/StoredTree.java | 1 +
.../main/java/org/apache/sis/io/wkt/WKTFormat.java | 5 ++---
.../main/java/org/apache/sis/io/wkt/Warnings.java | 25 ++++++++--------------
.../java/org/apache/sis/io/wkt/package-info.java | 2 +-
.../parameter/DefaultParameterDescriptorGroup.java | 2 +-
.../sis/parameter/DefaultParameterValue.java | 4 ++--
.../apache/sis/parameter/FilteredParameters.java | 3 ++-
.../sis/parameter/MapProjectionParameters.java | 3 +++
.../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 | 2 +-
.../org/apache/sis/parameter/TensorValues.java | 2 +-
.../sis/parameter/UninitializedParameter.java | 2 +-
.../parameter/UnmodifiableParameterValueGroup.java | 4 ++--
.../sis/referencing/AbstractIdentifiedObject.java | 8 +++----
.../sis/referencing/AbstractReferenceSystem.java | 4 ++--
.../sis/referencing/ImmutableIdentifier.java | 4 ++--
.../org/apache/sis/referencing/Properties.java | 1 +
.../apache/sis/referencing/crs/AbstractCRS.java | 2 +-
.../sis/referencing/crs/AbstractDerivedCRS.java | 2 +-
.../sis/referencing/crs/DefaultCompoundCRS.java | 1 +
.../sis/referencing/crs/DefaultEngineeringCRS.java | 2 +-
.../sis/referencing/crs/DefaultGeodeticCRS.java | 1 +
.../sis/referencing/crs/DefaultImageCRS.java | 1 +
.../sis/referencing/crs/DefaultParametricCRS.java | 1 +
.../sis/referencing/crs/DefaultTemporalCRS.java | 1 +
.../sis/referencing/crs/DefaultVerticalCRS.java | 1 +
.../org/apache/sis/referencing/cs/AbstractCS.java | 2 +-
.../sis/referencing/cs/DefaultCompoundCS.java | 5 +++--
.../cs/DefaultCoordinateSystemAxis.java | 1 +
.../sis/referencing/datum/AbstractDatum.java | 3 +++
.../sis/referencing/datum/BursaWolfParameters.java | 2 ++
.../sis/referencing/datum/DatumShiftGrid.java | 3 +++
.../sis/referencing/datum/DefaultEllipsoid.java | 1 +
.../referencing/datum/DefaultGeodeticDatum.java | 2 ++
.../referencing/datum/DefaultPrimeMeridian.java | 1 +
.../org/apache/sis/referencing/datum/Sphere.java | 3 ---
.../factory/UnavailableFactoryException.java | 4 ++--
.../sis/referencing/factory/package-info.java | 2 +-
.../operation/AbstractCoordinateOperation.java | 14 ++++++------
.../operation/AbstractSingleOperation.java | 4 ++--
.../operation/CoordinateOperationContext.java | 2 +-
.../operation/DefaultConcatenatedOperation.java | 2 +-
.../sis/referencing/operation/DefaultFormula.java | 4 ++--
.../operation/DefaultOperationMethod.java | 4 ++--
.../operation/DefaultPassThroughOperation.java | 2 +-
.../operation/InverseOperationMethod.java | 2 +-
.../operation/builder/LinearTransformBuilder.java | 1 -
.../builder/LocalizationGridException.java | 1 +
.../operation/builder/ResidualGrid.java | 1 +
.../operation/matrix/UnmodifiableMatrix.java | 1 +
.../referencing/operation/projection/Inverter.java | 2 +-
.../referencing/operation/projection/Mercator.java | 6 ------
.../operation/projection/NormalizedProjection.java | 2 +-
.../operation/projection/ZonedGridSystem.java | 3 +++
.../transform/AbstractLinearTransform.java | 2 +-
.../operation/transform/ConcatenatedTransform.java | 3 +++
.../operation/transform/ContextualParameters.java | 6 +++---
.../operation/transform/DatumShiftTransform.java | 2 ++
.../transform/DefaultMathTransformFactory.java | 2 +-
.../transform/EllipsoidToCentricTransform.java | 2 +-
.../transform/ExponentialTransform1D.java | 2 +-
.../transform/InterpolatedGeocentricTransform.java | 1 +
.../operation/transform/LinearInterpolator1D.java | 3 ++-
.../transform/LogarithmicTransform1D.java | 1 +
.../operation/transform/PassThroughTransform.java | 1 +
.../operation/transform/PoleRotation.java | 2 +-
.../transform/SpecializableTransform.java | 5 +++++
.../operation/transform/TransferFunction.java | 1 +
.../operation/transform/TransformAdapter2D.java | 1 +
.../operation/transform/SinusoidalShiftGrid.java | 2 +-
.../sis/internal/converter/ArrayConverter.java | 1 +
.../internal/converter/CharSequenceConverter.java | 1 +
.../sis/internal/converter/FallbackConverter.java | 2 ++
.../sis/internal/converter/IdentityConverter.java | 8 +++----
.../sis/internal/converter/StringConverter.java | 22 +++++++++----------
.../sis/internal/converter/package-info.java | 2 +-
.../sis/internal/util/AutoMessageFormat.java | 2 +-
.../apache/sis/internal/util/CheckedHashSet.java | 1 +
.../sis/internal/util/SimpleCharacterIterator.java | 10 ++-------
.../sis/internal/util/UnmodifiableArrayList.java | 1 +
.../main/java/org/apache/sis/math/ArrayVector.java | 2 +-
.../org/apache/sis/math/ConcatenatedVector.java | 1 +
.../org/apache/sis/math/LinearlyDerivedVector.java | 1 +
.../java/org/apache/sis/math/RepeatedVector.java | 1 +
.../main/java/org/apache/sis/math/Statistics.java | 1 +
.../apache/sis/measure/ConcatenatedConverter.java | 2 ++
.../org/apache/sis/measure/ConventionalUnit.java | 2 +-
.../java/org/apache/sis/measure/DerivedScalar.java | 4 ++--
.../sis/measure/FormattedCharacterIterator.java | 23 ++++----------------
.../org/apache/sis/measure/MeasurementRange.java | 1 +
.../main/java/org/apache/sis/measure/Range.java | 1 +
.../main/java/org/apache/sis/measure/Scalar.java | 2 +-
.../apache/sis/measure/SexagesimalConverter.java | 2 +-
.../java/org/apache/sis/measure/UnitDimension.java | 2 +-
.../java/org/apache/sis/measure/UnitFormat.java | 5 +++--
.../sis/util/collection/DefaultTreeTable.java | 4 ++--
.../org/apache/sis/util/collection/DerivedMap.java | 6 +++---
.../org/apache/sis/util/collection/DerivedSet.java | 2 +-
.../sis/util/collection/FrequencySortedSet.java | 3 +--
.../org/apache/sis/util/collection/RangeSet.java | 1 +
.../apache/sis/util/collection/TreeNodeList.java | 2 ++
.../sis/util/collection/TreeTableFormat.java | 3 +++
.../resources/ResourceInternationalString.java | 1 +
.../measure/FormattedCharacterIteratorTest.java | 2 +-
.../sis/internal/profile/fra/Constraints.java | 1 +
.../internal/profile/fra/DataIdentification.java | 1 +
.../profile/fra/DirectReferenceSystem.java | 2 +-
.../profile/fra/IndirectReferenceSystem.java | 2 +-
.../sis/internal/profile/fra/LegalConstraints.java | 1 +
.../internal/profile/fra/SecurityConstraints.java | 1 +
.../sis/internal/storage/wkt/StoreFormat.java | 2 +-
.../apache/sis/storage/CanNotProbeException.java | 5 +++--
.../java/org/apache/sis/storage/CoverageQuery.java | 2 +-
.../java/org/apache/sis/storage/FeatureQuery.java | 5 +++++
.../storage/gpx/GroupAsPolylineOperation.java | 1 +
204 files changed, 344 insertions(+), 236 deletions(-)
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridTileCache.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridTileCache.java
index 81359890e3..52775781ff 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridTileCache.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/GridTileCache.java
@@ -29,7 +29,7 @@ import org.apache.sis.internal.coverage.j2d.ImageUtilities;
* @version 1.1
* @since 1.1
*/
-@SuppressWarnings("serial")
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
final class GridTileCache extends LinkedHashMap<GridTile,GridTile> {
/**
* Creates a new cache of tiles.
diff --git a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
index 915e34d9fd..1f44d45726 100644
--- a/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
+++ b/application/sis-javafx/src/main/java/org/apache/sis/gui/dataset/ResourceEvent.java
@@ -57,6 +57,9 @@ public class ResourceEvent extends Event {
/**
* Path to the resource being loaded or closed.
+ *
+ * @todo The default implementation provided by the JDK is not serializable.
+ * We have no workaround at this time.
*/
private final Path path;
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 064932a449..59efc35e42 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
@@ -103,6 +103,7 @@ public class Category implements Serializable {
*
* @see #getName()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final InternationalString name;
/**
@@ -139,6 +140,7 @@ public class Category implements Serializable {
*
* @see #getTransferFunction()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final MathTransform1D toConverse;
/**
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 a5cfd024dc..7477a479e4 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
@@ -49,7 +49,7 @@ import org.apache.sis.util.Utilities;
* Future versions may allow other ways such as mask rasters.</p>
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.2
+ * @version 1.4
* @since 1.2
*/
public class RegionOfInterest implements LenientComparable, Serializable {
@@ -61,6 +61,7 @@ public class RegionOfInterest implements LenientComparable, Serializable {
/**
* The region of interest as a geometry. Coordinates are in the CRS given be {@link #crs}.
*/
+ @SuppressWarnings("serial") // Most Java2D implementations are serializable.
private final Shape geometry;
/**
@@ -68,6 +69,7 @@ public class RegionOfInterest implements LenientComparable, Serializable {
* In current version, it shall be a two-dimensional CRS.
* May be {@code null} if unknown.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final CoordinateReferenceSystem crs;
/**
@@ -134,7 +136,7 @@ public class RegionOfInterest implements LenientComparable, Serializable {
*/
@Override
public boolean equals(final Object other, final ComparisonMode mode) {
- if (other instanceof ComparisonMode) {
+ if (other instanceof RegionOfInterest) {
final RegionOfInterest that = (RegionOfInterest) other;
if (mode != ComparisonMode.STRICT || other.getClass() == getClass()) {
return geometry.equals(that.geometry) && Utilities.deepEquals(crs, that.crs, mode);
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 f2cb9f40db..8f105ffe50 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
@@ -96,6 +96,7 @@ public class SampleDimension implements Serializable {
*
* @see #getName()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GenericName name;
/**
@@ -117,6 +118,7 @@ public class SampleDimension implements Serializable {
*
* @see #getTransferFunction()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final MathTransform1D transferFunction;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleRangeFormat.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleRangeFormat.java
index b41e4ef1e6..06ef7c6f49 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleRangeFormat.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleRangeFormat.java
@@ -38,7 +38,7 @@ import org.apache.sis.util.resources.Vocabulary;
* @version 1.1
* @since 1.0
*/
-@SuppressWarnings({"CloneableImplementsClone", "serial"}) // Not intended to be cloned or serialized.
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to serialized.
final class SampleRangeFormat extends RangeFormat {
/**
* Maximum value for {@link #numFractionDigits}. This is the number
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java
index 14c4d5eaba..411e74b6ae 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/ToNaN.java
@@ -32,7 +32,7 @@ import org.apache.sis.internal.feature.Resources;
* @version 1.1
* @since 1.0
*/
-@SuppressWarnings({"CloneableImplementsClone", "serial"}) // Not intended to be cloned or serialized.
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
final class ToNaN extends HashSet<Integer> implements DoubleToIntFunction {
/**
* The value which should be assigned ordinal 0 if that ordinal value is available.
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 3a2aaf195e..5933ed685d 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
@@ -232,7 +232,7 @@ public class GridGeometry implements LenientComparable, Serializable {
* @see #getGridToCRS(PixelInCell)
* @see PixelInCell#CELL_CENTER
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final MathTransform gridToCRS;
/**
@@ -242,7 +242,7 @@ public class GridGeometry implements LenientComparable, Serializable {
* @serial This field is serialized because it may be a value specified explicitly at construction time,
* in which case it can be more accurate than a computed value.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final MathTransform cornerToCRS;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/package-info.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/package-info.java
index 433124dd5f..65ea533405 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/package-info.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/package-info.java
@@ -23,7 +23,7 @@
* {@link org.apache.sis.coverage.grid}.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.2
+ * @version 1.4
* @since 1.0
*/
package org.apache.sis.coverage;
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 4d8e4d3892..116f1f8e91 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
@@ -63,6 +63,7 @@ public abstract class AbstractAssociation extends Field<Feature> implements Feat
/**
* Information about the association.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final FeatureAssociationRole role;
/**
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 a7e169cb12..545156f1ba 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
@@ -86,6 +86,7 @@ public abstract class AbstractAttribute<V> extends Field<V> implements Attribute
/**
* Information about the attribute (base Java class, domain of values, <i>etc.</i>).
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final AttributeType<V> type;
/**
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 932de85abe..b644531b7f 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
@@ -101,6 +101,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
/**
* Information about the feature (name, characteristics, <i>etc.</i>).
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final FeatureType type;
/**
@@ -844,7 +845,7 @@ public abstract class AbstractFeature implements Feature, Serializable {
* Notifies that the comparison of {@code this} feature is finished.
*/
final void comparisonEnd() {
- if (COMPARING.get().remove(this) != Boolean.TRUE) {
+ if (!Boolean.TRUE.equals(COMPARING.get().remove(this))) {
throw new AssertionError(); // Should never happen.
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
index 9267611d2d..d8e1c54604 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AbstractIdentifiedType.java
@@ -98,6 +98,7 @@ public class AbstractIdentifiedType implements IdentifiedType, Deprecable, Seria
* @see #getName()
* @see #NAME_KEY
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GenericName name;
/**
@@ -106,6 +107,7 @@ public class AbstractIdentifiedType implements IdentifiedType, Deprecable, Seria
* @see #getDefinition()
* @see #DEFINITION_KEY
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString definition;
/**
@@ -115,6 +117,7 @@ public class AbstractIdentifiedType implements IdentifiedType, Deprecable, Seria
* @see #getDesignation()
* @see #DESIGNATION_KEY
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString designation;
/**
@@ -124,6 +127,7 @@ public class AbstractIdentifiedType implements IdentifiedType, Deprecable, Seria
* @see #getDescription()
* @see #DESCRIPTION_KEY
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString description;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AssociationView.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AssociationView.java
index 71373715ae..3b44cc198e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AssociationView.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AssociationView.java
@@ -47,6 +47,7 @@ class AssociationView extends PropertyView<Feature> implements FeatureAssociatio
/**
* The role of this association. Must be one of the properties listed in the {@link #feature}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final FeatureAssociationRole role;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/AttributeView.java b/core/sis-feature/src/main/java/org/apache/sis/feature/AttributeView.java
index b31a7b24f8..fead64f113 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/AttributeView.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/AttributeView.java
@@ -53,7 +53,7 @@ class AttributeView<V> extends PropertyView<V> implements Attribute<V> {
/**
* The type of this attribute. Must be one of the properties listed in the {@link #feature}.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final AttributeType<V> type;
/**
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 14f98fc51b..b7f0bbbbc3 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
@@ -74,6 +74,7 @@ public class DefaultAssociationRole extends FieldType implements FeatureAssociat
*
* @see #getValueType()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private volatile FeatureType valueType;
/**
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 e9623d6cd8..00c813eba5 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
@@ -123,6 +123,7 @@ public class DefaultAttributeType<V> extends FieldType implements AttributeType<
*
* @see #getDefaultValue()
*/
+ @SuppressWarnings("serial") // Not statically typed as Serializable.
private final V defaultValue;
/**
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 8d21a8cbb0..29841e9f5a 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
@@ -156,6 +156,7 @@ public class DefaultFeatureType extends AbstractIdentifiedType implements Featur
*
* @see #getSuperTypes()
*/
+ @SuppressWarnings("serial") // Can be various serializable implementations.
private final Set<FeatureType> superTypes;
/**
@@ -173,6 +174,7 @@ public class DefaultFeatureType extends AbstractIdentifiedType implements Featur
*
* @see #getProperties(boolean)
*/
+ @SuppressWarnings("serial") // Can be various serializable implementations.
private final List<PropertyType> properties;
/**
@@ -198,6 +200,8 @@ public class DefaultFeatureType extends AbstractIdentifiedType implements Featur
*
* The size of this map may be smaller than the {@link #byName} size.
* This map shall not be modified after construction.
+ *
+ * @see #indices()
*/
private transient Map<String, Integer> indices;
@@ -875,6 +879,7 @@ public class DefaultFeatureType extends AbstractIdentifiedType implements Featur
/**
* Returns the map from names to indices in an array of properties.
* This is used for {@link DenseFeature} implementation.
+ * Caller shall not modify the returned map.
*/
@SuppressWarnings("ReturnOfCollectionOrArrayField")
final Map<String,Integer> indices() {
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 e6fd97f7bf..319a81f9d1 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
@@ -55,6 +55,7 @@ final class DenseFeature extends AbstractFeature implements Cloneable {
* {@link DefaultFeatureType#indices} map (potentially shared by many feature instances) and shall not be
* modified.
*/
+ @SuppressWarnings("serial") // Can be various serializable implementations.
private final Map<String, Integer> indices;
/**
@@ -65,6 +66,7 @@ final class DenseFeature extends AbstractFeature implements Cloneable {
* property is requested. The intent is to reduce the amount of allocated objects as much as possible,
* because typical SIS applications may create a very large amount of features.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Object[] properties;
/**
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 5ed1cfdbfa..6018a951d6 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
@@ -96,6 +96,7 @@ final class EnvelopeOperation extends AbstractOperation {
* Note that this is the CRS desired by user of this {@link EnvelopeOperation};
* it may be unrelated to the CRS of stored geometries.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final CoordinateReferenceSystem targetCRS;
/**
@@ -114,6 +115,7 @@ final class EnvelopeOperation extends AbstractOperation {
* implementations of {@link DenseFeature} and {@link SparseFeature} have a "all of nothing" behavior anyway.
* So there is no performance gain to expect from a fine-grained knowledge of which properties declare a CRS.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final CoordinateOperation[] attributeToCRS;
/**
@@ -124,6 +126,7 @@ final class EnvelopeOperation extends AbstractOperation {
/**
* The type of the result returned by the envelope operation.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final AttributeType<Envelope> resultType;
/**
@@ -278,6 +281,7 @@ final class EnvelopeOperation extends AbstractOperation {
/**
* The feature specified to the {@link StringJoinOperation#apply(Feature, ParameterValueGroup)} method.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Feature feature;
/**
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 870cfefbcc..530ddddf6a 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
@@ -39,6 +39,7 @@ final class FeatureOperationException extends IllegalStateException implements L
/**
* A description of the computation error.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString message;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/InvalidFeatureException.java b/core/sis-feature/src/main/java/org/apache/sis/feature/InvalidFeatureException.java
index 9c920ace88..6e14737c1e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/InvalidFeatureException.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/InvalidFeatureException.java
@@ -47,6 +47,7 @@ final class InvalidFeatureException extends InvalidPropertyValueException implem
/**
* A description of the illegal feature.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString message;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
index f6c2115b52..c83f847b61 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/LinkOperation.java
@@ -54,6 +54,7 @@ final class LinkOperation extends AbstractOperation {
/**
* The type of the result.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final PropertyType result;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/NamedFeatureType.java b/core/sis-feature/src/main/java/org/apache/sis/feature/NamedFeatureType.java
index dc2bd3bd4f..6d09745246 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/NamedFeatureType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/NamedFeatureType.java
@@ -49,6 +49,7 @@ final class NamedFeatureType implements FeatureType, Serializable {
/**
* The name of the feature type for which this {@code NamedFeatureType} is a placeholder.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GenericName name;
/**
@@ -57,6 +58,7 @@ final class NamedFeatureType implements FeatureType, Serializable {
* to create it. This information is stored in case the same {@code NamedFeatureType} instance has been used
* in more than one {@link DefaultFeatureType}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
volatile FeatureType resolved;
/**
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 d54694ded0..cca9096f3e 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
@@ -62,7 +62,7 @@ abstract class PropertyView<V> extends Field<V> implements Property, Serializabl
/**
* The feature from which to read and where to write the attribute or association value.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Feature feature;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAssociation.java b/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAssociation.java
index 3dfe0d4fc7..2aaa206fee 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAssociation.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAssociation.java
@@ -53,6 +53,7 @@ final class SingletonAssociation extends AbstractAssociation {
/**
* The associated feature.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Feature value;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAttribute.java b/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAttribute.java
index d5872eed54..ab25bc7501 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAttribute.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/SingletonAttribute.java
@@ -56,6 +56,7 @@ final class SingletonAttribute<V> extends AbstractAttribute<V> implements Clonea
/**
* The attribute value, or {@code null} if none.
*/
+ @SuppressWarnings("serial") // Not statically typed as Serializable.
private V value;
/**
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 4652ce707e..55af5252ed 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
@@ -77,6 +77,7 @@ final class SparseFeature extends AbstractFeature implements Cloneable {
* <p>We use those indices as {@link #properties} keys instead of using directly the property names
* in order to resolve aliases.</p>
*/
+ @SuppressWarnings("serial") // Can be various serializable implementations.
private final Map<String, Integer> indices;
/**
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 9c3565b64f..a618de04a4 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
@@ -107,6 +107,7 @@ final class StringJoinOperation extends AbstractOperation {
* array if the property was an attribute instead of an association. For formatting the feature
* identifier, we need to use the inverse of that converter.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final ObjectConverter<? super String, ?> converter;
/** Creates a new wrapper over the given converter. */
@@ -144,6 +145,7 @@ final class StringJoinOperation extends AbstractOperation {
* the inverse conversion is often a simple call to {@link Object#toString()}, so there
* is a risk that some of the latter converters do not bother to remember their inverse.</p>
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<? super String, ?>[] converters;
/**
@@ -154,6 +156,7 @@ final class StringJoinOperation extends AbstractOperation {
/**
* The type of the result returned by the string concatenation operation.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final AttributeType<String> resultType;
/**
@@ -323,6 +326,7 @@ final class StringJoinOperation extends AbstractOperation {
/**
* The feature specified to the {@link StringJoinOperation#apply(Feature, ParameterValueGroup)} method.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Feature feature;
/**
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 8eff3facc7..4b8062442d 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
@@ -58,7 +58,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
*
* @see #getExpression1()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Expression<? super R, ? extends V1> expression1;
/**
@@ -66,7 +66,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
*
* @see #getExpression2()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Expression<? super R, ? extends V2> expression2;
/**
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 a830518e4e..b936b9d522 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
@@ -66,7 +66,7 @@ abstract class BinaryGeometryFilter<R,G> extends FilterNode<R> implements Spatia
*
* @see BinarySpatialOperator#getOperand1()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Expression<? super R, GeometryWrapper<G>> expression1;
/**
@@ -74,7 +74,7 @@ abstract class BinaryGeometryFilter<R,G> extends FilterNode<R> implements Spatia
*
* @see BinarySpatialOperator#getOperand2()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Expression<? super R, GeometryWrapper<G>> expression2;
/**
@@ -156,6 +156,7 @@ abstract class BinaryGeometryFilter<R,G> extends FilterNode<R> implements Spatia
* @param expression the expression to unwrap.
* @return the unwrapped expression.
*/
+ @SuppressWarnings("unchecked") // We replace <? super ? super R> by <? super R>.
protected static <R,G> Expression<? super R, ?> original(final Expression<R, GeometryWrapper<G>> expression) {
Expression<? super R, ?> unwrapped = unwrap(expression);
if (unwrapped instanceof LeafExpression.Transformed<?, ?>) {
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 b6e6b6459c..43f6f8eb4b 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
@@ -63,7 +63,7 @@ final class ConvertFunction<R,S,V> extends UnaryFunction<R,S>
/**
* The converter to use.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<? super S, ? extends V> converter;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultSortProperty.java b/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultSortProperty.java
index b24f391cda..03c6e46c40 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultSortProperty.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/DefaultSortProperty.java
@@ -49,7 +49,7 @@ final class DefaultSortProperty<R> implements SortProperty<R>, Serializable {
/**
* The property on which to apply sorting.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ValueReference<? super R, ?> property;
/**
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 915aebda28..aea44fe99c 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
@@ -64,7 +64,7 @@ final class DistanceFilter<R,G> extends BinaryGeometryFilter<R,G> implements Dis
/**
* The buffer distance around the geometry of the second expression.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Quantity<Length> distance;
/**
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 5f72c00ca7..1926511b5c 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
@@ -185,7 +185,7 @@ abstract class LeafExpression<R,V> extends Node implements FeatureExpression<R,V
private static final long serialVersionUID = -5120203649333919221L;
/** The original expression. */
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<R,?> original;
/** Creates a new literal holding the given constant value. */
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/LikeFilter.java b/core/sis-feature/src/main/java/org/apache/sis/filter/LikeFilter.java
index 50d8edd090..63ed1bbdf4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/LikeFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/LikeFilter.java
@@ -47,7 +47,7 @@ final class LikeFilter<R> extends FilterNode<R> implements LikeOperator<R>, Opti
/**
* The source of values to compare against the pattern.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Expression<? super R, ?> expression;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/filter/LogicalFilter.java b/core/sis-feature/src/main/java/org/apache/sis/filter/LogicalFilter.java
index 39b45858b1..2916fa227a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/LogicalFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/LogicalFilter.java
@@ -51,7 +51,7 @@ abstract class LogicalFilter<R> extends FilterNode<R> implements LogicalOperator
/**
* The filter on which to apply the logical operator.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Filter<? super R>[] operands;
/**
@@ -219,7 +219,7 @@ abstract class LogicalFilter<R> extends FilterNode<R> implements LogicalOperator
private static final long serialVersionUID = -1296823195138427781L;
/** The filter to negate. */
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Filter<? super R> operand;
/** Creates a new operator. */
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 ad996001fc..20d281e95e 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
@@ -192,6 +192,7 @@ split: if (path != null) {
* put the column name in the SQL {@code WHERE} clause. It makes the difference between
* using or not the database index.
*/
+ @Override
public abstract PropertyValue<V> optimize(Optimization optimization);
@@ -404,7 +405,7 @@ split: if (path != null) {
private final Class<S> source;
/** The conversion from source type to the type to be returned. */
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<? super S, ? extends V> converter;
/** Creates a new expression retrieving values from a property of the given name. */
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 ebea70a8fb..cb51eaa56d 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
@@ -54,7 +54,7 @@ class UnaryFunction<R,V> extends Node {
*
* @see #getExpression()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Expression<? super R, ? extends V> expression;
/**
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 96199e114d..f34c03d513 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
@@ -37,6 +37,7 @@ import org.apache.sis.internal.util.Numerics;
*
* @since 1.1
*/
+@SuppressWarnings("CloneableImplementsClone")
class NodeIterator<E> implements Spliterator<E>, Cloneable {
/**
* Sentinel value meaning that iteration is over.
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 fddacf1312..9a77fda74e 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
@@ -16,7 +16,6 @@
*/
package org.apache.sis.index.tree;
-import java.io.Serializable;
import java.util.Optional;
import java.util.AbstractSet;
import java.util.Collection;
@@ -73,13 +72,18 @@ import org.apache.sis.util.collection.CheckedContainer;
*
* @author Chris Mattmann
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.4
*
* @param <E> the type of elements stored in this tree.
*
* @since 1.1
*/
-public class PointTree<E> extends AbstractSet<E> implements CheckedContainer<E>, Serializable {
+public class PointTree<E> extends AbstractSet<E> implements CheckedContainer<E> {
+ /*
+ * We do not declare this class as Serializable because we would need to serialize
+ * the lambda function `Locator`. While technically possible, this is not recommended.
+ */
+
/**
* Provides the coordinates of any element stored in {@link PointTree}.
*
@@ -97,11 +101,6 @@ public class PointTree<E> extends AbstractSet<E> implements CheckedContainer<E>,
void getPositionOf(E element, double[] dest);
}
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = 488727778652772913L;
-
/**
* The maximum number of dimensions (inclusive) that this class currently supports.
* Current maximum is {@value}. This restriction come from 2⁶ = {@value Long#SIZE}.
diff --git a/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTreeNode.java b/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTreeNode.java
index bd7a60e998..771d2a0111 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTreeNode.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/index/tree/PointTreeNode.java
@@ -17,7 +17,6 @@
package org.apache.sis.index.tree;
import java.util.Arrays;
-import java.io.Serializable;
/**
@@ -44,15 +43,10 @@ import java.io.Serializable;
*
* @author Chris Mattmann
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.4
* @since 1.1
*/
-abstract class PointTreeNode implements Cloneable, Serializable {
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = -5911043832415017844L;
-
+abstract class PointTreeNode implements Cloneable {
/**
* Constructs an initially empty {@link PointTree} node.
*/
@@ -180,11 +174,6 @@ abstract class PointTreeNode implements Cloneable, Serializable {
* the cost of arrays creation should be less significant compared to array length.
*/
static final class Default extends PointTreeNode {
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = 5726750714534959859L;
-
/**
* The nodes or element values in each quadrant/octant of this node.
* Each array element can be null or an instance of one of the classes
diff --git a/core/sis-feature/src/main/java/org/apache/sis/index/tree/QuadTreeNode.java b/core/sis-feature/src/main/java/org/apache/sis/index/tree/QuadTreeNode.java
index 6b37b01dbf..cb9bc30ef0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/index/tree/QuadTreeNode.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/index/tree/QuadTreeNode.java
@@ -25,15 +25,10 @@ package org.apache.sis.index.tree;
*
* @author Chris Mattmann
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.4
* @since 0.1
*/
final class QuadTreeNode extends PointTreeNode {
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = 3860185925702742700L;
-
/**
* The 4 quadrants of a {@link QuadTreeNode}: North-West (NW), North-East (NE),
* South-West (SW) and South-East (SE). Numerical values follow this bit pattern:
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 6e5e148385..d15501c53e 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
@@ -599,7 +599,6 @@ public final class Resources extends IndexedResourceBundle {
private static final class International extends ResourceInternationalString {
private static final long serialVersionUID = -667435900917846518L;
- International(short key) {super(key);}
International(short key, Object args) {super(key, args);}
@Override protected KeyConstants getKeyConstants() {return Keys.INSTANCE;}
@Override protected IndexedResourceBundle getBundle(final Locale locale) {
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 62bc8f1dcc..4221b7572d 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
@@ -77,13 +77,13 @@ public final class SpatialOperationContext implements Serializable {
/**
* Approximate geographic area of geometries, or {@code null} if unspecified.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GeographicBoundingBox areaOfInterest;
/**
* The target CRS in which to transform geometries, or {@code null} for inferring automatically.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final CoordinateReferenceSystem computationCRS;
/**
@@ -92,7 +92,7 @@ public final class SpatialOperationContext implements Serializable {
* Note that it does not mean that the units of measurement must be meters; only that they must
* be compatible with meters.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Unit<?> systemUnit;
/**
@@ -104,7 +104,7 @@ public final class SpatialOperationContext implements Serializable {
/**
* The common CRS found by {@link #transform(GeometryWrapper[])}. May be null.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
CoordinateReferenceSystem commonCRS;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/ShapeWrapper.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/ShapeWrapper.java
index 232c6b5a6b..e08a665eef 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/ShapeWrapper.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/j2d/ShapeWrapper.java
@@ -43,6 +43,7 @@ abstract class ShapeWrapper extends AbstractShape implements Serializable {
/**
* The source of coordinate values.
*/
+ @SuppressWarnings("serial") // Most Java2D implementations are serializable.
protected final Shape source;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PackedCoordinateSequence.java b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PackedCoordinateSequence.java
index 64d8660bf9..fd912d09f3 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PackedCoordinateSequence.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/feature/jts/PackedCoordinateSequence.java
@@ -262,6 +262,7 @@ abstract class PackedCoordinateSequence implements CoordinateSequence, Serializa
/**
* Coordinate sequence storing values in a packed {@code double[]} array.
*/
+ @SuppressWarnings("CloneableImplementsClone")
static final class Double extends PackedCoordinateSequence {
/** For cross-version compatibility. */
private static final long serialVersionUID = 1940132733783453171L;
@@ -349,6 +350,7 @@ abstract class PackedCoordinateSequence implements CoordinateSequence, Serializa
/**
* Coordinate sequence storing values in a packed {@code float[]} array.
*/
+ @SuppressWarnings("CloneableImplementsClone")
static final class Float extends PackedCoordinateSequence {
/** For cross-version compatibility. */
private static final long serialVersionUID = 2625498691139718968L;
@@ -448,6 +450,7 @@ abstract class PackedCoordinateSequence implements CoordinateSequence, Serializa
/**
* Returns a string representation of this coordinate sequence.
*/
+ @Override
public final String toString() {
return CoordinateSequences.toString(this);
}
@@ -477,7 +480,9 @@ abstract class PackedCoordinateSequence implements CoordinateSequence, Serializa
*
* @deprecated Inherits the deprecation status from JTS.
*/
+ @Override
@Deprecated
+ @SuppressWarnings("CloneDoesntCallSuperClone")
public final Object clone() {
return copy();
}
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 a39c920b2f..fc204d038a 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
@@ -73,7 +73,7 @@ final class GeometryConverter<R,G> extends Node implements Optimization.OnExpres
*
* @see #getParameters()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, ?> expression;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/SortByComparator.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/SortByComparator.java
index 2d4b2787a9..42425aa7a1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/SortByComparator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/SortByComparator.java
@@ -53,6 +53,7 @@ public final class SortByComparator<R> implements SortBy<R>, Serializable {
*
* @see #getSortProperties()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final SortProperty<R>[] properties;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/FunctionWithSRID.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/FunctionWithSRID.java
index 6b4931546c..8a7ed8afe3 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/FunctionWithSRID.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/FunctionWithSRID.java
@@ -59,6 +59,7 @@ abstract class FunctionWithSRID<R> extends SpatialFunction<R> {
/**
* The expression giving the spatial reference system identifier, or {@code null} if none.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, ?> srid;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/GeometryConstructor.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/GeometryConstructor.java
index 620280cc3b..6f781e1cf6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/GeometryConstructor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/GeometryConstructor.java
@@ -51,6 +51,7 @@ class GeometryConstructor<R,G> extends FunctionWithSRID<R> {
/**
* The expression giving the geometry.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, ?> geometry;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/OneGeometry.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/OneGeometry.java
index bb6fb1ac7c..50c299ca57 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/OneGeometry.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/OneGeometry.java
@@ -47,7 +47,7 @@ class OneGeometry<R,G> extends SpatialFunction<R> {
/**
* The expression giving the geometry.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, GeometryWrapper<G>> geometry;
/**
@@ -107,6 +107,7 @@ class OneGeometry<R,G> extends SpatialFunction<R> {
/**
* The first argument after the geometry.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, ?> argument;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
index be91be1b5f..5be5872f8b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
@@ -61,6 +61,7 @@ final class ST_Point<R,G> extends FunctionWithSRID<R> {
/**
* The expression giving the coordinate values. May include the SRID as last parameter.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Expression<? super R, ?>[] parameters;
/**
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 4e93fa066e..9861c9baf5 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
@@ -70,6 +70,7 @@ final class ST_Transform<R,G> extends FunctionWithSRID<R> {
/**
* The expression giving the geometry.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Expression<? super R, GeometryWrapper<G>> geometry;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/TwoGeometries.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/TwoGeometries.java
index d80cc93ed3..7b81f2c337 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/TwoGeometries.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/TwoGeometries.java
@@ -53,6 +53,7 @@ class TwoGeometries<R,G> extends SpatialFunction<R> {
/**
* The expression giving the geometries.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, GeometryWrapper<G>> geometry1, geometry2;
/**
@@ -151,6 +152,7 @@ class TwoGeometries<R,G> extends SpatialFunction<R> {
/**
* The first argument after the geometries.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Expression<? super R, ?> argument;
/**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Fragments.java b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Fragments.java
index 0e684512b1..f44a5b4254 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Fragments.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Fragments.java
@@ -44,7 +44,7 @@ import org.apache.sis.internal.util.Numerics;
*
* @since 1.1
*/
-@SuppressWarnings({"CloneableImplementsClone", "serial"}) // Not intended to be cloned or serialized.
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
final class Fragments extends ArrayList<double[]> {
/**
* The first points and last point in this list of polylines. By convention the coordinate having fraction
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/IdentifierMapAdapter.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/IdentifierMapAdapter.java
index cc92d21399..65533ce214 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/IdentifierMapAdapter.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/jaxb/IdentifierMapAdapter.java
@@ -103,7 +103,7 @@ public class IdentifierMapAdapter extends AbstractMap<Citation,String> implement
*
* @see #getIdentifiers(Class)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
public final Collection<Identifier> identifiers;
/**
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 d285d5b499..4620c3c516 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
@@ -59,7 +59,7 @@ public final class SpecializedIdentifier<T> implements Identifier, Cloneable, Se
*
* @see #getAuthority()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final IdentifierSpace<T> authority;
/**
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 f3fdafdcaf..9dfde583cb 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
@@ -183,7 +183,6 @@ public final class Resources extends IndexedResourceBundle {
private static final long serialVersionUID = 7465539282825054584L;
International(short key) {super(key);}
- International(short key, Object args) {super(key, args);}
@Override protected KeyConstants getKeyConstants() {return Resources.Keys.INSTANCE;}
@Override protected IndexedResourceBundle getBundle(final Locale locale) {
return forLocale(locale);
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleAttributeType.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleAttributeType.java
index 7b24606142..8f85f31945 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleAttributeType.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleAttributeType.java
@@ -46,6 +46,7 @@ public final class SimpleAttributeType<V> implements AttributeType<V>, Type, Ser
/**
* The name for this attribute type.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final TypeName name;
/**
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
index b8d058ab0d..7b3b9d21f2 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
@@ -51,6 +51,7 @@ public class SimpleIdentifiedObject implements IdentifiedObject, LenientComparab
/**
* The primary name by which this object is identified.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected Identifier name;
/**
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifier.java b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifier.java
index abc8684333..8206513ff2 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifier.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifier.java
@@ -49,6 +49,7 @@ public class SimpleIdentifier implements Identifier, Deprecable, Serializable {
* @see #getCodeSpace()
* @see #getVersion()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final Citation authority;
/**
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataFormat.java b/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataFormat.java
index c0f07e9877..34cd53944d 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataFormat.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/metadata/MetadataFormat.java
@@ -31,7 +31,7 @@ import org.apache.sis.io.TableAppender;
* @version 1.0
* @since 1.0
*/
-@SuppressWarnings({"CloneableImplementsClone", "serial"}) // Not intended to be cloned or serialized.
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
final class MetadataFormat extends TreeTableFormat {
/**
* The shared instance to use for the {@link TreeTableView#toString()} method implementation.
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 234fb2d125..24c276ce3f 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
@@ -174,7 +174,7 @@ public class MetadataStandard implements Serializable {
*
* @see #getCitation()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final Citation citation;
/**
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 fd8c2eb0ea..bcac4318db 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
@@ -73,7 +73,7 @@ public class ISOMetadata extends ModifiableMetadata implements IdentifiedObject,
* All identifiers associated with this metadata, or {@code null} if none.
* This field is initialized to a non-null value when first needed.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected Collection<Identifier> identifiers;
/**
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 1ca956cba9..4a8bc3d062 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 {
/**
* The type definition of this record. Cannot be {@code null}.
*/
- @SuppressWarnings("serial")
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final RecordDefinition definition;
/**
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 c7b2f7877c..3351e560b5 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
@@ -107,7 +107,7 @@ public class DefaultRecordType extends RecordDefinition implements RecordType, S
*
* @see #getTypeName()
*/
- @SuppressWarnings("serial")
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final TypeName typeName;
/**
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 2d89d18350..7a64737f32 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
@@ -147,7 +147,7 @@ public class DefaultTypeName extends DefaultLocalName implements TypeName {
* The value returned by {@link #toJavaType()}, or {@code null} if none.
* This is usually a {@link Class}, which is serializable.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial")
private final Type javaType;
/**
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 9b2ce0d031..e5893496b4 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
@@ -69,7 +69,7 @@ abstract class RecordDefinition { // Inten
/**
* The wrapped record type.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final RecordType recordType; // This is the only serialized field in this file.
/**
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java
index e714c40340..aae61ea6bf 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/Types.java
@@ -438,6 +438,7 @@ public final class Types extends Static {
/**
* The code list for which to create a title.
*/
+ @SuppressWarnings("serial") // Enum and CodeList implementations are serializable.
final ControlledVocabulary code;
/**
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 828c66614e..9ac9b410da 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
@@ -144,8 +144,9 @@ public final class NilReason implements Serializable {
/**
* Either the XML value as a {@code String} (including the explanation if the prefix
- * is "{@code other}", or a {@link URI}.
+ * is "{@code other}", or a {@link URI}. Those types are serializable.
*/
+ @SuppressWarnings("serial")
private final Object reason;
/**
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 7cc56daa7d..abfac9a314 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
@@ -126,6 +126,7 @@ public class XLink implements Serializable {
* @see #getTitle()
* @category semantic
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private InternationalString title;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/ArrayEnvelope.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/ArrayEnvelope.java
index 44c8a527d7..2c10ad3686 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/ArrayEnvelope.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/ArrayEnvelope.java
@@ -75,6 +75,7 @@ class ArrayEnvelope extends AbstractEnvelope implements Serializable {
/**
* The coordinate reference system, or {@code null}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
CoordinateReferenceSystem crs;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
index 8238da32db..6412aa4037 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/CoordinateFormat.java
@@ -158,6 +158,7 @@ public class CoordinateFormat extends CompoundFormat<DirectPosition> {
* @see #groundDimensions
* @see #setGroundPrecision(Quantity)
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Quantity<?> groundPrecision;
/**
@@ -171,6 +172,7 @@ public class CoordinateFormat extends CompoundFormat<DirectPosition> {
* @see #accuracyThreshold
* @see #setGroundAccuracy(Quantity)
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Quantity<?> groundAccuracy;
/**
@@ -246,6 +248,7 @@ public class CoordinateFormat extends CompoundFormat<DirectPosition> {
*
* @see #setDefaultCRS(CoordinateReferenceSystem)
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateReferenceSystem defaultCRS;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition1D.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition1D.java
index 4bbc99474e..90364785d2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition1D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition1D.java
@@ -52,6 +52,7 @@ public class DirectPosition1D extends AbstractDirectPosition implements Serializ
/**
* The coordinate reference system for this position;
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateReferenceSystem crs;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition2D.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition2D.java
index 6a147900eb..a6eef5174d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition2D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/DirectPosition2D.java
@@ -77,6 +77,7 @@ public class DirectPosition2D extends Point2D.Double implements DirectPosition,
/**
* The coordinate reference system for this position;
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateReferenceSystem crs;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelope2D.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelope2D.java
index ca5f61ef7e..35ac3589f5 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelope2D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/Envelope2D.java
@@ -124,6 +124,7 @@ public class Envelope2D extends Rectangle2D.Double implements Envelope, Emptiabl
/**
* The coordinate reference system, or {@code null}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateReferenceSystem crs;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralDirectPosition.java b/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralDirectPosition.java
index 1ce7526640..bfefda5417 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralDirectPosition.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/geometry/GeneralDirectPosition.java
@@ -79,6 +79,7 @@ public class GeneralDirectPosition extends AbstractDirectPosition implements Ser
/**
* The coordinate reference system for this position, or {@code null}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateReferenceSystem crs;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/EPSGParameterDomain.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/EPSGParameterDomain.java
index 98f8989dfb..d0988d76f6 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/EPSGParameterDomain.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/EPSGParameterDomain.java
@@ -40,6 +40,7 @@ public final class EPSGParameterDomain extends NumberRange<Double> {
/**
* The units of measurement.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
public final Set<Unit<?>> units;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/RTreeNode.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/RTreeNode.java
index 23c874e2ad..39864790e7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/RTreeNode.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/RTreeNode.java
@@ -51,6 +51,7 @@ import org.apache.sis.util.collection.DefaultTreeTable;
* @version 1.1
* @since 1.1
*/
+@SuppressWarnings("CloneableImplementsClone")
public class RTreeNode extends GeneralEnvelope {
/**
* For cross-version compatibility.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java
index 8902b5961d..c13c82ad0a 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/AffineTransform2D.java
@@ -112,7 +112,7 @@ public class AffineTransform2D extends ImmutableAffineTransform
* Work around for RFE #4093999 in Sun's bug database
* ("Relax constraint on placement of this()/super() call in constructors").
*/
- @Workaround(library="JDK", version="1.7")
+ @Workaround(library="JDK", version="1.7", fixed="20")
private AffineTransform2D(final ExtendedPrecisionMatrix m, final double[] elements) {
super(pz(elements[0]), pz(elements[3]),
pz(elements[1]), pz(elements[4]),
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/IntervalRectangle.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/IntervalRectangle.java
index a09a745708..07a336cf40 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/IntervalRectangle.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/IntervalRectangle.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.referencing.j2d;
+import java.io.Serializable;
import java.awt.geom.Rectangle2D;
import org.opengis.geometry.Envelope;
import org.opengis.geometry.DirectPosition;
@@ -59,11 +60,14 @@ import org.apache.sis.internal.util.Strings;
* recommended approach, but for Apache SIS private classes this is a way to reduce pressure on garbage collector.</div>
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.4
* @since 0.8
*/
@SuppressWarnings("CloneableImplementsClone")
-public class IntervalRectangle extends Rectangle2D {
+public class IntervalRectangle extends Rectangle2D implements Serializable {
+ /** For cross-version compatibility. */
+ private static final long serialVersionUID = -5921513912411186629L;
+
/** Minimal <var>x</var> coordinate value. */ public double xmin;
/** Minimal <var>y</var> coordinate value. */ public double ymin;
/** Maximal <var>x</var> coordinate value. */ public double xmax;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/ParameterizedAffine.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/ParameterizedAffine.java
index 825ad5338f..93c5c8c65b 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/ParameterizedAffine.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/ParameterizedAffine.java
@@ -46,6 +46,7 @@ import org.apache.sis.internal.system.Semaphores;
* @version 0.6
* @since 0.6
*/
+@SuppressWarnings("CloneableImplementsClone")
public final class ParameterizedAffine extends AffineTransform2D {
/**
* For cross-version compatibility.
@@ -55,7 +56,7 @@ public final class ParameterizedAffine extends AffineTransform2D {
/**
* The (presumed immutable) parameters used for creating this transform.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterValueGroup parameters;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/package-info.java
index af99c0e43d..2795ae536c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/j2d/package-info.java
@@ -26,7 +26,7 @@
* may change in incompatible ways in any future version without notice.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.3
+ * @version 1.4
*
* @see org.apache.sis.internal.feature.j2d
*
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
index 100b8b5361..70510c524d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridFile.java
@@ -105,12 +105,15 @@ abstract class DatumShiftGridFile<C extends Quantity<C>, T extends Quantity<T>>
/**
* The parameter descriptor of the provider that created this grid.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterDescriptorGroup descriptor;
/**
* The files from which the grid has been loaded. This is not used directly by this class
* (except for {@link #equals(Object)} and {@link #hashCode()}), but can be used by math
* transform for setting the parameter values. Shall never be null and never empty.
+ *
+ * @todo We have a serialization problem here. Possible workaround may be to replace by URI.
*/
private final Path[] files;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridGroup.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridGroup.java
index f153c6cbcb..7d98c5b849 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridGroup.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/DatumShiftGridGroup.java
@@ -57,7 +57,7 @@ import org.apache.sis.util.collection.Containers;
* </ol>
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.4
* @since 1.1
*/
final class DatumShiftGridGroup<C extends Quantity<C>, T extends Quantity<T>> extends DatumShiftGridFile<C,T> {
@@ -73,6 +73,9 @@ final class DatumShiftGridGroup<C extends Quantity<C>, T extends Quantity<T>> ex
*/
@SuppressWarnings("CloneableImplementsClone")
private static final class Region extends IntervalRectangle {
+ /** For cross-version compatibility. */
+ private static final long serialVersionUID = -2925837396412170681L;
+
/** Subsampling compared to the grid having finest resolution. */
private final double sx, sy;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/package-info.java
index a7758f6ce5..93ec656af1 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/package-info.java
@@ -22,7 +22,7 @@
*
* @author Martin Desruisseaux (Geomatys)
* @author Matthieu Bastianelli (Geomatys)
- * @version 1.3
+ * @version 1.4
*
* @see org.apache.sis.referencing.operation.transform.MathTransformProvider
*
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
index c16eb018db..7fff322f32 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/StoredTree.java
@@ -86,6 +86,7 @@ final class StoredTree implements Serializable {
* (e.g. "north"). A null value is not equivalent to an empty list. For example, the
* list is null when parsing {@code "FOO"} but is empty when parsing {@code "FOO[]"}.
*/
+ @SuppressWarnings("serial") // Not statically typed as Serializable.
private final Object[] children;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTFormat.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
index fd499dc990..4f1173bfeb 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTFormat.java
@@ -168,7 +168,7 @@ public class WKTFormat extends CompoundFormat<Object> {
* The preferred authority for objects or parameter names. A {@code null} value
* means that the authority shall be inferred from the {@linkplain #convention}.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Citation authority;
/**
@@ -226,8 +226,7 @@ public class WKTFormat extends CompoundFormat<Object> {
*
* @see #fragments(boolean)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
- private Map<String,StoredTree> fragments;
+ private TreeMap<String,StoredTree> fragments;
/**
* {@code true} if the {@link #fragments} map is shared by two or more {@code WKTFormat} instances.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Warnings.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Warnings.java
index 2e1342733c..0f7528f1c0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Warnings.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/Warnings.java
@@ -69,7 +69,7 @@ import org.apache.sis.util.resources.Vocabulary;
* </div>
*
* @author Martin Desruisseaux (Geomatys)
- * @version 0.6
+ * @version 1.4
*
* @see WKTFormat#getWarnings()
*
@@ -104,9 +104,7 @@ public final class Warnings implements Localized, Serializable {
/**
* Warning messages or exceptions emitted during parsing or formatting.
- * Initially {@code null} and created when first needed.
- *
- * <p>Objects in this list must be a sequence of the following tuple:</p>
+ * Objects in this list must be a sequence of the following tuple:
*
* <ul>
* <li>An optional message as an {@link InternationalString}.</li>
@@ -117,18 +115,16 @@ public final class Warnings implements Localized, Serializable {
*
* @see #add(InternationalString, Exception, String[])
*/
- private List<Object> messages;
+ private final ArrayList<Object> messages;
/**
* The keywords of elements in which exception occurred.
- * Initially {@code null} and created when first needed.
- *
- * <p>For each {@code String[]} value, the first array element shall be the keyword of the WKT element
+ * For each {@code String[]} value, the first array element shall be the keyword of the WKT element
* in which the exception occurred. The second array element shall be the parent of above-cited first
* element. Other array elements can optionally be present for declaring the parents of the parent,
- * but they will be ignored by this {@code Warnings} implementation.</p>
+ * but they will be ignored by this {@code Warnings} implementation.
*/
- private Map<Exception, String[]> exceptionSources;
+ private final LinkedHashMap<Exception, String[]> exceptionSources;
/**
* Keyword of unknown elements. This is initially a direct reference to the {@link AbstractParser#ignoredElements}
@@ -137,6 +133,7 @@ public final class Warnings implements Localized, Serializable {
*
* @see AbstractParser#ignoredElements
*/
+ @SuppressWarnings("serial") // Various serializable implementations.
private Map<String, List<String>> ignoredElements;
/**
@@ -155,6 +152,8 @@ public final class Warnings implements Localized, Serializable {
this.errorLocale = locale;
this.isParsing = isParsing;
this.ignoredElements = ignoredElements;
+ exceptionSources = new LinkedHashMap<>(4);
+ messages = new ArrayList<>();
}
/**
@@ -184,15 +183,9 @@ public final class Warnings implements Localized, Serializable {
*/
final void add(final InternationalString message, final Exception cause, final String[] source) {
assert (message != null) || (cause != null);
- if (messages == null) {
- messages = new ArrayList<>(4); // We expect few items.
- }
messages.add(message);
messages.add(cause);
if (cause != null) {
- if (exceptionSources == null) {
- exceptionSources = new LinkedHashMap<>(4); // We expect few items.
- }
exceptionSources.put(cause, source);
}
}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
index b288d04368..934feec6a9 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/package-info.java
@@ -83,7 +83,7 @@
* @author Martin Desruisseaux (IRD, Geomatys)
* @author Rémi Eve (IRD)
* @author Rueben Schulz (UBC)
- * @version 1.3
+ * @version 1.4
*
* @see <a href="http://docs.opengeospatial.org/is/12-063r5/12-063r5.html">WKT 2 specification</a>
* @see <a href="http://www.geoapi.org/3.0/javadoc/org/opengis/referencing/doc-files/WKT.html">Legacy WKT 1</a>
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
index d1b3071673..18ec28ddd6 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterDescriptorGroup.java
@@ -107,7 +107,7 @@ public class DefaultParameterDescriptorGroup extends AbstractParameterDescriptor
*
* @see #descriptors()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private List<GeneralParameterDescriptor> descriptors;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java
index 6240fb10ec..f6efa95e34 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/DefaultParameterValue.java
@@ -148,7 +148,7 @@ public class DefaultParameterValue<T> extends FormattableObject implements Param
*
* @see #getDescriptor()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private ParameterDescriptor<T> descriptor;
/**
@@ -168,7 +168,7 @@ public class DefaultParameterValue<T> extends FormattableObject implements Param
*
* @since 0.7
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected Unit<?> unit;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/FilteredParameters.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/FilteredParameters.java
index ef1d17dec3..d310cc5909 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/FilteredParameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/FilteredParameters.java
@@ -35,6 +35,7 @@ import org.apache.sis.util.ComparisonMode;
* @version 1.3
* @since 1.3
*/
+@SuppressWarnings("CloneableImplementsClone")
final class FilteredParameters extends UnmodifiableParameterValueGroup {
/**
* For cross-version compatibility.
@@ -44,7 +45,7 @@ final class FilteredParameters extends UnmodifiableParameterValueGroup {
/**
* The filtered parameter values.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GeneralParameterValue[] filtered;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/MapProjectionParameters.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/MapProjectionParameters.java
index 1aeabe1985..c47cefde99 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/MapProjectionParameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/MapProjectionParameters.java
@@ -172,6 +172,7 @@ final class MapProjectionParameters extends DefaultParameterValueGroup {
/**
* The parameters for the semi-major and semi-minor axis length.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterValue<?> semiMajor, semiMinor;
/**
@@ -264,6 +265,7 @@ final class MapProjectionParameters extends DefaultParameterValueGroup {
/**
* The parameters for the semi-major and semi-minor axis length.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterValue<?> semiMajor, semiMinor;
/**
@@ -441,6 +443,7 @@ final class MapProjectionParameters extends DefaultParameterValueGroup {
/**
* The parameters for the standard parallels.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterValue<?> standardParallel1, standardParallel2;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
index f0b84a0d72..e9ea1f8f21 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterFormat.java
@@ -244,7 +244,7 @@ public class ParameterFormat extends TabularFormat<Object> {
*
* @see #getPreferredCodespaces()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Various serializable implementations.
private Set<String> preferredCodespaces;
/**
@@ -333,7 +333,7 @@ public class ParameterFormat extends TabularFormat<Object> {
*/
public String[] getPreferredCodespaces() {
final Set<String> p = preferredCodespaces;
- return (p != null) ? p.toArray(new String[p.size()]) : null;
+ return (p != null) ? p.toArray(String[]::new) : null;
}
/**
@@ -350,7 +350,7 @@ public class ParameterFormat extends TabularFormat<Object> {
if (codespaces != null) {
copy = CollectionsExt.immutableSet(true, codespaces);
}
- this.preferredCodespaces = copy;
+ preferredCodespaces = copy;
}
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterValueList.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterValueList.java
index faf9c7fa9d..de4c7735b5 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterValueList.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/ParameterValueList.java
@@ -65,14 +65,14 @@ final class ParameterValueList extends AbstractList<GeneralParameterValue> imple
* <p>This descriptor shall not be used in {@link #equals(Object)} and {@link #hashCode()}
* implementations in order to stay consistent with the {@link List} contract.</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final ParameterDescriptorGroup descriptor;
/**
* The parameter values in the group. The length of this array is the list capacity.
* This array will growth as needed.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private GeneralParameterValue[] values;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
index c68b6d02c6..460142560c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Parameters.java
@@ -198,7 +198,7 @@ public abstract class Parameters implements ParameterValueGroup, Cloneable {
private static final class Wrapper extends Parameters implements Serializable {
private static final long serialVersionUID = -5491790565456920471L;
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterValueGroup delegate;
Wrapper(final ParameterValueGroup delegate) {this.delegate = delegate;}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorParameters.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorParameters.java
index 0deb6b7acb..95b48ae4d2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorParameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorParameters.java
@@ -277,7 +277,7 @@ public class TensorParameters<E> implements Serializable {
*
* <p>The length of this array determine the tensor {@linkplain #rank() rank}.</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterDescriptor<Integer>[] dimensions;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorValues.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorValues.java
index 80729182a3..233d0c32d7 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorValues.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/TensorValues.java
@@ -80,7 +80,7 @@ final class TensorValues<E> extends AbstractParameterDescriptor
/**
* The parameter for the number of row, columns and other dimensions in the tensor.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterValue<Integer>[] dimensions;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/UninitializedParameter.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/UninitializedParameter.java
index bcee320e02..feeebc7e83 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/UninitializedParameter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/UninitializedParameter.java
@@ -42,7 +42,7 @@ final class UninitializedParameter implements GeneralParameterValue, Serializabl
/**
* The descriptor of the parameter to initialize.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GeneralParameterDescriptor descriptor;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/parameter/UnmodifiableParameterValueGroup.java b/core/sis-referencing/src/main/java/org/apache/sis/parameter/UnmodifiableParameterValueGroup.java
index 3c08afb126..72fdab3524 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/UnmodifiableParameterValueGroup.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/UnmodifiableParameterValueGroup.java
@@ -58,7 +58,7 @@ class UnmodifiableParameterValueGroup extends Parameters implements LenientCompa
*
* @see #getDescriptor()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterDescriptorGroup descriptor;
/**
@@ -66,7 +66,7 @@ class UnmodifiableParameterValueGroup extends Parameters implements LenientCompa
*
* @see #values()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final List<GeneralParameterValue> values;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
index d46a30b423..1f9d776561 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
@@ -177,7 +177,7 @@ public class AbstractIdentifiedObject extends FormattableObject implements Ident
* @see #getName()
* @see #getNames()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Identifier name;
/**
@@ -188,7 +188,7 @@ public class AbstractIdentifiedObject extends FormattableObject implements Ident
* <p><b>Consider this field as final!</b>
* This field is modified only at unmarshalling time by {@link Names#add(Identifier)}.</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Collection<GenericName> alias;
/**
@@ -201,7 +201,7 @@ public class AbstractIdentifiedObject extends FormattableObject implements Ident
* @see #getIdentifiers()
* @see #getIdentifier()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Set<Identifier> identifiers;
/**
@@ -212,7 +212,7 @@ public class AbstractIdentifiedObject extends FormattableObject implements Ident
*
* @see #getRemarks()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private InternationalString remarks;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractReferenceSystem.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractReferenceSystem.java
index 57297d8a17..20572bc3d2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractReferenceSystem.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractReferenceSystem.java
@@ -81,7 +81,7 @@ public class AbstractReferenceSystem extends AbstractIdentifiedObject implements
*
* @see #getDomainOfValidity()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Extent domainOfValidity;
/**
@@ -93,7 +93,7 @@ public class AbstractReferenceSystem extends AbstractIdentifiedObject implements
*
* @see #getScope()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private InternationalString scope;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java
index 987691dc5f..1038861c67 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/ImmutableIdentifier.java
@@ -121,7 +121,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
*
* @see #getAuthority()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Citation authority;
/**
@@ -151,7 +151,7 @@ public class ImmutableIdentifier extends FormattableObject implements Identifier
/**
* Natural language description of the meaning of the code value.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString description;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
index 1cc90f6521..1451bb7a71 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Properties.java
@@ -92,6 +92,7 @@ final class Properties extends AbstractMap<String,Object> implements Serializabl
/**
* The object where all properties come from.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final IdentifiedObject object;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
index 19387b6fb8..aec6873097 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractCRS.java
@@ -117,7 +117,7 @@ public class AbstractCRS extends AbstractReferenceSystem implements CoordinateRe
*
* @see #getCoordinateSystem()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateSystem coordinateSystem;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractDerivedCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractDerivedCRS.java
index da7d39d4ec..c25fb52c43 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractDerivedCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/AbstractDerivedCRS.java
@@ -80,7 +80,7 @@ abstract class AbstractDerivedCRS<C extends Conversion> extends AbstractCRS impl
*
* @see #getConversionFromBase()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private C conversionFromBase;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
index e09d69358f..e1f2c36228 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultCompoundCRS.java
@@ -131,6 +131,7 @@ public class DefaultCompoundCRS extends AbstractCRS implements CompoundCRS {
* <p><b>Consider this field as final!</b>
* This field is modified only at construction and unmarshalling time by {@link #setComponents(List)}</p>
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private List<? extends CoordinateReferenceSystem> components;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
index 36b4389d4c..ff0d0f48e1 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultEngineeringCRS.java
@@ -94,7 +94,7 @@ public class DefaultEngineeringCRS extends AbstractCRS implements EngineeringCRS
*
* @see #getDatum()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private EngineeringDatum datum;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java
index 64f2651764..9baa92bf78 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultGeodeticCRS.java
@@ -84,6 +84,7 @@ class DefaultGeodeticCRS extends AbstractCRS implements GeodeticCRS { // If made
*
* @see #getDatum()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private GeodeticDatum datum;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
index 4977e635da..b0029e4d8f 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultImageCRS.java
@@ -79,6 +79,7 @@ public class DefaultImageCRS extends AbstractCRS implements ImageCRS {
*
* @see #getDatum()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private ImageDatum datum;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
index 128cee1c6c..8da528526d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultParametricCRS.java
@@ -79,6 +79,7 @@ public class DefaultParametricCRS extends AbstractCRS implements ParametricCRS {
*
* @see #getDatum()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private ParametricDatum datum;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
index a2698c3044..99b7b49ad0 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultTemporalCRS.java
@@ -93,6 +93,7 @@ public class DefaultTemporalCRS extends AbstractCRS implements TemporalCRS {
*
* @see #getDatum()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private TemporalDatum datum;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
index 20aeac5f0c..eaca04829f 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/crs/DefaultVerticalCRS.java
@@ -77,6 +77,7 @@ public class DefaultVerticalCRS extends AbstractCRS implements VerticalCRS {
*
* @see #getDatum()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private VerticalDatum datum;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
index 19960cdb98..6e439d5f3a 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/AbstractCS.java
@@ -116,7 +116,7 @@ public class AbstractCS extends AbstractIdentifiedObject implements CoordinateSy
*
* @see #getAxis(int)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateSystemAxis[] axes;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
index 7cf5b154d3..05bdadea81 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCompoundCS.java
@@ -62,8 +62,9 @@ public class DefaultCompoundCS extends AbstractCS {
private static final long serialVersionUID = -5726410275278843373L;
/**
- * The coordinate systems.
+ * The coordinate systems in an unmodifiable list.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final List<CoordinateSystem> components;
/**
@@ -171,7 +172,7 @@ public class DefaultCompoundCS extends AbstractCS {
*/
@SuppressWarnings("ReturnOfCollectionOrArrayField")
public List<CoordinateSystem> getComponents() {
- return components; // Unmodifiable.
+ return components; // Unmodifiable.
}
/*
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
index 47c55016c9..319baafe72 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/cs/DefaultCoordinateSystemAxis.java
@@ -206,6 +206,7 @@ public class DefaultCoordinateSystemAxis extends AbstractIdentifiedObject implem
*
* @see #getUnit()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Unit<?> unit;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
index 4fb4ac6713..fd6b351d48 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/AbstractDatum.java
@@ -101,6 +101,7 @@ public class AbstractDatum extends AbstractIdentifiedObject implements Datum {
*
* @see #getAnchorPoint()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private InternationalString anchorDefinition;
/**
@@ -121,6 +122,7 @@ public class AbstractDatum extends AbstractIdentifiedObject implements Datum {
*
* @see #getDomainOfValidity()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Extent domainOfValidity;
/**
@@ -131,6 +133,7 @@ public class AbstractDatum extends AbstractIdentifiedObject implements Datum {
*
* @see #getScope()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private InternationalString scope;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
index c009e25373..91ff7ce939 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/BursaWolfParameters.java
@@ -196,6 +196,7 @@ public class BursaWolfParameters extends FormattableObject implements Cloneable,
*
* @see #getTargetDatum()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final GeodeticDatum targetDatum;
/**
@@ -204,6 +205,7 @@ public class BursaWolfParameters extends FormattableObject implements Cloneable,
*
* @see #getDomainOfValidity()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Extent domainOfValidity;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DatumShiftGrid.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DatumShiftGrid.java
index aab09a0318..25d19b1b5d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DatumShiftGrid.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DatumShiftGrid.java
@@ -182,6 +182,7 @@ public abstract class DatumShiftGrid<C extends Quantity<C>, T extends Quantity<T
*
* @see #getCoordinateUnit()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Unit<C> coordinateUnit;
/**
@@ -190,6 +191,7 @@ public abstract class DatumShiftGrid<C extends Quantity<C>, T extends Quantity<T
*
* @see #getCoordinateToGrid()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final LinearTransform coordinateToGrid;
/**
@@ -197,6 +199,7 @@ public abstract class DatumShiftGrid<C extends Quantity<C>, T extends Quantity<T
*
* @see #getTranslationUnit()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Unit<T> translationUnit;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
index 98f6151a6a..cf339dc8a2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultEllipsoid.java
@@ -157,6 +157,7 @@ public class DefaultEllipsoid extends AbstractIdentifiedObject implements Ellips
/**
* The units of the semi-major and semi-minor axis values.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Unit<Length> unit;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
index e92f5c76b6..71e7269752 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
@@ -166,6 +166,7 @@ public class DefaultGeodeticDatum extends AbstractDatum implements GeodeticDatum
*
* @see #getEllipsoid()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Ellipsoid ellipsoid;
/**
@@ -176,6 +177,7 @@ public class DefaultGeodeticDatum extends AbstractDatum implements GeodeticDatum
*
* @see #getPrimeMeridian()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private PrimeMeridian primeMeridian;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
index 6787d48f63..7ac6d72f53 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/DefaultPrimeMeridian.java
@@ -111,6 +111,7 @@ public class DefaultPrimeMeridian extends AbstractIdentifiedObject implements Pr
* <p><b>Consider this field as final!</b>
* This field is modified only at unmarshalling time by {@link #setGreenwichMeasure(Measure)}</p>
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Unit<Angle> angularUnit;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/Sphere.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/Sphere.java
index d429adcc10..131d54b0e3 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/Sphere.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/datum/Sphere.java
@@ -22,8 +22,6 @@ import javax.measure.quantity.Length;
import javax.xml.bind.annotation.XmlTransient;
import org.opengis.referencing.datum.Ellipsoid;
-import static java.lang.Math.*;
-
/**
* A ellipsoid which is spherical.
@@ -95,5 +93,4 @@ final class Sphere extends DefaultEllipsoid {
public double flatteningDifference(final Ellipsoid other) {
return 1 / other.getInverseFlattening();
}
-
}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/UnavailableFactoryException.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/UnavailableFactoryException.java
index 4fe2be98d4..8a244522d2 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/UnavailableFactoryException.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/UnavailableFactoryException.java
@@ -30,7 +30,7 @@ import org.opengis.referencing.AuthorityFactory;
* cannot be created, but other objects may be okay.
*
* @author Martin Desruisseaux (IRD, Geomatys)
- * @version 0.7
+ * @version 1.4
*
* @see ConcurrentAuthorityFactory#newDataAccess()
*
@@ -45,7 +45,7 @@ public class UnavailableFactoryException extends MissingFactoryResourceException
/**
* The factory that cannot perform its work, or {@code null} if unknown.
*/
- private AuthorityFactory factory;
+ private transient AuthorityFactory factory;
/**
* Construct an exception with no detail message.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/package-info.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/package-info.java
index cbdba32291..373041442d 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/package-info.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/package-info.java
@@ -56,7 +56,7 @@
* </table>
*
* @author Martin Desruisseaux (IRD, Geomatys)
- * @version 1.3
+ * @version 1.4
* @since 0.6
*/
package org.apache.sis.referencing.factory;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java
index 2ad33ec0b6..086c820b73 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractCoordinateOperation.java
@@ -137,7 +137,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
*
* @see #getSourceCRS()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
CoordinateReferenceSystem sourceCRS;
/**
@@ -149,7 +149,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
*
* @see #getTargetCRS()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
CoordinateReferenceSystem targetCRS;
/**
@@ -161,7 +161,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
*
* @see #getInterpolationCRS()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateReferenceSystem interpolationCRS;
/**
@@ -184,7 +184,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
*
* @see #getCoordinateOperationAccuracy()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
Collection<PositionalAccuracy> coordinateOperationAccuracy;
/**
@@ -196,7 +196,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
*
* @see #getDomainOfValidity()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
Extent domainOfValidity;
/**
@@ -207,7 +207,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
*
* @see #getScope()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private InternationalString scope;
/**
@@ -218,7 +218,7 @@ public class AbstractCoordinateOperation extends AbstractIdentifiedObject implem
* This field is non-final only for the convenience of constructors and for initialization
* at XML unmarshalling time by {@link AbstractSingleOperation#afterUnmarshal(Unmarshaller, Object)}.</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
MathTransform transform;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractSingleOperation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractSingleOperation.java
index d0de657224..acd6c2f177 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractSingleOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/AbstractSingleOperation.java
@@ -94,7 +94,7 @@ class AbstractSingleOperation extends AbstractCoordinateOperation implements Sin
*
* @see #getMethod()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private OperationMethod method;
/**
@@ -107,7 +107,7 @@ class AbstractSingleOperation extends AbstractCoordinateOperation implements Sin
* @see #getParameterValues()
* @see #setParameterValues(ParameterValueGroup, Map)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
ParameterValueGroup parameters;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationContext.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationContext.java
index b645c92fce..922b3bc43a 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationContext.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/CoordinateOperationContext.java
@@ -74,7 +74,7 @@ public class CoordinateOperationContext implements Serializable {
* The spatiotemporal area of interest, or {@code null} if none. This instance may be updated or
* replaced by other methods in this class, or (indirectly) by {@link CoordinateOperationFinder}.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Extent areaOfInterest;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
index 72d84182c6..dbd6c52dcd 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
@@ -70,7 +70,7 @@ final class DefaultConcatenatedOperation extends AbstractCoordinateOperation imp
* <p><b>Consider this field as final!</b>
* This field is modified only at unmarshalling time by {@link #setSteps(CoordinateOperation[])}</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private List<? extends CoordinateOperation> operations;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java
index a184bbfee8..4b59cacf2c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultFormula.java
@@ -57,13 +57,13 @@ public class DefaultFormula extends FormattableObject implements Formula, Serial
/**
* Formula(s) or procedure used by the operation method.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString formula;
/**
* Reference to a publication giving the formula(s) or procedure used by the coordinate operation method.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Citation citation;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
index 4b6e9d46d1..8411135d51 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultOperationMethod.java
@@ -154,7 +154,7 @@ public class DefaultOperationMethod extends AbstractIdentifiedObject implements
* This field is modified only at unmarshalling time by {@link #setFormulaCitation(Citation)}
* or {@link #setFormulaDescription(String)}.</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Formula formula;
/**
@@ -194,7 +194,7 @@ public class DefaultOperationMethod extends AbstractIdentifiedObject implements
* This field is modified only at unmarshalling time by {@link #setDescriptors(GeneralParameterDescriptor[])}
* or {@link #afterUnmarshal(Unmarshaller, Object)}.</p>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private ParameterDescriptorGroup parameters;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
index f0e3f1e38f..4ac1387348 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
@@ -72,7 +72,7 @@ public class DefaultPassThroughOperation extends AbstractCoordinateOperation imp
*
* @see #getOperation()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private CoordinateOperation operation;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
index 973e6f04a2..0fa154aa3e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/InverseOperationMethod.java
@@ -59,7 +59,7 @@ final class InverseOperationMethod extends DefaultOperationMethod {
/**
* The original operation method for which this {@code InverseOperationMethod} is the inverse.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final OperationMethod inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java
index 293c15134d..42874d9d40 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LinearTransformBuilder.java
@@ -1496,7 +1496,6 @@ search: for (int j=domain(); --j >= 0;) {
* some codes may not work anymore. Search for {@code isAffine()} statements for locating codes
* that depend on affine transform assumption.</p>
*/
- @SuppressWarnings("serial")
private MatrixSIS fit() throws FactoryException {
final double[][] sources = this.sources; // Protect from changes.
final double[][] targets = this.targets;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LocalizationGridException.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LocalizationGridException.java
index f2483ae330..1c19d0c157 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LocalizationGridException.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/LocalizationGridException.java
@@ -52,6 +52,7 @@ public class LocalizationGridException extends FactoryDataException {
*
* @see #getPotentialCause()
*/
+ @SuppressWarnings("serial") // String and most InternationalString are serializable.
private CharSequence potentialCause;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/ResidualGrid.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/ResidualGrid.java
index e5968ed889..5f153d9e99 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/ResidualGrid.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/builder/ResidualGrid.java
@@ -123,6 +123,7 @@ final class ResidualGrid extends DatumShiftGrid<Dimensionless,Dimensionless> {
* inverse of {@link #getCoordinateToGrid()}. But in this {@code ResidualGrid} case, we need to override with
* the linear regression computed by {@link LocalizationGridBuilder}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final LinearTransform gridToTarget;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/UnmodifiableMatrix.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/UnmodifiableMatrix.java
index 6e7183fd19..aae5271267 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/UnmodifiableMatrix.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/matrix/UnmodifiableMatrix.java
@@ -38,6 +38,7 @@ final class UnmodifiableMatrix extends MatrixSIS implements ExtendedPrecisionMat
/**
* The wrapped matrix.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Matrix matrix;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Inverter.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Inverter.java
index 62a1e9e23a..e2cc7668e3 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Inverter.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Inverter.java
@@ -50,7 +50,7 @@ import static java.lang.Math.abs;
*
* @since 1.1
*/
-@SuppressWarnings({"CloneableImplementsClone", "serial"})
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
final class Inverter extends Matrix2 {
/**
* Creates a new matrix initialized to identity.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
index 0ca7f6aa27..43ac3b9e62 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Mercator.java
@@ -241,12 +241,6 @@ public class Mercator extends ConformalProjection {
private Mercator(final Initializer initializer) {
super(initializer);
variant = (Variant) initializer.variant;
- /*
- * The "Longitude of natural origin" parameter is found in all Mercator projections and is mandatory.
- * Since this is usually the Greenwich meridian, the default value is 0°. We keep the value in degrees
- * for now; it will be converted to radians later.
- */
- final double λ0 = initializer.getAndStore(Mercator1SP.LONGITUDE_OF_ORIGIN);
/*
* The "Latitude of natural origin" is not formally a parameter of Mercator projection. But the parameter
* is included for completeness in CRS labelling, with the restriction (specified in EPSG documentation)
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java
index d560fbddeb..7a82723003 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/NormalizedProjection.java
@@ -236,7 +236,7 @@ public abstract class NormalizedProjection extends AbstractMathTransform2D imple
* construction time). In addition this field is part of serialization form in order to preserve the
* references graph.</div>
*/
- private final MathTransform2D inverse;
+ private final Inverse inverse;
/**
* Maps the parameters to be used for initializing {@link NormalizedProjection} and its
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ZonedGridSystem.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ZonedGridSystem.java
index 85dda95f27..c43800595c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ZonedGridSystem.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/ZonedGridSystem.java
@@ -98,11 +98,13 @@ public class ZonedGridSystem extends AbstractMathTransform2D implements Serializ
/**
* The projection that performs the actual work before we add the zone number.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final AbstractMathTransform projection;
/**
* The inverse of this map projection.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final MathTransform2D inverse;
/**
@@ -220,6 +222,7 @@ public class ZonedGridSystem extends AbstractMathTransform2D implements Serializ
/**
* The projection that performs the actual work after we removed the zone number.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final AbstractMathTransform inverseProjection;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java
index e41b38a184..c9688059d4 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/AbstractLinearTransform.java
@@ -61,7 +61,7 @@ abstract class AbstractLinearTransform extends AbstractMathTransform implements
*
* @see #inverse()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
volatile LinearTransform inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
index 690d9cbc4e..f1f0c1482c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ConcatenatedTransform.java
@@ -84,11 +84,13 @@ class ConcatenatedTransform extends AbstractMathTransform implements Serializabl
/**
* The first math transform.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final MathTransform transform1;
/**
* The second math transform.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final MathTransform transform2;
/**
@@ -98,6 +100,7 @@ class ConcatenatedTransform extends AbstractMathTransform implements Serializabl
*
* @see #inverse()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private MathTransform inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
index 9c6c8ecc71..6085df0ce8 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ContextualParameters.java
@@ -187,7 +187,7 @@ public class ContextualParameters extends Parameters implements Serializable {
*
* @see #getDescriptor()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ParameterDescriptorGroup descriptor;
/**
@@ -199,7 +199,7 @@ public class ContextualParameters extends Parameters implements Serializable {
*
* @see #getMatrix(MatrixRole)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Matrix normalize, denormalize;
/**
@@ -212,7 +212,7 @@ public class ContextualParameters extends Parameters implements Serializable {
* @see #parameter(String)
* @see #freeze()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private ParameterValue<?>[] values;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DatumShiftTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DatumShiftTransform.java
index 783921f0ce..95fdd872db 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DatumShiftTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DatumShiftTransform.java
@@ -111,6 +111,8 @@ public abstract class DatumShiftTransform extends AbstractMathTransform implemen
*
* Those factors are extracted from the {@link DatumShiftGrid#getCoordinateToGrid()}
* transform for performance reasons.
+ *
+ * @see #computeConversionFactors()
*/
private transient double scaleX, scaleY, x0, y0;
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
index 571062d004..895c5ef0eb 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/DefaultMathTransformFactory.java
@@ -557,7 +557,7 @@ public class DefaultMathTransformFactory extends AbstractFactory implements Math
* @version 1.3
* @since 0.7
*/
- @SuppressWarnings("serial") // Fields are not statically typed as Serializable.
+ @SuppressWarnings("serial") // All field values are usually serializable instances.
public static class Context implements Serializable {
/**
* For cross-version compatibility.
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java
index 8ce552ab11..ecc26c1040 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/EllipsoidToCentricTransform.java
@@ -214,7 +214,7 @@ public class EllipsoidToCentricTransform extends AbstractMathTransform implement
* construction time). In addition this field is part of serialization form in order to preserve the
* references graph.</div>
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final AbstractMathTransform inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ExponentialTransform1D.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ExponentialTransform1D.java
index 03512753b2..527a618dd4 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ExponentialTransform1D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/ExponentialTransform1D.java
@@ -83,7 +83,7 @@ final class ExponentialTransform1D extends AbstractMathTransform1D implements Se
* The inverse of this transform. Created only when first needed. Serialized in order to avoid
* rounding error if this transform is actually the one which was created from the inverse.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private MathTransform1D inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/InterpolatedGeocentricTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/InterpolatedGeocentricTransform.java
index 582f27ce18..2320e3ee9e 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/InterpolatedGeocentricTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/InterpolatedGeocentricTransform.java
@@ -141,6 +141,7 @@ public class InterpolatedGeocentricTransform extends DatumShiftTransform {
* The transform to apply before and after the geocentric translation. Shall be instance of
* {@link EllipsoidToCentricTransform} and {@code EllipsoidToCentricTransform.Inverse} respectively.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final AbstractMathTransform ellipsoidToCentric, centricToEllipsoid;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java
index c3faf5bdd7..bc7f110505 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LinearInterpolator1D.java
@@ -76,6 +76,7 @@ final class LinearInterpolator1D extends AbstractMathTransform1D implements Seri
* If the transform is invertible, the inverse. Otherwise {@code null}.
* The transform is invertible only if values are in increasing order.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final MathTransform1D inverse;
/**
@@ -91,7 +92,7 @@ final class LinearInterpolator1D extends AbstractMathTransform1D implements Seri
this.values = values; // Cloning this array is caller's responsibility.
double last = values[0];
for (int i=1; i<values.length; i++) {
- if (!(last <= (last = values[i]))) { // Use '!' for catching NaN values.
+ if (!(last <= (last = values[i]))) { // Use `!` for catching NaN values.
inverse = null; // Transform is not reversible.
return;
}
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LogarithmicTransform1D.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LogarithmicTransform1D.java
index ec735528af..5f8f1f2b33 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LogarithmicTransform1D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/LogarithmicTransform1D.java
@@ -61,6 +61,7 @@ class LogarithmicTransform1D extends AbstractMathTransform1D implements Serializ
* The inverse of this transform. Created only when first needed. Serialized in order to avoid
* rounding error if this transform is actually the one which was created from the inverse.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private MathTransform1D inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java
index 2a1c75efcc..38107bf365 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PassThroughTransform.java
@@ -96,6 +96,7 @@ public class PassThroughTransform extends AbstractMathTransform implements Seria
* The sub-transform to apply on the {@linkplain #getModifiedCoordinates() modified coordinates}.
* This is often the sub-transform specified at construction time, but not necessarily.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final MathTransform subTransform;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PoleRotation.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PoleRotation.java
index a445b93e44..bc477b0986 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PoleRotation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/PoleRotation.java
@@ -126,7 +126,7 @@ public class PoleRotation extends AbstractMathTransform2D implements Serializabl
*
* @see #inverse()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private MathTransform2D inverse;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/SpecializableTransform.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/SpecializableTransform.java
index 88736c4abe..b15a47c206 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/SpecializableTransform.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/SpecializableTransform.java
@@ -56,6 +56,7 @@ class SpecializableTransform extends AbstractMathTransform implements Serializab
/**
* The global transform to use if there is no suitable specialization.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final MathTransform global;
/**
@@ -73,6 +74,7 @@ class SpecializableTransform extends AbstractMathTransform implements Serializab
/**
* The transform to apply in this area.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final MathTransform transform;
/**
@@ -81,6 +83,7 @@ class SpecializableTransform extends AbstractMathTransform implements Serializab
*
* @see #createInverseTransform()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
MathTransform inverse;
/**
@@ -140,6 +143,7 @@ class SpecializableTransform extends AbstractMathTransform implements Serializab
*
* @see #inverse()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private MathTransform inverse;
/**
@@ -533,6 +537,7 @@ class SpecializableTransform extends AbstractMathTransform implements Serializab
/**
* The inverse of {@link SpecializableTransform#global}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final MathTransform global;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransferFunction.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransferFunction.java
index 782e072a8f..5c051ea061 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransferFunction.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransferFunction.java
@@ -97,6 +97,7 @@ public class TransferFunction implements Cloneable, Serializable {
*
* <p>This field is serialized because the transform may be a user-provided one.</p>
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private MathTransform1D transform;
/**
diff --git a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransformAdapter2D.java b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransformAdapter2D.java
index 858983cf0a..92cc51a26f 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransformAdapter2D.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/transform/TransformAdapter2D.java
@@ -47,6 +47,7 @@ final class TransformAdapter2D extends AbstractMathTransform2D implements Serial
/**
* The math transform which was supposed to implement the {@link MathTransform2D} interface..
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final MathTransform impl;
/**
diff --git a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/SinusoidalShiftGrid.java b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/SinusoidalShiftGrid.java
index 8b96a0777d..d7f72f4c67 100644
--- a/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/SinusoidalShiftGrid.java
+++ b/core/sis-referencing/src/test/java/org/apache/sis/referencing/operation/transform/SinusoidalShiftGrid.java
@@ -37,7 +37,7 @@ import static org.junit.Assert.*;
* @version 1.0
* @since 1.0
*/
-@SuppressWarnings("serial") // Not intended to be serialized.
+@SuppressWarnings("serial") // Not intended to be serialized.
final class SinusoidalShiftGrid extends DatumShiftGrid<Dimensionless,Dimensionless> {
/**
* Number of source and target dimensions of the grid.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/ArrayConverter.java b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/ArrayConverter.java
index ace70cadde..2238df33c9 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/ArrayConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/ArrayConverter.java
@@ -57,6 +57,7 @@ final class ArrayConverter<S,T> extends SystemConverter<S,T> {
* The converter for array elements. The source and target types shall be compatible with the array component
* types of {@code <S>} and {@code <T>} (this constraint cannot be expressed by JDK 7 parameterized types).
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<?,?> converter;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/CharSequenceConverter.java b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/CharSequenceConverter.java
index a32982071d..170e08afd3 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/CharSequenceConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/CharSequenceConverter.java
@@ -49,6 +49,7 @@ final class CharSequenceConverter<T> extends SystemConverter<CharSequence,T> {
/**
* The converter to apply after this one.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<? super String, ? extends T> next;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/FallbackConverter.java b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/FallbackConverter.java
index b88dd94e07..23f869a289 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/FallbackConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/FallbackConverter.java
@@ -67,6 +67,7 @@ final class FallbackConverter<S,T> extends SystemConverter<S,T> {
/**
* The primary converter, to be tried first.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final ObjectConverter<S, ? extends T> primary;
/**
@@ -76,6 +77,7 @@ final class FallbackConverter<S,T> extends SystemConverter<S,T> {
* type he would have asked explicitly for it. In addition this layout reduces the amount of
* exceptions to be thrown and caught before we found a successful conversion.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final ObjectConverter<S, ? extends T> fallback;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/IdentityConverter.java b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/IdentityConverter.java
index e9a56e02b1..f73d835ec1 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/IdentityConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/IdentityConverter.java
@@ -29,7 +29,7 @@ import org.apache.sis.math.FunctionProperty;
* This class is immutable and thus inherently thread-safe.
*
* @author Martin Desruisseaux (IRD, Geomatys)
- * @version 0.3
+ * @version 1.4
*
* @param <S> the base type of source objects.
* @param <T> the base type of converted objects.
@@ -47,7 +47,7 @@ public final class IdentityConverter<S extends T, T> extends SystemConverter<S,T
/**
* The inverse converter specified at construction time, or {@code null} if none.
*/
- private final ObjectConverter<T, S> inverse;
+ private final SystemConverter<T, S> inverse;
/**
* Creates a new identity converter.
@@ -58,11 +58,11 @@ public final class IdentityConverter<S extends T, T> extends SystemConverter<S,T
*/
@SuppressWarnings("unchecked")
public IdentityConverter(final Class<S> sourceClass, final Class<T> targetClass,
- ObjectConverter<T, S> inverse)
+ SystemConverter<T, S> inverse)
{
super(sourceClass, targetClass);
if (inverse == null && sourceClass == targetClass) {
- inverse = (ObjectConverter<T,S>) this;
+ inverse = (SystemConverter<T,S>) this;
}
this.inverse = inverse;
}
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/StringConverter.java b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/StringConverter.java
index 329df588a0..4fe9b79381 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/StringConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/StringConverter.java
@@ -65,7 +65,7 @@ import org.apache.sis.measure.Units;
* This base class and all inner classes are immutable, and thus inherently thread-safe.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 0.5
+ * @version 1.4
* @since 0.3
*/
abstract class StringConverter<T> extends SystemConverter<String, T> {
@@ -77,7 +77,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
/**
* The inverse converter from the target to the source class.
*/
- private final ObjectConverter<T, String> inverse;
+ private final ObjectToString<T> inverse;
/**
* Creates a new converter for the given target class.
@@ -94,7 +94,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
* Invoked by the constructor for creating the inverse converter.
* To be overridden by classes which need a specialized instance.
*/
- ObjectConverter<T, String> createInverse() {
+ ObjectToString<T> createInverse() {
return new ObjectToString<>(targetClass, this);
}
@@ -166,7 +166,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
public Double() {super(java.lang.Double.class);} // Instantiated by ServiceLoader.
@Override java.lang.Double doConvert(String source) throws NumberFormatException {
- return java.lang.Double.parseDouble(source);
+ return java.lang.Double.valueOf(source);
}
}
@@ -175,7 +175,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
public Float() {super(java.lang.Float.class);} // Instantiated by ServiceLoader.
@Override java.lang.Float doConvert(String source) throws NumberFormatException {
- return java.lang.Float.parseFloat(source);
+ return java.lang.Float.valueOf(source);
}
}
@@ -184,7 +184,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
public Long() {super(java.lang.Long.class);} // Instantiated by ServiceLoader.
@Override java.lang.Long doConvert(String source) throws NumberFormatException {
- return java.lang.Long.parseLong(source);
+ return java.lang.Long.valueOf(source);
}
}
@@ -193,7 +193,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
public Integer() {super(java.lang.Integer.class);} // Instantiated by ServiceLoader.
@Override java.lang.Integer doConvert(String source) throws NumberFormatException {
- return java.lang.Integer.parseInt(source);
+ return java.lang.Integer.valueOf(source);
}
}
@@ -202,7 +202,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
public Short() {super(java.lang.Short.class);} // Instantiated by ServiceLoader.
@Override java.lang.Short doConvert(String source) throws NumberFormatException {
- return java.lang.Short.parseShort(source);
+ return java.lang.Short.valueOf(source);
}
}
@@ -211,7 +211,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
public Byte() {super(java.lang.Byte.class);} // Instantiated by ServiceLoader.
@Override java.lang.Byte doConvert(String source) throws NumberFormatException {
- return java.lang.Byte.parseByte(source);
+ return java.lang.Byte.valueOf(source);
}
}
@@ -361,7 +361,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
}
/** Invoked by the constructor for creating the inverse converter. */
- @Override ObjectConverter<T, String> createInverse() {
+ @Override ObjectToString<T> createInverse() {
return new ObjectToString.CodeList<>(targetClass, this);
}
}
@@ -393,7 +393,7 @@ abstract class StringConverter<T> extends SystemConverter<String, T> {
}
/** Invoked by the constructor for creating the inverse converter. */
- @Override ObjectConverter<T, String> createInverse() {
+ @Override ObjectToString<T> createInverse() {
return new ObjectToString.Enum<>(targetClass, this);
}
}
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/package-info.java b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/package-info.java
index 3e6cf6439e..a65dca2b4a 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/converter/package-info.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/converter/package-info.java
@@ -39,7 +39,7 @@
* classpath changes.</p>
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.0
+ * @version 1.4
* @since 0.3
*/
package org.apache.sis.internal.converter;
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/AutoMessageFormat.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/AutoMessageFormat.java
index df945b6a33..2d43bfa9cb 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/AutoMessageFormat.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/AutoMessageFormat.java
@@ -30,7 +30,7 @@ import java.text.MessageFormat;
* @version 1.0
* @since 1.0
*/
-@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not to be serialized.
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
public final class AutoMessageFormat extends MessageFormat {
/**
* Formats that may need to be configured before to write a value, or {@code null} if none.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/CheckedHashSet.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/CheckedHashSet.java
index 257f592455..41cee05f58 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/CheckedHashSet.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/CheckedHashSet.java
@@ -46,6 +46,7 @@ import static org.apache.sis.util.ArgumentChecks.ensureNonNull;
*
* @since 0.3
*/
+@SuppressWarnings("CloneableImplementsClone")
public final class CheckedHashSet<E> extends LinkedHashSet<E> implements CheckedContainer<E> {
/**
* Serial version UID for compatibility with different versions.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/SimpleCharacterIterator.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/SimpleCharacterIterator.java
index 5693c6bf3b..be685e6295 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/SimpleCharacterIterator.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/SimpleCharacterIterator.java
@@ -16,7 +16,6 @@
*/
package org.apache.sis.internal.util;
-import java.io.Serializable;
import java.text.CharacterIterator;
import org.apache.sis.util.ArgumentChecks;
@@ -26,15 +25,10 @@ import org.apache.sis.util.ArgumentChecks;
* around a given {@link CharSequence}.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @version 1.4
* @since 0.3
*/
-public class SimpleCharacterIterator implements CharacterIterator, CharSequence, Serializable {
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = 4211374670559434445L;
-
+public class SimpleCharacterIterator implements CharacterIterator, CharSequence {
/**
* The wrapped character sequence.
*/
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/UnmodifiableArrayList.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/UnmodifiableArrayList.java
index f35f8d7455..2dcf736b91 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/UnmodifiableArrayList.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/UnmodifiableArrayList.java
@@ -70,6 +70,7 @@ public class UnmodifiableArrayList<E> extends AbstractList<E> implements RandomA
/**
* The wrapped array.
*/
+ @SuppressWarnings("serial") // Not statically typed as Serializable.
final E[] array;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/ArrayVector.java b/core/sis-utility/src/main/java/org/apache/sis/math/ArrayVector.java
index b92c86a738..e2c830ad7f 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/ArrayVector.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/ArrayVector.java
@@ -1229,7 +1229,7 @@ abstract class ArrayVector<E extends Number> extends Vector implements CheckedCo
@Override public byte byteValue(int index) {return Byte .parseByte (array[index]);}
@Override public Number get(int index) {
final String value = array[index];
- return (value != null) ? Double.parseDouble(value) : null;
+ return (value != null) ? Double.valueOf(value) : null;
}
/** Stores the given value in this vector and returns the previous value. */
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/ConcatenatedVector.java b/core/sis-utility/src/main/java/org/apache/sis/math/ConcatenatedVector.java
index d4362e22fe..874008316e 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/ConcatenatedVector.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/ConcatenatedVector.java
@@ -38,6 +38,7 @@ final class ConcatenatedVector extends Vector implements Serializable {
/**
* The vectors to concatenate.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Vector first, second;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/LinearlyDerivedVector.java b/core/sis-utility/src/main/java/org/apache/sis/math/LinearlyDerivedVector.java
index 8cda33925a..15142ca79e 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/LinearlyDerivedVector.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/LinearlyDerivedVector.java
@@ -47,6 +47,7 @@ final class LinearlyDerivedVector extends Vector implements Serializable {
/**
* The vector on which this vector is derived from.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Vector base;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/RepeatedVector.java b/core/sis-utility/src/main/java/org/apache/sis/math/RepeatedVector.java
index 70332e9127..338d872e7c 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/RepeatedVector.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/RepeatedVector.java
@@ -65,6 +65,7 @@ final class RepeatedVector extends Vector implements Serializable {
/**
* The vector on which this vector is derived from.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Vector base;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/Statistics.java b/core/sis-utility/src/main/java/org/apache/sis/math/Statistics.java
index 54e1a90cf9..2e36491e3d 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/Statistics.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/Statistics.java
@@ -104,6 +104,7 @@ public class Statistics implements DoubleConsumer, LongConsumer, Cloneable, Seri
*
* @see #name()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final InternationalString name;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/ConcatenatedConverter.java b/core/sis-utility/src/main/java/org/apache/sis/measure/ConcatenatedConverter.java
index e099355d49..5a9e72bfb0 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/ConcatenatedConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/ConcatenatedConverter.java
@@ -41,11 +41,13 @@ final class ConcatenatedConverter extends AbstractConverter implements LenientCo
/**
* The first unit converter to apply.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final UnitConverter c1;
/**
* The second unit converter to apply, after {@code c1}.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final UnitConverter c2;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java b/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
index ba32acceb7..641fe29042 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/ConventionalUnit.java
@@ -59,7 +59,7 @@ final class ConventionalUnit<Q extends Quantity<Q>> extends AbstractUnit<Q> {
/**
* The conversion from this unit to the {@linkplain #target} unit.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
final UnitConverter toTarget;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/DerivedScalar.java b/core/sis-utility/src/main/java/org/apache/sis/measure/DerivedScalar.java
index fdc669828d..3358262bb9 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/DerivedScalar.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/DerivedScalar.java
@@ -59,13 +59,13 @@ class DerivedScalar<Q extends Quantity<Q>> extends Scalar<Q> {
* and its system unit (stored in super-class) is something more complex than a scale
* factor, otherwise we would not need this {@code DerivedScalar}.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Unit<Q> derivedUnit;
/**
* Converter from the system unit to the unit of this quantity.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final UnitConverter fromSystem;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java b/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
index 11317891a4..85c8fe3528 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/FormattedCharacterIterator.java
@@ -16,7 +16,6 @@
*/
package org.apache.sis.measure;
-import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -47,16 +46,11 @@ import org.apache.sis.internal.util.SimpleCharacterIterator;
* will still been seen as 3 separated fields by this implementation.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 0.3
+ * @version 1.4
* @since 0.3
*/
@SuppressWarnings("CloneableImplementsClone") // Not needed - see comment about clone() at the end of this file.
final class FormattedCharacterIterator extends SimpleCharacterIterator implements AttributedCharacterIterator {
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = -5864519830922231670L;
-
/**
* Holds a field value, together with the run range in which this value is valid.
* Contains also a reference to the previous {@code Entry} in order to build a chained
@@ -80,12 +74,7 @@ final class FormattedCharacterIterator extends SimpleCharacterIterator implement
* <li>{@link #limit} is 3.</li>
* </ul>
*/
- private static final class Entry implements Serializable {
- /**
- * For cross-version compatibility.
- */
- private static final long serialVersionUID = 3297480138621390486L;
-
+ private static final class Entry {
/**
* The attribute value.
*/
@@ -332,9 +321,7 @@ final class FormattedCharacterIterator extends SimpleCharacterIterator implement
* by {@link FormattedCharacterIterator#getAttributes()}. The value to extract depends
* on the character index.
*/
- private static final class Selector extends SurjectiveConverter<Entry,Object> implements Serializable {
- private static final long serialVersionUID = -7281235148346378214L;
-
+ private static final class Selector extends SurjectiveConverter<Entry,Object> {
/** Index of the character for which the map of attributes is requested. */
private final int index;
@@ -363,9 +350,7 @@ final class FormattedCharacterIterator extends SimpleCharacterIterator implement
* The object converter to use for filtering the keys in the map returned by
* {@link FormattedCharacterIterator#getAttributes()}.
*/
- private static class Filter extends SurjectiveConverter<Attribute,Attribute> implements Serializable {
- private static final long serialVersionUID = 6951804952836918035L;
-
+ private static class Filter extends SurjectiveConverter<Attribute,Attribute> {
/** A reference to {@link FormattedCharacterIterator#attributes}. */
private final Map<Attribute,Entry> attributes;
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java b/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java
index 5fb67e5e82..acca67d316 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/MeasurementRange.java
@@ -74,6 +74,7 @@ public class MeasurementRange<E extends Number & Comparable<? super E>> extends
*
* @see #unit()
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Unit<?> unit;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java b/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java
index 80376cfe88..a22c730c59 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/Range.java
@@ -105,6 +105,7 @@ public class Range<E extends Comparable<? super E>> implements CheckedContainer<
/**
* The minimal and maximal values.
*/
+ @SuppressWarnings("serial") // Not statically typed as Serializable.
final E minValue, maxValue;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java b/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java
index f5cd5e6f55..65f8351f17 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/Scalar.java
@@ -63,7 +63,7 @@ class Scalar<Q extends Quantity<Q>> extends Number implements Quantity<Q>, Compa
/**
* The unit of measurement associated to the value.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Unit<Q> unit;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/SexagesimalConverter.java b/core/sis-utility/src/main/java/org/apache/sis/measure/SexagesimalConverter.java
index 7ff83cad10..4385b1c4f0 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/SexagesimalConverter.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/SexagesimalConverter.java
@@ -126,7 +126,7 @@ class SexagesimalConverter extends AbstractConverter {
/**
* The inverse of this converter.
*/
- private final UnitConverter inverse;
+ private final SexagesimalConverter inverse;
/**
* Constructs a converter for sexagesimal units.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitDimension.java b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitDimension.java
index 5ee6fa4ca6..7b861a7527 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitDimension.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitDimension.java
@@ -77,7 +77,7 @@ final class UnitDimension implements Dimension, Serializable {
*
* @see #getBaseDimensions()
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // The implementation is serializable.
final Map<UnitDimension,Fraction> components;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
index abcbe693d2..99d603ea93 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitFormat.java
@@ -266,7 +266,7 @@ public class UnitFormat extends Format implements javax.measure.format.UnitForma
*
* @see #label(Unit, String)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Various serializable implementations.
private final Map<Unit<?>,String> unitToLabel;
/**
@@ -277,7 +277,7 @@ public class UnitFormat extends Format implements javax.measure.format.UnitForma
*
* @see #label(Unit, String)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Various serializable implementations.
private final Map<String,Unit<?>> labelToUnit;
/**
@@ -1102,6 +1102,7 @@ appPow: if (unit == null) {
* @return the unit parsed from the specified symbols.
* @throws MeasurementParseException if a problem occurred while parsing the given symbols.
*/
+ @Override
@SuppressWarnings({"null", "fallthrough"})
public Unit<?> parse(CharSequence symbols, final ParsePosition position) throws MeasurementParseException {
ArgumentChecks.ensureNonNull("symbols", symbols);
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java
index 3ef3214f3d..0059575199 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/DefaultTreeTable.java
@@ -81,7 +81,7 @@ public class DefaultTreeTable implements TreeTable, Cloneable, Serializable {
* @see #getRoot()
* @see #setRoot(TreeTable.Node)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private TreeTable.Node root;
/**
@@ -390,7 +390,7 @@ public class DefaultTreeTable implements TreeTable, Cloneable, Serializable {
* @see #getParent()
* @see #setParent(TreeTable.Node)
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private TreeTable.Node parent;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedMap.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedMap.java
index c4a6c44156..876401fc11 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedMap.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedMap.java
@@ -209,7 +209,7 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> implements
private static final long serialVersionUID = 3499911507293121425L;
/** The inverse of {@link #keyConverter}. */
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final ObjectConverter<K,SK> keyInverse;
InvertibleKey(final Map<SK,SV> storage,
@@ -253,7 +253,7 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> implements
private static final long serialVersionUID = -8290698486357636366L;
/** The inverse of {@link #valueConverter}. */
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<V,SV> valueInverse;
InvertibleValue(final Map<SK,SV> storage,
@@ -285,7 +285,7 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> implements
private static final long serialVersionUID = -6625938922337246124L;
/** The inverse of {@link #valueConverter}. */
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<V,SV> valueInverse;
/** The inverse of this entry converter. */
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedSet.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedSet.java
index 5576778be3..ecd6307bfb 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedSet.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/DerivedSet.java
@@ -185,7 +185,7 @@ class DerivedSet<S,E> extends SetOfUnknownSize<E> implements CheckedContainer<E>
/**
* The converter from the derived to the storage type.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final ObjectConverter<E,S> inverse;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/FrequencySortedSet.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/FrequencySortedSet.java
index 79e0779926..fae1cbd41d 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/FrequencySortedSet.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/FrequencySortedSet.java
@@ -62,8 +62,7 @@ public class FrequencySortedSet<E> extends AbstractSet<E> implements SortedSet<E
* Values are positives if this set sorts by increasing frequencies, or negatives if this set sorts by
* decreasing frequencies.
*/
- @SuppressWarnings("serial") // Not statically typed as Serializable.
- private final Map<E,Integer> count;
+ private final LinkedHashMap<E,Integer> count;
/**
* {@code 0} if the element should be sorted in the usual order, or {@code -1}
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java
index 3be0bef1bc..1bbf68e843 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/RangeSet.java
@@ -1511,6 +1511,7 @@ public class RangeSet<E extends Comparable<? super E>> extends AbstractSet<Range
*
* @see RangeSet#create(Class, boolean, boolean)
*/
+ @SuppressWarnings("CloneableImplementsClone")
private static final class Numeric<E extends Number & Comparable<? super E>> extends RangeSet<E> {
private static final long serialVersionUID = 5603640102714482527L;
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeNodeList.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeNodeList.java
index 9d21eed1d3..d9821689a2 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeNodeList.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeNodeList.java
@@ -77,12 +77,14 @@ abstract class TreeNodeList extends AbstractList<TreeTable.Node>
/**
* The parent of all children managed by this list.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
protected final TreeTable.Node parent;
/**
* The children, or {@code null} if none.
* This array will be created when first needed.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private TreeTable.Node[] children;
/**
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java b/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java
index 8eea14fe63..5aa7e23416 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/TreeTableFormat.java
@@ -117,6 +117,7 @@ public class TreeTableFormat extends TabularFormat<TreeTable> {
* @see #getColumns()
* @see #setColumns(TableColumn[])
*/
+ @SuppressWarnings("serial") // The implementations that we use are Serializable.
private Map<TableColumn<?>,Integer> columnIndices;
/**
@@ -158,6 +159,8 @@ public class TreeTableFormat extends TabularFormat<TreeTable> {
* A filter for specifying whether a node should be formatted, or {@code null} if no filtering is applied.
* This is ignored at parsing time.
*
+ * <p>A non-null value may cause the serialization to fail.</p>
+ *
* @see #getNodeFilter()
* @see #setNodeFilter(Predicate)
*/
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/resources/ResourceInternationalString.java b/core/sis-utility/src/main/java/org/apache/sis/util/resources/ResourceInternationalString.java
index 7b8be6a767..dd9fbe4930 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/resources/ResourceInternationalString.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/resources/ResourceInternationalString.java
@@ -65,6 +65,7 @@ public abstract class ResourceInternationalString extends AbstractInternationalS
* specify {@code null} as an argument value. We distinguish the two cases with the sign
* of the {@link #key} value.
*/
+ @SuppressWarnings("serial") // Not statically typed as Serializable.
private final Object arguments;
/**
diff --git a/core/sis-utility/src/test/java/org/apache/sis/measure/FormattedCharacterIteratorTest.java b/core/sis-utility/src/test/java/org/apache/sis/measure/FormattedCharacterIteratorTest.java
index 266ad16ef0..965772a103 100644
--- a/core/sis-utility/src/test/java/org/apache/sis/measure/FormattedCharacterIteratorTest.java
+++ b/core/sis-utility/src/test/java/org/apache/sis/measure/FormattedCharacterIteratorTest.java
@@ -129,7 +129,7 @@ public final class FormattedCharacterIteratorTest extends TestCase {
* with attributes. Built in a sub-class of {@link SimpleCharacterIterator} in
* order to have access to the protected {@link #upper} field.
*/
- @SuppressWarnings({"serial", "CloneableImplementsClone"})
+ @SuppressWarnings("CloneableImplementsClone")
private static class LatitudeString extends SimpleCharacterIterator {
LatitudeString() {
super(LATITUDE_STRING);
diff --git a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/Constraints.java b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/Constraints.java
index 29a9bc6cf6..69ade75f99 100644
--- a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/Constraints.java
+++ b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/Constraints.java
@@ -60,6 +60,7 @@ public class Constraints extends DefaultConstraints {
/**
* The documents that specifies the nature of the constraints.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Collection<Citation> citations;
/**
diff --git a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DataIdentification.java b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DataIdentification.java
index eb34437d02..b7089ce84d 100644
--- a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DataIdentification.java
+++ b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DataIdentification.java
@@ -59,6 +59,7 @@ public class DataIdentification extends DefaultDataIdentification {
/**
* The documents at the origin of the creation of the identified resources.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Collection<Citation> relatedCitations;
/**
diff --git a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DirectReferenceSystem.java b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DirectReferenceSystem.java
index b91fce84dd..318f10de13 100644
--- a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DirectReferenceSystem.java
+++ b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/DirectReferenceSystem.java
@@ -53,7 +53,7 @@ public class DirectReferenceSystem extends ReferenceSystemMetadata {
/**
* Empty constructor for JAXB.
*/
- private DirectReferenceSystem() {
+ public DirectReferenceSystem() {
}
/**
diff --git a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/IndirectReferenceSystem.java b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/IndirectReferenceSystem.java
index 7e7191716e..706170c8b5 100644
--- a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/IndirectReferenceSystem.java
+++ b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/IndirectReferenceSystem.java
@@ -53,7 +53,7 @@ public class IndirectReferenceSystem extends ReferenceSystemMetadata {
/**
* Empty constructor for JAXB.
*/
- private IndirectReferenceSystem() {
+ public IndirectReferenceSystem() {
}
/**
diff --git a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/LegalConstraints.java b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/LegalConstraints.java
index bf22c875d4..37b2a430b5 100644
--- a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/LegalConstraints.java
+++ b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/LegalConstraints.java
@@ -60,6 +60,7 @@ public class LegalConstraints extends DefaultLegalConstraints {
/**
* The documents that specifies the nature of the constraints.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Collection<Citation> citations;
/**
diff --git a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/SecurityConstraints.java b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/SecurityConstraints.java
index e2e3f67f5a..55d53fe262 100644
--- a/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/SecurityConstraints.java
+++ b/profiles/sis-french-profile/src/main/java/org/apache/sis/internal/profile/fra/SecurityConstraints.java
@@ -60,6 +60,7 @@ public class SecurityConstraints extends DefaultSecurityConstraints {
/**
* The documents that specifies the nature of the constraints.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Collection<Citation> citations;
/**
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreFormat.java b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreFormat.java
index c403105ea0..798768bd65 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreFormat.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/wkt/StoreFormat.java
@@ -46,7 +46,7 @@ import org.apache.sis.util.ArraysExt;
* @version 1.2
* @since 0.8
*/
-@SuppressWarnings("serial")
+@SuppressWarnings({"serial", "CloneableImplementsClone"}) // Not intended to be serialized.
public final class StoreFormat extends WKTFormat {
/**
* The geometry library, or {@code null} for the default.
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/CanNotProbeException.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/CanNotProbeException.java
index 17eafb357a..dd1321f779 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/CanNotProbeException.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/CanNotProbeException.java
@@ -36,8 +36,9 @@ public class CanNotProbeException extends DataStoreException {
/**
* The data store provider that failed to probe a file.
+ * This is null if this exception has been deserialized.
*/
- private final DataStoreProvider provider;
+ private final transient DataStoreProvider provider;
/**
* Creates an exception with the specified details message and cause.
@@ -67,7 +68,7 @@ public class CanNotProbeException extends DataStoreException {
/**
* Returns the data store provider that failed to probe a file.
*
- * @return the data store provider that failed to probe a file.
+ * @return the data store provider that failed to probe a file, or {@code null} if unknown.
*
* @see DataStore#getProvider()
*/
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageQuery.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageQuery.java
index 464ab01d0e..2bfc6007b6 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageQuery.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageQuery.java
@@ -357,7 +357,7 @@ next: for (int i=0; i<rangeNames.length; i++) {
new Longitude(box.getEastBoundLongitude()));
} else {
sb.append('?'); // If the domain cannot be expressed as a geographic bounding box.
- };
+ }
sb.append(']');
if (sourceDomainExpansion != 0) {
sb.append(" + margin(").append(sourceDomainExpansion).append(')');
diff --git a/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java b/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
index 049666b127..e7409c28ba 100644
--- a/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
+++ b/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureQuery.java
@@ -108,6 +108,7 @@ public class FeatureQuery extends Query implements Cloneable, Serializable {
* @see #getSelection()
* @see #setSelection(Filter)
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Filter<? super Feature> selection;
/**
@@ -136,6 +137,7 @@ public class FeatureQuery extends Query implements Cloneable, Serializable {
* @see #getSortBy()
* @see #setSortBy(SortBy)
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private SortBy<Feature> sortBy;
/**
@@ -146,6 +148,7 @@ public class FeatureQuery extends Query implements Cloneable, Serializable {
* @see #getLinearResolution()
* @see #setLinearResolution(Quantity)
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private Quantity<Length> linearResolution;
/**
@@ -415,11 +418,13 @@ public class FeatureQuery extends Query implements Cloneable, Serializable {
* The literal, value reference or more complex expression to be retrieved by a {@code Query}.
* Never {@code null}.
*/
+ @SuppressWarnings("serial")
public final Expression<? super Feature, ?> expression;
/**
* The name to assign to the expression result, or {@code null} if unspecified.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
public final GenericName alias;
/**
diff --git a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java
index 57f643e102..8277244ea7 100644
--- a/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java
+++ b/storage/sis-xmlstore/src/main/java/org/apache/sis/internal/storage/gpx/GroupAsPolylineOperation.java
@@ -153,6 +153,7 @@ final class GroupAsPolylineOperation extends AbstractOperation {
/**
* The feature on which to execute the operation.
*/
+ @SuppressWarnings("serial") // Most SIS implementations are serializable.
private final Feature feature;
/**