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 a7ea144013d50ac812bc79b2c497d347a9c90b3a
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Tue Nov 22 15:30:39 2022 +0100

    Fix javadoc and serialization warnings.
---
 .../apache/sis/gui/coverage/CoverageExplorer.java  |  2 +-
 .../org/apache/sis/gui/map/GestureFollower.java    |  2 +-
 .../gui/referencing/RecentReferenceSystems.java    |  1 +
 .../java/org/apache/sis/feature/AttributeView.java | 10 +++++++-
 .../main/java/org/apache/sis/feature/Field.java    |  5 +++-
 .../java/org/apache/sis/feature/PropertyView.java  |  6 ++++-
 .../org/apache/sis/filter/ArithmeticFunction.java  |  8 ++++++
 .../org/apache/sis/filter/AssociationValue.java    |  5 ++++
 .../java/org/apache/sis/filter/BinaryFunction.java |  2 ++
 .../apache/sis/filter/BinaryGeometryFilter.java    |  2 ++
 .../org/apache/sis/filter/BinarySpatialFilter.java |  8 +++---
 .../org/apache/sis/filter/ComparisonFilter.java    | 14 ++++++++++
 .../org/apache/sis/filter/ConvertFunction.java     |  1 +
 .../org/apache/sis/filter/DefaultSortProperty.java |  1 +
 .../java/org/apache/sis/filter/DistanceFilter.java |  1 +
 .../java/org/apache/sis/filter/LeafExpression.java | 10 +++++++-
 .../java/org/apache/sis/filter/LikeFilter.java     |  1 +
 .../java/org/apache/sis/filter/LogicalFilter.java  |  8 ++++++
 .../java/org/apache/sis/filter/PropertyValue.java  |  6 +++++
 .../java/org/apache/sis/filter/TemporalFilter.java | 30 +++++++++++++++++++++-
 .../java/org/apache/sis/filter/UnaryFunction.java  |  7 ++++-
 .../iso/quality/AbstractDataEvaluation.java        |  2 +-
 .../apache/sis/util/iso/DefaultNameFactory.java    |  2 +-
 .../main/java/org/apache/sis/math/ArrayVector.java |  5 +++-
 .../org/apache/sis/measure/ConventionalUnit.java   |  5 +++-
 .../java/org/apache/sis/measure/DerivedScalar.java |  6 ++++-
 .../main/java/org/apache/sis/measure/Scalar.java   |  3 ++-
 .../org/apache/sis/measure/ScalarFallback.java     |  5 +++-
 .../org/apache/sis/util/collection/DerivedMap.java | 21 +++++++++++++++
 .../org/apache/sis/util/collection/DerivedSet.java |  3 +++
 .../sis/util/collection/FrequencySortedSet.java    |  3 +++
 .../org/apache/sis/util/collection/RangeSet.java   |  3 +++
 .../apache/sis/util/resources/package-info.java    | 10 ++++----
 pom.xml                                            |  2 +-
 .../storage/aggregate/AggregatedFeatureSet.java    |  9 ++++---
 .../sis/storage/aggregate/CoverageAggregator.java  |  1 +
 36 files changed, 181 insertions(+), 29 deletions(-)

diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
index 2d693eb37d..2c45e8b46f 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageExplorer.java
@@ -282,7 +282,7 @@ public class CoverageExplorer extends Widget {
      * Returns the handler of the window showing this coverage view.
      * Those windows are created when the user clicks on the "New window" 
button.
      * Each window provides the area where data are shown and where the user 
interacts.
-     * The window can be a JavaFX top-level window ({@link Stage}), but not 
necessarily.
+     * The window can be a JavaFX top-level window ({@link 
javafx.stage.Stage}), but not necessarily.
      * It may also be a tile in a mosaic of windows.
      *
      * @return the handler of the window showing this coverage view.
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/GestureFollower.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/GestureFollower.java
index ea294276ef..09adf8b71b 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/map/GestureFollower.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/map/GestureFollower.java
@@ -237,7 +237,7 @@ public class GestureFollower extends CanvasFollower 
implements EventHandler<Mous
 
     /**
      * Returns {@code true} if this listener should replicate the following 
changes on the target canvas.
-     * This implementation returns {@code true} if the transform reason is 
{@link TransformChangeEvent.Reason#INTERM}.
+     * This implementation returns {@code true} if the transform reason is 
{@link TransformChangeEvent.Reason#INTERIM}.
      * It allows immediate feedback to users without waiting for the 
background thread to complete rendering.
      *
      * @param  event  a transform change event that occurred on the source 
canvas.
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
index 34fa1a25ba..4aa54d5348 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/referencing/RecentReferenceSystems.java
@@ -47,6 +47,7 @@ import org.apache.sis.geometry.ImmutableEnvelope;
 import org.apache.sis.referencing.IdentifiedObjects;
 import org.apache.sis.referencing.factory.GeodeticAuthorityFactory;
 import org.apache.sis.referencing.factory.IdentifiedObjectFinder;
+import org.apache.sis.referencing.gazetteer.MilitaryGridReferenceSystem;
 import org.apache.sis.referencing.gazetteer.GazetteerException;
 import org.apache.sis.referencing.gazetteer.GazetteerFactory;
 import org.apache.sis.coverage.grid.GridGeometry;
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 613c30ed5e..be0758cde5 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
@@ -38,7 +38,11 @@ import org.opengis.feature.AttributeType;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.8
- * @since   0.8
+ *
+ * @param <V> the type of attribute values. If the attribute supports 
multi-occurrences,
+ *            then this is the type of elements (not the collection type).
+ *
+ * @since 0.8
  * @module
  */
 class AttributeView<V> extends PropertyView<V> implements Attribute<V> {
@@ -50,6 +54,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.
     final AttributeType<V> type;
 
     /**
@@ -111,6 +116,9 @@ class AttributeView<V> extends PropertyView<V> implements 
Attribute<V> {
      * Specialization of {@code AttributeView} when the amount of values can 
be only zero or one.
      * This implementation takes shortcuts for the {@code getValue()} and 
{@code getValues()} methods.
      * This specialization is provided because it is the most common case.
+     *
+     * @param <V> the type of attribute values. If the attribute supports 
multi-occurrences,
+     *            then this is the type of elements (not the collection type).
      */
     private static final class Singleton<V> extends AttributeView<V> {
         /**
diff --git a/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java 
b/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java
index 2fede8cdba..53c280d8bf 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/feature/Field.java
@@ -35,7 +35,10 @@ import org.apache.sis.util.Deprecable;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.8
- * @since   0.5
+ *
+ * @param <V> the type of property values.
+ *
+ * @since 0.5
  * @module
  */
 abstract class Field<V> implements Property {
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 32bccd56cc..732776ed54 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
@@ -48,7 +48,10 @@ import org.opengis.feature.MultiValuedPropertyException;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.8
- * @since   0.8
+ *
+ * @param <V> the type of property values.
+ *
+ * @since 0.8
  * @module
  */
 abstract class PropertyView<V> extends Field<V> implements Property, 
Serializable {
@@ -60,6 +63,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.
     final Feature feature;
 
     /**
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/filter/ArithmeticFunction.java 
b/core/sis-feature/src/main/java/org/apache/sis/filter/ArithmeticFunction.java
index cc17b1d134..9999229b74 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/filter/ArithmeticFunction.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/filter/ArithmeticFunction.java
@@ -135,6 +135,8 @@ abstract class ArithmeticFunction<R> extends 
BinaryFunction<R,Number,Number>
 
     /**
      * The "Add" (+) expression.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class Add<R> extends ArithmeticFunction<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -173,6 +175,8 @@ abstract class ArithmeticFunction<R> extends 
BinaryFunction<R,Number,Number>
 
     /**
      * The "Subtract" (−) expression.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class Subtract<R> extends ArithmeticFunction<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -211,6 +215,8 @@ abstract class ArithmeticFunction<R> extends 
BinaryFunction<R,Number,Number>
 
     /**
      * The "Multiply" (×) expression.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class Multiply<R> extends ArithmeticFunction<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -249,6 +255,8 @@ abstract class ArithmeticFunction<R> extends 
BinaryFunction<R,Number,Number>
 
     /**
      * The "Divide" (÷) expression.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class Divide<R> extends ArithmeticFunction<R> {
         /** For cross-version compatibility during (de)serialization. */
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java 
b/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java
index ee0beeb2e0..67914b95d6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/AssociationValue.java
@@ -54,6 +54,11 @@ import org.opengis.filter.ValueReference;
 final class AssociationValue<V> extends LeafExpression<Feature, V>
         implements ValueReference<Feature, V>, 
Optimization.OnExpression<Feature, V>
 {
+    /**
+     * For cross-version compatibility.
+     */
+    private static final long serialVersionUID = 2082322712413854288L;
+
     /**
      * Path to the property from which to retrieve the value.
      * Each element in the array is an argument to give in a call to {@link 
Feature#getProperty(String)}.
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 96fb5c5e3a..f79897a5ba 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
@@ -60,6 +60,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      *
      * @see #getExpression1()
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     protected final Expression<? super R, ? extends V1> expression1;
 
     /**
@@ -67,6 +68,7 @@ abstract class BinaryFunction<R,V1,V2> extends Node {
      *
      * @see #getExpression2()
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
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 7bffd6ab5d..741ebfc587 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
@@ -68,6 +68,7 @@ abstract class BinaryGeometryFilter<R,G> extends 
FilterNode<R> implements Spatia
      *
      * @see BinarySpatialOperator#getOperand1()
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     protected final Expression<? super R, GeometryWrapper<G>> expression1;
 
     /**
@@ -75,6 +76,7 @@ abstract class BinaryGeometryFilter<R,G> extends 
FilterNode<R> implements Spatia
      *
      * @see BinarySpatialOperator#getOperand2()
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     protected final Expression<? super R, GeometryWrapper<G>> expression2;
 
     /**
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java 
b/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
index 1bf4ceeeec..160d0b614d 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/filter/BinarySpatialFilter.java
@@ -66,7 +66,7 @@ final class BinarySpatialFilter<R,G> extends 
BinaryGeometryFilter<R,G> implement
      * @return a filter checking for interactions of the bounding boxes.
      */
     BinarySpatialFilter(final Geometries<G> library, final Expression<? super 
R, ?> geometry,
-                    final Envelope bounds, final WraparoundMethod wraparound)
+                        final Envelope bounds, final WraparoundMethod 
wraparound)
     {
         super(library, geometry, new 
LeafExpression.Transformed<>(library.toGeometry2D(bounds, wraparound),
                                  new LeafExpression.Literal<>(bounds)), null);
@@ -83,9 +83,9 @@ final class BinarySpatialFilter<R,G> extends 
BinaryGeometryFilter<R,G> implement
      * @return a filter for the specified operation between the two geometries.
      */
     BinarySpatialFilter(final SpatialOperatorName operatorType,
-                    final Geometries<G> library,
-                    final Expression<? super R, ?> geometry1,
-                    final Expression<? super R, ?> geometry2)
+                        final Geometries<G> library,
+                        final Expression<? super R, ?> geometry1,
+                        final Expression<? super R, ?> geometry2)
     {
         super(library, geometry1, geometry2, null);
         this.operatorType = operatorType;
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java 
b/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
index 12dfd23243..af6ec2793c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/ComparisonFilter.java
@@ -540,6 +540,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
 
     /**
      * The {@code "PropertyIsLessThan"} {@literal (<)} filter.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class LessThan<R> extends ComparisonFilter<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -580,6 +582,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
 
     /**
      * The {@code "PropertyIsLessThanOrEqualTo"} (≤) filter.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class LessThanOrEqualTo<R> extends ComparisonFilter<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -620,6 +624,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
 
     /**
      * The {@code "PropertyIsGreaterThan"} {@literal (>)} filter.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class GreaterThan<R> extends ComparisonFilter<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -660,6 +666,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
 
     /**
      * The {@code "PropertyIsGreaterThanOrEqualTo"} (≥) filter.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class GreaterThanOrEqualTo<R> extends ComparisonFilter<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -700,6 +708,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
 
     /**
      * The {@code "PropertyIsEqualTo"} (=) filter.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class EqualTo<R> extends ComparisonFilter<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -740,6 +750,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
 
     /**
      * The {@code "PropertyIsNotEqualTo"} (≠) filter.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class NotEqualTo<R> extends ComparisonFilter<R> {
         /** For cross-version compatibility during (de)serialization. */
@@ -783,6 +795,8 @@ abstract class ComparisonFilter<R> extends 
BinaryFunction<R,Object,Object>
      * {@link org.apache.sis.filter.LogicalFilter.And} when one expression is
      * {@link LessThanOrEqualTo} and a second expression is {@link 
GreaterThanOrEqualTo}.
      *
+     * @param  <R>  the type of resources used as inputs.
+     *
      * @see org.apache.sis.filter.LogicalFilter.And
      */
     static final class Between<R> extends FilterNode<R> implements 
BetweenComparisonOperator<R> {
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 cfa70b8dc2..28d80869bd 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
@@ -64,6 +64,7 @@ final class ConvertFunction<R,S,V> extends UnaryFunction<R,S>
     /**
      * The converter to use.
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
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 3c80d20c30..bd54ad4b15 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
@@ -50,6 +50,7 @@ final class DefaultSortProperty<R> implements 
SortProperty<R>, Serializable {
     /**
      * The property on which to apply sorting.
      */
+    @SuppressWarnings("serial")     // Not statically typed as 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 672071e3eb..4c75c4d969 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
@@ -66,6 +66,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.
     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 e85c9960a2..76dd982fc1 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
@@ -77,17 +77,21 @@ abstract class LeafExpression<R,V> extends Node implements 
FeatureExpression<R,V
     /**
      * A constant, literal value that can be used in expressions.
      * The {@link #apply(Object)} method ignores the argument and always 
returns {@link #getValue()}.
+     *
+     * @param  <R>  the type of resources used as inputs.
+     * @param  <V>  the type of value computed by the expression.
      */
     static class Literal<R,V> extends LeafExpression<R,V> implements 
org.opengis.filter.Literal<R,V> {
         /** For cross-version compatibility. */
         private static final long serialVersionUID = -8383113218490957822L;
 
         /** The constant value to be returned by {@link #getValue()}. */
+        @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
         protected final V value;
 
         /** Creates a new literal holding the given constant value. */
         Literal(final V value) {
-            this.value = value;     // Null is accepted.
+            this.value = value;             // Null is accepted.
         }
 
         /** For {@link #toString()}, {@link #hashCode()} and {@link 
#equals(Object)} implementations. */
@@ -172,12 +176,16 @@ abstract class LeafExpression<R,V> extends Node 
implements FeatureExpression<R,V
 
     /**
      * A literal value which is the result of transforming another literal.
+     *
+     * @param  <R>  the type of resources used as inputs.
+     * @param  <V>  the type of value computed by the expression.
      */
     static final class Transformed<R,V> extends Literal<R,V> implements 
Optimization.OnExpression<R,V> {
         /** For cross-version compatibility. */
         private static final long serialVersionUID = -5120203649333919221L;
 
         /** The original expression. */
+        @SuppressWarnings("serial")         // Not statically typed as 
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 96c335c994..d0cddd88f7 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
@@ -49,6 +49,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.
     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 552e311025..71b7ffe60a 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
@@ -53,6 +53,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.
     protected final Filter<? super R>[] operands;
 
     /**
@@ -110,6 +111,8 @@ abstract class LogicalFilter<R> extends FilterNode<R> 
implements LogicalOperator
 
     /**
      * The "And" operation (⋀).
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class And<R> extends LogicalFilter<R> {
         /** For cross-version compatibility. */
@@ -159,6 +162,8 @@ abstract class LogicalFilter<R> extends FilterNode<R> 
implements LogicalOperator
 
     /**
      * The "Or" operation (⋁).
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class Or<R> extends LogicalFilter<R> {
         /** For cross-version compatibility. */
@@ -208,12 +213,15 @@ abstract class LogicalFilter<R> extends FilterNode<R> 
implements LogicalOperator
 
     /**
      * The negation filter (¬).
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class Not<R> extends FilterNode<R> implements 
LogicalOperator<R>, Optimization.OnFilter<R> {
         /** For cross-version compatibility. */
         private static final long serialVersionUID = -1296823195138427781L;
 
         /** The filter to negate. */
+        @SuppressWarnings("serial")         // Not statically typed as 
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 bcc5716021..1db9b1493a 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
@@ -248,6 +248,8 @@ split:  if (path != null) {
     /**
      * An expression fetching property values as an object of specified type.
      * The value is converted from {@link Object} to the specified type.
+     *
+     * @param  <V>  the type of value computed by the expression.
      */
     private static class Converted<V> extends PropertyValue<V> {
         /** For cross-version compatibility. */
@@ -393,6 +395,9 @@ split:  if (path != null) {
      * An expression fetching property values as an object of specified type.
      * The value is first casted from {@link Object} to the expected source 
type,
      * then converted to the specified target type.
+     *
+     * @param  <S>  the type of source value before conversion.
+     * @param  <V>  the type of value computed by the expression.
      */
     private static final class CastedAndConverted<S,V> extends Converted<V> {
         /** For cross-version compatibility. */
@@ -402,6 +407,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.
         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/TemporalFilter.java 
b/core/sis-feature/src/main/java/org/apache/sis/filter/TemporalFilter.java
index a242531dbc..e22e7a449e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/TemporalFilter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/TemporalFilter.java
@@ -62,7 +62,7 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * @param  expression2  the second of the two expressions to be used by 
this function.
      */
     TemporalFilter(final Expression<? super T, ?> expression1,
-                     final Expression<? super T, ?> expression2)
+                   final Expression<? super T, ?> expression2)
     {
         super(expression1, expression2);
     }
@@ -211,6 +211,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      *   <li>{@literal self = other}</li>
      *   <li>{@literal self.begin = other.begin  AND  self.end = 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Equals<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -264,6 +266,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      *   <li>{@literal self.end < other}</li>
      *   <li>{@literal self.end < other.begin}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Before<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -315,6 +319,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      *   <li>{@literal self.begin > other}</li>
      *   <li>{@literal self.begin > other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class After<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -364,6 +370,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.begin = other.begin  AND  self.end < 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Begins<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -399,6 +407,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.begin > other.begin  AND  self.end = 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Ends<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -435,6 +445,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      *   <li>{@literal self.begin = other}</li>
      *   <li>{@literal self.begin = other.begin  AND  self.end > 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class BegunBy<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -476,6 +488,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      *   <li>{@literal self.end = other}</li>
      *   <li>{@literal self.begin < other.begin  AND  self.end = 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class EndedBy<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -516,6 +530,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.end = other.begin}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Meets<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -560,6 +576,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.begin = other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class MetBy<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -604,6 +622,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.begin > other.begin  AND  self.end < 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class During<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -645,6 +665,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      *   <li>{@literal self.begin < other AND self.end > other}</li>
      *   <li>{@literal self.begin < other.begin  AND  self.end > 
other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Contains<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -691,6 +713,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.begin < other.begin  AND  self.end > other.begin  
AND  self.end < other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class Overlaps<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -729,6 +753,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
      * <ul>
      *   <li>{@literal self.begin > other.begin  AND  self.begin < other.end  
AND  self.end > other.end}</li>
      * </ul>
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class OverlappedBy<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
@@ -765,6 +791,8 @@ abstract class TemporalFilter<T> extends 
BinaryFunction<T,Object,Object>
     /**
      * The {@code "AnyInteracts"} filter.
      * This is a shortcut for NOT (Before OR Meets OR MetBy OR After).
+     *
+     * @param  <T>  the type of resources used as inputs.
      */
     static final class AnyInteracts<T> extends TemporalFilter<T> {
         /** For cross-version compatibility during (de)serialization. */
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 438cf27f14..62b0d4c76f 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
@@ -56,6 +56,7 @@ class UnaryFunction<R,V> extends Node {
      *
      * @see #getExpression()
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     protected final Expression<? super R, ? extends V> expression;
 
     /**
@@ -98,10 +99,12 @@ class UnaryFunction<R,V> extends Node {
      * Filter operator that checks if an expression's value is {@code null}.  
A {@code null}
      * is equivalent to no value present. The value 0 is a valid value and is 
not considered
      * {@code null}.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class IsNull<R> extends UnaryFunction<R,Object>
             implements NullOperator<R>, Optimization.OnFilter<R>
- {
+    {
         /** For cross-version compatibility. */
         private static final long serialVersionUID = 2960285515924533419L;
 
@@ -131,6 +134,8 @@ class UnaryFunction<R,V> extends Node {
      * Filter operator that checks if an expression's value is nil.
      * The difference with {@link IsNull} is that a value should exist but
      * cannot be provided for the reason given by {@link #getNilReason()}.
+     *
+     * @param  <R>  the type of resources used as inputs.
      */
     static final class IsNil<R> extends UnaryFunction<R,Object>
             implements NilOperator<R>, Optimization.OnFilter<R>
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
index e00dfbd1d5..0421e47f54 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/iso/quality/AbstractDataEvaluation.java
@@ -48,7 +48,7 @@ import org.opengis.metadata.quality.SampleBasedInspection;
 @XmlRootElement(name = "AbstractDQ_DataEvaluation")
 @XmlSeeAlso({
     DefaultFullInspection.class,
-    DefaultIndirectEvaluation .class,
+    DefaultIndirectEvaluation.class,
     DefaultSampleBasedInspection.class
 })
 public class AbstractDataEvaluation extends DefaultEvaluationMethod implements 
DataEvaluation {
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
index 0f0e6f3d76..c4cfbe4eac 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/util/iso/DefaultNameFactory.java
@@ -227,7 +227,7 @@ public class DefaultNameFactory extends AbstractFactory 
implements NameFactory {
      * @param  scope     the {@linkplain AbstractName#scope() scope} of the 
type name to create,
      *                   or {@code null} for a global namespace.
      * @param  name      the type name as a string or an international string.
-     * @param  javaType  the value type to be returned by {@link 
#toJavaType()}, or {@code null} if none.
+     * @param  javaType  the Java type represented by the name, or {@code 
null} if none.
      * @return the type name for the given scope, character sequence and Java 
type.
      *
      * @see #toTypeName(Class)
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 f9f0485ffe..a2c32d8043 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
@@ -43,7 +43,10 @@ import org.apache.sis.measure.NumberRange;
  *
  * @author  Martin Desruisseaux (MPO, Geomatys)
  * @version 1.2
- * @since   0.8
+ *
+ * @param <E>  the base type of elements in the vector.
+ *
+ * @since 0.8
  * @module
  */
 abstract class ArrayVector<E extends Number> extends Vector implements 
CheckedContainer<E>, Serializable {
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 4f4bd748a8..19f645f80d 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
@@ -36,7 +36,10 @@ import org.apache.sis.math.Fraction;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.0
- * @since   0.8
+ *
+ * @param <Q>  the kind of quantity to be measured using this units.
+ *
+ * @since 0.8
  * @module
  */
 final class ConventionalUnit<Q extends Quantity<Q>> extends AbstractUnit<Q> {
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 d277bb1909..28cfc438b0 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
@@ -37,7 +37,7 @@ import org.apache.sis.util.ArgumentChecks;
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.1
  *
- * @param <Q>  the concrete subtype.
+ * @param <Q>  the type of quantity implemented by this scalar.
  *
  * @since 1.0
  * @module
@@ -60,11 +60,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.
     private final Unit<Q> derivedUnit;
 
     /**
      * Converter from the system unit to the unit of this quantity.
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     private final UnitConverter fromSystem;
 
     /**
@@ -197,6 +199,8 @@ class DerivedScalar<Q extends Quantity<Q>> extends 
Scalar<Q> {
     /**
      * Fallback used when no {@link DerivedScalar} implementation is available 
for a given quantity type.
      * This is basically a copy of {@link ScalarFallback} implementation 
adapted to {@code DerivedScalar}.
+     *
+     * @param <Q>  the type of quantity implemented by this scalar.
      */
     @SuppressWarnings("serial")
     static final class Fallback<Q extends Quantity<Q>> extends 
DerivedScalar<Q> implements InvocationHandler {
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 c4c59912ae..d379279c60 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
@@ -35,7 +35,7 @@ import org.apache.sis.internal.util.Numerics;
  * @author  Alexis Manin (Geomatys)
  * @version 1.2
  *
- * @param <Q>  the concrete subtype.
+ * @param <Q>  the type of quantity implemented by this scalar.
  *
  * @since 0.8
  * @module
@@ -54,6 +54,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.
     private final Unit<Q> unit;
 
     /**
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/measure/ScalarFallback.java 
b/core/sis-utility/src/main/java/org/apache/sis/measure/ScalarFallback.java
index b2d9bb326a..8560e993c7 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/ScalarFallback.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/ScalarFallback.java
@@ -28,7 +28,10 @@ import javax.measure.Unit;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.8
- * @since   0.8
+ *
+ * @param <Q>  the type of quantity implemented by this scalar.
+ *
+ * @since 0.8
  * @module
  */
 @SuppressWarnings("serial")
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 f66ddf6fd8..37edecbd20 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
@@ -77,16 +77,19 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> 
implements
     /**
      * The storage map whose keys are derived from.
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     protected final Map<SK,SV> storage;
 
     /**
      * The converter from the storage to the derived keys.
      */
+    @SuppressWarnings("serial")
     protected final ObjectConverter<SK,K> keyConverter;
 
     /**
      * The converter from the storage to the derived values.
      */
+    @SuppressWarnings("serial")
     protected final ObjectConverter<SV,V> valueConverter;
 
     /**
@@ -197,11 +200,17 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> 
implements
      * A {@link DerivedMap} used when the {@link #keyConverter} is invertible.
      * Availability of the inverse conversion allows us to delegate some 
operations
      * to the {@linkplain #storage} map instead of iterating over all entries.
+     *
+     * @param <SK>  the type of keys in the storage map.
+     * @param <SV>  the type of values in the storage map.
+     * @param <K>   the type of keys in this map.
+     * @param <V>   the type of values in this map.
      */
     private static class InvertibleKey<SK,SV,K,V> extends 
DerivedMap<SK,SV,K,V> {
         private static final long serialVersionUID = 3499911507293121425L;
 
         /** The inverse of {@link #keyConverter}. */
+        @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
         protected final ObjectConverter<K,SK> keyInverse;
 
         InvertibleKey(final Map<SK,SV> storage,
@@ -235,11 +244,17 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> 
implements
      * A {@link DerivedMap} used when the {@link #valueConverter} is 
invertible.
      * Availability of the inverse conversion allows us to delegate some 
operations
      * to the {@linkplain #storage} map instead of iterating over all entries.
+     *
+     * @param <SK>  the type of keys in the storage map.
+     * @param <SV>  the type of values in the storage map.
+     * @param <K>   the type of keys in this map.
+     * @param <V>   the type of values in this map.
      */
     private static final class InvertibleValue<SK,SV,K,V> extends 
DerivedMap<SK,SV,K,V> {
         private static final long serialVersionUID = -8290698486357636366L;
 
         /** The inverse of {@link #valueConverter}. */
+        @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
         private final ObjectConverter<V,SV> valueInverse;
 
         InvertibleValue(final Map<SK,SV> storage,
@@ -261,11 +276,17 @@ class DerivedMap<SK,SV,K,V> extends AbstractMap<K,V> 
implements
      * A {@link DerivedMap} used when both the {@link #keyConverter} and 
{@link #valueConverter}
      * are invertible. Availability of the inverse conversion allows us to 
delegate some operations
      * to the {@linkplain #storage} map instead of iterating over all entries.
+     *
+     * @param <SK>  the type of keys in the storage map.
+     * @param <SV>  the type of values in the storage map.
+     * @param <K>   the type of keys in this map.
+     * @param <V>   the type of values in this map.
      */
     private static final class Invertible<SK,SV,K,V> extends 
InvertibleKey<SK,SV,K,V> {
         private static final long serialVersionUID = -6625938922337246124L;
 
         /** The inverse of {@link #valueConverter}. */
+        @SuppressWarnings("serial")         // Not statically typed as 
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 0df7d7c205..f7ac505d37 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
@@ -71,11 +71,13 @@ class DerivedSet<S,E> extends SetOfUnknownSize<E> 
implements CheckedContainer<E>
     /**
      * The storage set whose values are derived from.
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     protected final Set<S> storage;
 
     /**
      * The converter from the storage to the derived type.
      */
+    @SuppressWarnings("serial")
     protected final ObjectConverter<S,E> converter;
 
     /**
@@ -184,6 +186,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.
         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 99a8a2093f..187872bf5c 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
@@ -63,6 +63,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;
 
     /**
@@ -300,11 +301,13 @@ public class FrequencySortedSet<E> extends AbstractSet<E> 
implements SortedSet<E
         /**
          * Low endpoint (inclusive) of the subset. May be {@code null}.
          */
+        @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
         private final E fromElement;
 
         /**
          * High endpoint (exclusive) of the subset. May be {@code null}.
          */
+        @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
         private final E toElement;
 
         /**
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 ce7df4dc3c..5ce8e281ce 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
@@ -231,6 +231,7 @@ public class RangeSet<E extends Comparable<? super E>> 
extends AbstractSet<Range
      * if we want to support open intervals. All binary searches in this class 
will need to
      * take in account the possibility for duplicated values.</div>
      */
+    @SuppressWarnings("serial")         // Not statically typed as 
Serializable.
     private Object array;
 
     /**
@@ -1518,6 +1519,8 @@ public class RangeSet<E extends Comparable<? super E>> 
extends AbstractSet<Range
     /**
      * A {@link RangeSet} implementation for {@link NumberRange} elements.
      *
+     * @param <E>  the type of range elements.
+     *
      * @see RangeSet#create(Class, boolean, boolean)
      */
     private static final class Numeric<E extends Number & Comparable<? super 
E>> extends RangeSet<E> {
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/package-info.java
 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/package-info.java
index bd832504ac..45f8b5c295 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/util/resources/package-info.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/util/resources/package-info.java
@@ -47,9 +47,9 @@
  * This avoid the unfortunate confusion documented in the warning section of 
{@link java.text.MessageFormat} javadoc.
  *
  * <h2>Usage</h2>
- * All {@link org.apache.sis.util.resources.IndexedResourceBundle} subclasses 
provide a
- * {@code getResources(Locale)} static method. It can be used for fetching 
localized strings
- * as below:
+ * All {@link org.apache.sis.util.resources.IndexedResourceBundle} subclasses
+ * provide a {@code getResources(Locale)} static method.
+ * It can be used for fetching localized strings as below:
  *
  * {@preformat java
  *     String text = TheBundle.getResources(locale).getString(key, 
optionalArguments);
@@ -59,7 +59,7 @@
  * methods for fetching localized texts in the {@linkplain 
java.util.Locale#getDefault() system default locale}:
  *
  * {@preformat java
- *     text = TheBundle.format(key, optionalArguments); // Uses the default 
locale.
+ *     text = TheBundle.format(key, optionalArguments);         // Uses the 
default locale.
  * }
  *
  * If the locale is not known at method invocation time, {@code 
formatInternational(int, …)} static methods
@@ -67,7 +67,7 @@
  *
  * {@preformat java
  *     InternationalString i18n = TheBundle.formatInternational(key, 
optionalArguments);
- *     String text = i18n.toString(locale); // Localize now.
+ *     String text = i18n.toString(locale);                             // 
Localize now.
  * }
  *
  * If optional arguments are present, then the following types are handled in 
a special way
diff --git a/pom.xml b/pom.xml
index 6bf6abf1cf..7323337afd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -859,7 +859,7 @@
         <artifactId>maven-javadoc-plugin</artifactId>
         <version>3.4.1</version>
         <configuration>
-          <source>${maven.compiler.source}</source>             <!-- Enables 
javadoc to handle language constructs present in target JDK. -->
+          <source>16</source>                                   <!-- Enables 
javadoc to handle language constructs present in target JDK. -->
           <encoding>${project.build.sourceEncoding}</encoding>  <!-- Encoding 
of Java source file. -->
           <docencoding>${website.encoding}</docencoding>        <!-- Encoding 
of the generated HTML files. -->
           <charset>${website.encoding}</charset>                <!-- Encoding 
to declare in the HTML META tag. -->
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/AggregatedFeatureSet.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/AggregatedFeatureSet.java
index 5bfe71215c..856c6512c4 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/AggregatedFeatureSet.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/AggregatedFeatureSet.java
@@ -136,11 +136,12 @@ abstract class AggregatedFeatureSet extends 
AbstractFeatureSet {
     }
 
     /**
-     * Invoked the first time that {@link #getMetadata()} is invoked. The 
default implementation adds
-     * the information documented in {@link 
AbstractFeatureSet#createMetadata(MetadataBuilder)}, then
-     * adds the dependencies as lineages.
+     * Invoked in a synchronized block the first time that {@code 
getMetadata()} is invoked.
+     * The default implementation adds the information documented in the
+     * {@linkplain AbstractFeatureSet#createMetadata() parent class},
+     * then adds the dependencies as lineages.
      *
-     * @param  metadata  the builder where to set metadata properties.
+     * @return the newly created metadata, or {@code null} if unknown.
      * @throws DataStoreException if an error occurred while reading metadata 
from the data stores.
      */
     @Override
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/CoverageAggregator.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/CoverageAggregator.java
index 2d371c5676..4711bd2c3a 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/CoverageAggregator.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/aggregate/CoverageAggregator.java
@@ -36,6 +36,7 @@ import org.apache.sis.storage.DataStoreContentException;
 import org.apache.sis.storage.GridCoverageResource;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.coverage.grid.GridCoverage;
+import org.apache.sis.coverage.SubspaceNotSpecifiedException;
 import org.apache.sis.util.collection.BackingStoreException;
 
 

Reply via email to