[sis] 02/03: Replace some
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 47e5b431413ce000a1d752da5d32097cca481629
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sun Jan 15 16:16:27 2023 +0100

    Replace some <div> by <h2> or <h4> headings.
    This is a change in javadoc formatting only.
---
 .../java/org/apache/sis/internal/gui/control/ColorCell.java  |  6 +++---
 .../main/java/org/apache/sis/metadata/AbstractMetadata.java  |  4 ++--
 .../java/org/apache/sis/metadata/StandardImplementation.java |  4 ++--
 .../main/java/org/apache/sis/metadata/TreeNodeChildren.java  |  4 ++--
 .../src/main/java/org/apache/sis/xml/MarshallerPool.java     |  4 ++--
 .../src/main/java/org/apache/sis/xml/NilObjectHandler.java   |  4 ++--
 .../src/main/java/org/apache/sis/xml/NilReason.java          |  4 ++--
 core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java  |  4 ++--
 .../main/java/org/apache/sis/geometry/AbstractEnvelope.java  |  4 ++--
 .../java/org/apache/sis/geometry/GeneralDirectPosition.java  |  6 +++---
 .../org/apache/sis/internal/referencing/DeprecatedCode.java  |  9 ++++-----
 .../org/apache/sis/internal/referencing/DeprecatedName.java  |  9 ++++-----
 .../sis/internal/referencing/provider/Geographic3Dto2D.java  |  6 +++---
 .../sis/internal/referencing/provider/VerticalOffset.java    |  6 +++---
 .../src/main/java/org/apache/sis/io/wkt/WKTDictionary.java   |  6 +++---
 .../java/org/apache/sis/parameter/ParameterValueList.java    |  6 +++---
 .../src/main/java/org/apache/sis/parameter/Verifier.java     |  4 ++--
 .../java/org/apache/sis/referencing/ImmutableIdentifier.java |  4 ++--
 .../apache/sis/referencing/crs/DefaultEngineeringCRS.java    |  4 ++--
 .../org/apache/sis/referencing/datum/DatumShiftGrid.java     |  6 +++---
 .../sis/referencing/factory/MultiAuthoritiesFactory.java     |  5 ++---
 .../apache/sis/referencing/factory/sql/EPSGCodeFinder.java   |  3 +--
 .../operation/builder/LinearTransformBuilder.java            |  6 +++---
 .../sis/referencing/operation/projection/Mercator.java       |  3 +--
 .../sis/referencing/operation/projection/Orthographic.java   |  4 ++--
 .../operation/transform/ConcatenatedTransform.java           |  4 ++--
 .../main/java/org/apache/sis/internal/jdk17/HexFormat.java   |  6 +++---
 .../src/main/java/org/apache/sis/math/Vector.java            | 10 ++++++----
 .../src/main/java/org/apache/sis/measure/UnitRegistry.java   |  6 +++---
 .../src/main/java/org/apache/sis/util/Locales.java           |  4 ++--
 .../src/main/java/org/apache/sis/util/collection/Cache.java  |  8 ++++----
 .../java/org/apache/sis/util/collection/CodeListSet.java     |  4 ++--
 .../org/apache/sis/util/collection/DefaultTreeTable.java     |  9 +++++----
 .../org/apache/sis/util/collection/FrequencySortedSet.java   |  6 +++---
 .../java/org/apache/sis/util/collection/TreeNodeList.java    |  4 ++--
 .../java/org/apache/sis/util/logging/MonolineFormatter.java  |  8 ++++----
 .../src/main/java/org/apache/sis/storage/geotiff/Reader.java |  6 +++---
 .../apache/sis/internal/storage/io/MemoryDataTransfer.java   |  4 ++--
 .../main/java/org/apache/sis/storage/AbstractResource.java   | 12 ++++++------
 .../java/org/apache/sis/test/storage/SubsampledImage.java    |  4 ++--
 40 files changed, 109 insertions(+), 111 deletions(-)

diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
index bccd53bd73..ccb8283410 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/internal/gui/control/ColorCell.java
@@ -263,12 +263,12 @@ final class ColorCell<S> extends TableCell<S,ColorRamp> 
implements EventHandler<
      * or because this cell is now used for a new {@code <S>} instance. This 
method is invoked when the
      * row value (of type {@code <S>}) is modified.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * this method should not invoke {@link #setGraphic(Node)} if the current 
graphic is a {@link ComboBoxBase}
+     * <h4>Implementation note</h4>
+     * This method should not invoke {@link #setGraphic(Node)} if the current 
graphic is a {@link ComboBoxBase}
      * (the parent of {@link ComboBox} and {@link ColorPicker}) because this 
method may be invoked at any time,
      * including during the execution of {@link #startEdit()} or {@link 
#commitEdit(Object)} methods.
      * Adding or removing {@link ComboBoxBase} in this method cause problems 
with focus system.
-     * In particular we must be sure to remove {@link ColorPicker} only after 
it has lost focus.</div>
+     * In particular we must be sure to remove {@link ColorPicker} only after 
it has lost focus.
      *
      * @param  colors  the new object to show as a color or gradient in this 
cell.
      * @param  empty   {@code true} if this method is invoked for creating an 
empty cell.
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
index dfbea66072..cea810698f 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/AbstractMetadata.java
@@ -308,10 +308,10 @@ public abstract class AbstractMetadata implements 
LenientComparable, Emptiable {
      * the {@link java.util.Set#hashCode()} one and ensures that the hash code 
value is
      * insensitive to the ordering of properties.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * This method does not cache the value because current implementation has 
no notification mechanism
      * for tracking changes in children properties. If this metadata is known 
to be immutable,
-     * then subclasses may consider caching the hash code value if performance 
is important.</div>
+     * then subclasses may consider caching the hash code value if performance 
is important.
      *
      * @see MetadataStandard#hashCode(Object)
      */
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
index c05c6d7d7e..33244739d1 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/StandardImplementation.java
@@ -60,12 +60,12 @@ final class StandardImplementation extends MetadataStandard 
{
     /**
      * Implementations for a given interface, computed when first needed then 
cached.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * In the particular case of {@code Class} keys, {@code IdentityHashMap} 
and {@code HashMap} have identical
      * behavior since {@code Class} is final and does not override the {@code 
equals(Object)} and {@code hashCode()}
      * methods. The {@code IdentityHashMap} Javadoc claims that it is faster 
than the regular {@code HashMap}.
      * But maybe the most interesting property is that it allocates less 
objects since {@code IdentityHashMap}
-     * implementation doesn't need the chain of objects created by {@code 
HashMap}.</div>
+     * implementation doesn't need the chain of objects created by {@code 
HashMap}.
      */
     private final transient Map<Class<?>,Class<?>> implementations;     // 
written by reflection on deserialization.
 
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java
index b2d06be34b..fb9bd58784 100644
--- 
a/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java
+++ 
b/core/sis-metadata/src/main/java/org/apache/sis/metadata/TreeNodeChildren.java
@@ -226,9 +226,9 @@ final class TreeNodeChildren extends 
AbstractCollection<TreeTable.Node> {
      * Returns {@code true} if the type at the given index is a collection or 
a map.
      * The given {@code index} is relative to the {@link #accessor} indexing, 
<strong>not</strong> to this collection.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * We do not test {@code (value instanceof Collection)} because the value 
could be any user's implementation.
-     * Nothing prevent users from implementing the collection interface even 
for singleton elements if they wish.</div>
+     * Nothing prevent users from implementing the collection interface even 
for singleton elements if they wish.
      *
      * @param  index  the index in the accessor (<em>not</em> the index in 
this collection).
      * @return {@code true} if the value at the given index is a collection.
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java 
b/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java
index 4d43c14c74..a6867b5a2b 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/MarshallerPool.java
@@ -93,11 +93,11 @@ public class MarshallerPool {
      * The provider of {@code AdapterReplacement} instances.
      * <strong>Every usage of this service loader must be 
synchronized.</strong>
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * Each {@code MarshallerPool} has its own service loader instance rather 
than using a system-wide instance
      * because the {@link ClassLoader} used by the service loader is the 
<cite>context class loader</cite>,
      * which depends on the thread that created the pool. So two pools in two 
different applications could have
-     * two different set of replacements.</div>
+     * two different set of replacements.
      */
     private final ServiceLoader<AdapterReplacement> replacements;
 
diff --git 
a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObjectHandler.java 
b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObjectHandler.java
index 673d7991c1..9a8711b459 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObjectHandler.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/NilObjectHandler.java
@@ -43,9 +43,9 @@ import org.apache.sis.internal.jaxb.ModifiableIdentifierMap;
  * definition were found for a XML element identified by {@code xlink} or 
{@code uuidref}
  * attributes.
  *
- * <div class="note"><b>Implementation note:</b>
+ * <h4>Implementation note</h4>
  * The same handler could be used for every proxy having the same XLink.
- * For now, it doesn't seem worth to cache the handlers.</div>
+ * For now, it doesn't seem worth to cache the handlers.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.3
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 9ac9b410da..20fb04e72e 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
@@ -436,11 +436,11 @@ public final class NilReason implements Serializable {
      * <p><b>Reminder:</b> If more special cases are added, do not forget to 
update the {@link #mayBeNil(Object)}
      * method and to update the {@link #createNilObject(Class)} and {@link 
#forObject(Object)} javadoc.</p>
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * There is no special case for {@link Character} because Java {@code 
char}s are not really full Unicode characters.
      * They are parts of UTF-16 encoding instead. If there is a need to 
represent a single Unicode character, we should
      * probably still use a {@link String} where the string contain 1 or 2 
Java characters. This may also facilitate the
-     * encoding in the XML files, since many files use another encoding than 
UTF-16 anyway.</div>
+     * encoding in the XML files, since many files use another encoding than 
UTF-16 anyway.
      *
      * @throws IllegalArgumentException if the given type is not a supported 
type.
      */
diff --git a/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java 
b/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java
index acbef4e9ef..62710a5679 100644
--- a/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/xml/XML.java
@@ -403,11 +403,11 @@ public final class XML extends Static {
     /**
      * Returns the default (un)marshaller pool used by all methods in this 
class.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * Current implementation uses the double-check idiom. This is usually a 
deprecated practice
      * (the recommended alterative is to use static class initialization), but 
in this particular
      * case the field may be reset to {@code null} if modules are loaded or 
unloaded by a container,
-     * so static class initialization would be a little bit too rigid.</div>
+     * so static class initialization would be a little bit too rigid.
      */
     @SuppressWarnings("DoubleCheckedLocking")
     private static MarshallerPool getPool() throws JAXBException {
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
index 176be0fbf6..afd4ee9d8c 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/geometry/AbstractEnvelope.java
@@ -1117,9 +1117,9 @@ public abstract class AbstractEnvelope extends 
FormattableObject implements Enve
      * Returns {@code true} if the specified object is an envelope of the same 
class
      * with equals coordinates and {@linkplain #getCoordinateReferenceSystem() 
CRS}.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * This implementation requires that the provided {@code object} argument 
is of the same class than this envelope.
-     * We do not relax this rule since not every implementations in the SIS 
code base follow the same contract.</div>
+     * We do not relax this rule since not every implementations in the SIS 
code base follow the same contract.
      *
      * @param  object  the object to compare with this envelope.
      * @return {@code true} if the given object is equal to this envelope.
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 bfefda5417..06cdc409b0 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
@@ -110,10 +110,10 @@ public class GeneralDirectPosition extends 
AbstractDirectPosition implements Ser
      * This constructor assigns the given array directly (without clone) to 
the {@link #coordinates} field.
      * Consequently, callers shall not recycle the same array for creating 
many instances.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * the array is not cloned because this is usually not needed, especially 
in the context of variable
+     * <h4>Implementation notes</h4>
+     * The array is not cloned because this is usually not needed, especially 
in the context of variable
      * argument lengths since the array is often created implicitly. 
Furthermore, the {@link #coordinates}
-     * field is public, so cloning the array would not protect the state of 
this object anyway.</div>
+     * field is public, so cloning the array would not protect the state of 
this object anyway.
      *
      * <p><b>Caution:</b> if only one number is specified, make sure that the 
number type is {@code double},
      * {@code float} or {@code long} otherwise the {@link 
#GeneralDirectPosition(int)} constructor would be
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
index 1d3fa31deb..ead2748c28 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedCode.java
@@ -26,11 +26,10 @@ import org.apache.sis.util.Deprecable;
  * An identifier which should not be used anymore.
  * This is used mostly for deprecated EPSG codes.
  *
- * <div class="note"><b>Implementation note:</b>
- * this class opportunistically recycles the {@linkplain #getDescription() 
description} property into a
- * {@linkplain #getRemarks() remarks} property. This is a lazy way to inherit 
{@link #equals(Object)}
- * and {@link #hashCode()} implementations without adding code in this class 
for taking in account a
- * new field.</div>
+ * <h2>Implementation note</h2>
+ * This class opportunistically recycles the {@linkplain #getDescription() 
description} property into a
+ * {@linkplain #getRemarks() remarks} property. This is a lazy way to inherit 
{@link #equals(Object)} and
+ * {@link #hashCode()} implementations without adding code in this class for 
taking in account a new field.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.7
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedName.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedName.java
index ba55c48ec1..d95b4bf7f0 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedName.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/DeprecatedName.java
@@ -26,11 +26,10 @@ import org.apache.sis.util.Deprecable;
  * A deprecated name.
  * This is used mostly for names which were used in legacy versions of the 
EPSG database.
  *
- * <div class="note"><b>Implementation note:</b>
- * this class opportunistically recycles the {@linkplain #getDescription() 
description} property into a
- * {@linkplain #getRemarks() remarks} property. This is a lazy way to inherit 
{@link #equals(Object)}
- * and {@link #hashCode()} implementations without adding code in this class 
for taking in account a
- * new field.</div>
+ * <h2>Implementation note</h2>
+ * This class opportunistically recycles the {@linkplain #getDescription() 
description} property into a
+ * {@linkplain #getRemarks() remarks} property. This is a lazy way to inherit 
{@link #equals(Object)} and
+ * {@link #hashCode()} implementations without adding code in this class for 
taking in account a new field.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.7
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3Dto2D.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3Dto2D.java
index beb18aada1..2e17b121e5 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3Dto2D.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/Geographic3Dto2D.java
@@ -106,15 +106,15 @@ public final class Geographic3Dto2D extends 
GeographicRedimension {
     /**
      * Returns the transform.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * creating a transform that drop a dimension is trivial. We even have a 
helper method for that:
+     * <h4>Implementation note</h4>
+     * Creating a transform that drop a dimension is trivial. We even have a 
helper method for that:
      * {@link Matrices#createDimensionSelect}  The difficulty is that the 
inverse of that transform
      * will set the height to NaN, while we want zero. The trick is to first 
create the transform for
      * the inverse transform with the zero that we want, then get the inverse 
of that inverse transform.
      * The transform that we get will remember where it come from (its 
inverse).
      *
      * <p>This work with SIS implementation, but is not guaranteed to work 
with other implementations.
-     * For that reason, this method does not use the given {@code 
factory}.</p></div>
+     * For that reason, this method does not use the given {@code factory}.</p>
      *
      * @param  factory  ignored (can be null).
      * @param  values   ignored.
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/VerticalOffset.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/VerticalOffset.java
index 511e330232..be98796b7f 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/VerticalOffset.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/VerticalOffset.java
@@ -99,11 +99,11 @@ public final class VerticalOffset extends GeodeticOperation 
{
      * this method detects that the target axis is oriented toward down. This 
orientation is detected by a
      * negative sign for the <var>m₀₀</var> coefficient in the given 2×2 
affine transform matrix.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * for now we define this method as a static one because it is the only 
special case handled by
+     * <h4>Implementation note</h4>
+     * For now we define this method as a static one because it is the only 
special case handled by
      * {@code DefaultMathTransformFactory}. But if there is more special cases 
in a future SIS version,
      * then we should make this method non-static and declare an overrideable 
{@code postCreate} method
-     * in {@link AbstractProvider} instead.</div>
+     * in {@link AbstractProvider} instead.
      *
      * @param  parameterized  the transform created by {@code 
createMathTransform(…)}.
      * @param  after  the matrix for the operation to be concatenated after 
{@code parameterized}.
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
index 421633791a..17b4eb2193 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/io/wkt/WKTDictionary.java
@@ -172,11 +172,11 @@ public class WKTDictionary extends 
GeodeticAuthorityFactory {
      * All {@link #parser} usages after {@code WKTDictionary} construction 
shall be synchronized by
      * the {@link ReadWriteLock#writeLock()}.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * we manage the locks ourselves instead of using a {@link 
java.util.concurrent.ConcurrentHashMap}
+     * <h4>Implementation note</h4>
+     * We manage the locks ourselves instead of using a {@link 
java.util.concurrent.ConcurrentHashMap}
      * because if a {@link #definitions} value needs to be computed, then we 
need to block all other
      * threads anyway since {@link #parser} is not thread-safe. Consequently, 
the high concurrency
-     * capability provided by {@code ConcurrentHashMap} does not help us in 
this case.</div>
+     * capability provided by {@code ConcurrentHashMap} does not help us in 
this case.
      */
     private final ReadWriteLock lock;
 
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 de4c7735b5..b7abe02409 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
@@ -43,11 +43,11 @@ import org.apache.sis.internal.referencing.Resources;
  * This class performs checks on the parameter values to be added or removed.
  * This implementation supports {@code set(…)}, {@code add(…)} and {@code 
remove(…)} operations.
  *
- * <div class="note"><b>Implementation note:</b>
- * this class reproduces some {@link java.util.ArrayList} functionalities.
+ * <h4>Implementation note</h4>
+ * This class reproduces some {@link java.util.ArrayList} functionalities.
  * However, we do <strong>not</strong> extend {@code ArrayList} because we 
really need the default method
  * implementations provided by {@code AbstractList} — the optimizations 
performed by {@code ArrayList}
- * are not suitable here.</div>
+ * are not suitable here.
  *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @version 0.4
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java 
b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java
index d611cfd86e..904211486c 100644
--- a/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/parameter/Verifier.java
@@ -284,10 +284,10 @@ final class Verifier {
      * Same as {@link #ensureValidValue(Class, Set, Range, Object)}, used as a 
fallback when
      * the descriptor is not an instance of {@link DefaultParameterDescriptor}.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * At the difference of {@code ensureValidValue(…, Range, …)}, this method 
does not need to verify array elements
      * because the type returned by {@link 
ParameterDescriptor#getMinimumValue()} and {@code getMaximumValue()}
-     * methods (namely {@code Comparable<T>}) does not allow usage with 
arrays.</div>
+     * methods (namely {@code Comparable<T>}) does not allow usage with arrays.
      *
      * @param convertedValue  the value <em>converted to the units specified 
by the descriptor</em>.
      *        This is not necessarily the user-provided value.
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 1038861c67..bbb7b027fc 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
@@ -535,9 +535,9 @@ public class ImmutableIdentifier extends FormattableObject 
implements Identifier
     /**
      * Appends the given code or version number as an integer if possible, or 
as a text otherwise.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * ISO 19162 specifies "number or text". In Apache SIS, we restrict the 
numbers to integers
-     * because handling version numbers like "8.2" as floating point numbers 
can be confusing.</div>
+     * because handling version numbers like "8.2" as floating point numbers 
can be confusing.
      */
     private static void appendCode(final Formatter formatter, final String 
text) {
         if (text != null) {
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 ff0d0f48e1..fae6508915 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
@@ -293,7 +293,7 @@ public class DefaultEngineeringCRS extends AbstractCRS 
implements EngineeringCRS
      * Used by JAXB only (invoked by reflection).
      * Only one of {@code getFooCS()} methods can return a non-null value.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * The usual way to handle {@code <xs:choice>} with JAXB is to annotate a 
single method like below:
      *
      * {@snippet lang="java" :
@@ -313,7 +313,7 @@ public class DefaultEngineeringCRS extends AbstractCRS 
implements EngineeringCRS
      * }
      *
      * However, our attempts to apply this approach worked for {@code 
DefaultParameterValue} but not for this class:
-     * for an unknown reason, the unmarshalled CS object is empty.</div>
+     * for an unknown reason, the unmarshalled CS object is empty.
      *
      * @see <a href="http://issues.apache.org/jira/browse/SIS-166";>SIS-166</a>
      */
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 f5b5f96883..c5f66c795f 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
@@ -859,9 +859,9 @@ public abstract class DatumShiftGrid<C extends Quantity<C>, 
T extends Quantity<T
      * The given {@code parameters} must have the descriptor returned by 
{@link #getParameterDescriptors()}.
      * The matrices, tensors or file names are stored in the given {@code 
parameters} instance.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * this method is invoked by {@link 
org.apache.sis.referencing.operation.transform.InterpolatedTransform}
-     * and other transforms for initializing the values of their parameter 
group.</div>
+     * <h4>Implementation note</h4>
+     * This method is invoked by {@link 
org.apache.sis.referencing.operation.transform.InterpolatedTransform}
+     * and other transforms for initializing the values of their parameter 
group.
      *
      * @param  parameters  the parameter group where to set the values.
      *
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/MultiAuthoritiesFactory.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/MultiAuthoritiesFactory.java
index d0ad0629dd..f6f47c917c 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/MultiAuthoritiesFactory.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/MultiAuthoritiesFactory.java
@@ -489,9 +489,8 @@ public class MultiAuthoritiesFactory extends 
GeodeticAuthorityFactory implements
     /**
      * Returns the code spaces of all factories given to the constructor.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * the current implementation may be relatively costly since it implies 
instantiation of all factories.
-     * </div>
+     * <h4>Performance note</h4>
+     * The current implementation may be relatively costly because it implies 
instantiation of all factories.
      *
      * @return the code spaces of all factories.
      */
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGCodeFinder.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGCodeFinder.java
index 94f045c0fc..6d664c600e 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGCodeFinder.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/factory/sql/EPSGCodeFinder.java
@@ -110,14 +110,13 @@ final class EPSGCodeFinder extends IdentifiedObjectFinder 
{
      * Returns a description of the condition to put in a {@code WHERE} clause 
for an object having
      * the given dependency.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * The {@code super.find(…)} method performs a check (not documented in 
public API) for detecting
      * when it is invoked recursively, which is the case here. Consequently, 
the {@code super.find(…)}
      * behavior below is slightly different than usual: since invoked 
recursively, {@code super.find(…)}
      * checks the cache of the {@link ConcurrentAuthorityFactory} wrapper. If 
found, the dependency will
      * also be stored in the cache. This is desirable because this method may 
be invoked (indirectly) in
      * a loop for many CRS objects sharing the same {@link CoordinateSystem} 
or {@link Datum} dependencies.
-     * </div>
      *
      * @param  column      column in the SQL query containing EPSG codes of 
dependency.
      * @param  type        GeoAPI interface implemented by the dependency to 
search.
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 51324255bb..2352825171 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
@@ -128,11 +128,11 @@ public class LinearTransformBuilder extends 
TransformBuilder {
      * Example: {x[], y[], z[]}.
      * This is {@code null} if not yet specified.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * we could use a flat array with (x₀, y₀), (x₁, y₁), (x₂, y₂), 
<i>etc.</i> coordinate tuples instead.
+     * <h4>Implementation note</h4>
+     * We could use a flat array with (x₀, y₀), (x₁, y₁), (x₂, y₂), 
<i>etc.</i> coordinate tuples instead.
      * Such flat array would be more convenient for some coordinate 
conversions with {@link MathTransform}.
      * But using array of arrays is more convenient for other calculations 
working on one dimension at time,
-     * make data more local for CPU, and also allows handling of more 
points.</div>
+     * make data more local for CPU, and also allows handling of more points.
      */
     private double[][] targets;
 
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 3e0a60247f..add9caf444 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
@@ -492,7 +492,7 @@ subst:  if (variant.spherical || (eccentricity == 0 && 
getClass() == Mercator.cl
     /**
      * Provides the transform equations for the spherical case of the Mercator 
projection.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * this class contains an explicit check for latitude values at a pole. If 
floating point arithmetic had infinite
      * precision, such checks would not be necessary since the formulas lead 
naturally to infinite values at poles,
      * which is the correct answer. In practice the infinite value emerges by 
itself at only one pole, and the other
@@ -506,7 +506,6 @@ subst:  if (variant.spherical || (eccentricity == 0 && 
getClass() == Mercator.cl
      *       other values we could let the math do their "natural" work.</li>
      *   <li>For φ = -π/2 our arithmetic already produces negative 
infinity.</li>
      * </ul>
-     * </div>
      *
      * @author  Martin Desruisseaux (MPO, IRD, Geomatys)
      * @author  Rueben Schulz (UBC)
diff --git 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
index 459fb5bc87..44806e3b26 100644
--- 
a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
+++ 
b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/Orthographic.java
@@ -166,10 +166,10 @@ public class Orthographic extends NormalizedProjection {
      * Implementation of {@link #transform(double[], int, double[], int, 
boolean)}
      * with possibility to recycle an existing matrix instance.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * in other map projections, we use a different class for ellipsoidal 
formulas.
      * But the orthographic projection is a bit different; for this one it is 
more
-     * convenient to use {@code if} statements.</div>
+     * convenient to use {@code if} statements.
      *
      * @param  derivative  where to store the Jacobian matrix, or {@code null} 
if none.
      *         If this matrix is an {@link Inverter} instance, we take that as 
a flag
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 f1f0c1482c..f051f35c9c 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
@@ -130,10 +130,10 @@ class ConcatenatedTransform extends AbstractMathTransform 
implements Serializabl
      * Likewise if the concatenation result works with one-dimensional input 
and output points,
      * then the returned transform will implement {@link MathTransform1D}.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * {@code ConcatenatedTransform} implementations are available in two 
versions: direct and non-direct.
      * The "non-direct" versions use an intermediate buffer when performing 
transformations; they are slower
-     * and consume more memory. They are used only as a fallback when a 
"direct" version cannot be created.</div>
+     * and consume more memory. They are used only as a fallback when a 
"direct" version cannot be created.
      *
      * @param  tr1      the first math transform.
      * @param  tr2      the second math transform.
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/internal/jdk17/HexFormat.java 
b/core/sis-utility/src/main/java/org/apache/sis/internal/jdk17/HexFormat.java
index c2d878a977..7b34e540c5 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/internal/jdk17/HexFormat.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/internal/jdk17/HexFormat.java
@@ -59,9 +59,9 @@ public final class HexFormat {
      * Returns the numerical value of the given hexadecimal digit.
      * The hexadecimal digit can be the decimal digits 0 to 9, or the letters 
A to F ignoring case.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * we do not use {@link Character#digit(char, int)} because that method 
handled a large
-     * range of Unicode characters, which is a wider scope than what is 
intended here.</div>
+     * <h4>Implementation note</h4>
+     * We do not use {@link Character#digit(char, int)} because that method 
handled a large
+     * range of Unicode characters, which is a wider scope than what is 
intended here.
      *
      * @param  c  the hexadecimal digit.
      * @throws NumberFormatException if the given character is not a 
hexadecimal digit.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java 
b/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
index d53a421211..923184a6c0 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/math/Vector.java
@@ -874,9 +874,10 @@ search:     for (;;) {
      * The returned view will contain the values from index {@code lower} 
inclusive to
      * {@code upper} exclusive.
      *
-     * <div class="note"><b>Implementation note:</b> this method delegates its 
work
+     * <h4>Implementation note</h4>
+     * This method delegates its work
      * <code>{@linkplain #subSampling(int,int,int) subSampling}(lower, 1, 
upper - lower)</code>.
-     * This method is declared final in order to force subclasses to override 
{@code subSampling(…)} instead.</div>
+     * This method is declared final in order to force subclasses to override 
{@code subSampling(…)} instead.
      *
      * @param  lower  index of the first value to be included in the returned 
view.
      * @param  upper  index after the last value to be included in the 
returned view.
@@ -1342,9 +1343,10 @@ search:     for (;;) {
     /**
      * Returns a view which contains the values of this vector in reverse 
order.
      *
-     * <div class="note"><b>Implementation note:</b> this method delegates its 
work
+     * <h4>Implementation note</h4>
+     * This method delegates its work
      * to <code>{@linkplain #subSampling(int,int,int) subSampling}(size-1, -1, 
{@linkplain #size() size})</code>.
-     * This method is declared final in order to force subclasses to override 
{@code subSampling(…)} instead.</div>
+     * This method is declared final in order to force subclasses to override 
{@code subSampling(…)} instead.
      *
      * @return the vector values in reverse order.
      */
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java 
b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
index 1fed3d861f..9165c05d6a 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/measure/UnitRegistry.java
@@ -109,10 +109,10 @@ final class UnitRegistry implements SystemOfUnits, 
Serializable {
      * Values are stored by weak references and garbage collected when no 
longer used.
      * Key and value types are the same than the one described in {@link 
#HARD_CODED}.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * we separate hard-coded values from user-defined values because the 
amount of hard-coded values is relatively
+     * <h4>Implementation note</h4>
+     * We separate hard-coded values from user-defined values because the 
amount of hard-coded values is relatively
      * large, using weak references for them is useless, and most applications 
will not define any custom values.
-     * This map will typically stay empty.</div>
+     * This map will typically stay empty.
      */
     private static final WeakValueHashMap<Object,Object> USER_DEFINED = new 
WeakValueHashMap<>(Object.class);
 
diff --git a/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java
index cea1eeab26..e5024abba5 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/Locales.java
@@ -96,11 +96,11 @@ public final class Locales extends Static {
      * for compactness (conversions is done by {@link #toNumber(String, 
short)}) and for avoiding references
      * to {@code String} instances.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * OpenJDK 8 implementation computes the 3-letters codes on-the-fly 
instead of holding references
      * to pre-existing strings. If we were holding string references here, we 
would prevent the garbage
      * collector to collect the strings for all languages and countries. This 
would probably be a waste
-     * of resources.</div>
+     * of resources.
      */
     private static final short[] ISO3, ISO2;
     static {
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java 
b/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java
index c0847a4781..40daebdb49 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/util/collection/Cache.java
@@ -1046,10 +1046,10 @@ public class Cache<K,V> extends AbstractMap<K,V> 
implements ConcurrentMap<K,V> {
         /**
          * Do nothing (except checking for programming error), since we don't 
hold any lock.
          *
-         * <div class="note"><b>Implementation note:</b>
+         * <h4>Implementation note</h4>
          * An alternative would have been to store the result in the map 
anyway.
          * But doing so is unsafe because we have no lock; we have no 
guarantee that nothing
-         * has happened in another thread between {@code peek} and {@code 
putAndUnlock}.</div>
+         * has happened in another thread between {@code peek} and {@code 
putAndUnlock}.
          */
         @Override
         public void putAndUnlock(final V result) throws IllegalStateException {
@@ -1161,10 +1161,10 @@ public class Cache<K,V> extends AbstractMap<K,V> 
implements ConcurrentMap<K,V> {
             /**
              * Do nothing (except checking for programming error), since we 
don't hold any lock.
              *
-             * <div class="note"><b>Implementation note:</b>
+             * <h4>Implementation note</h4>
              * An alternative would have been to store the result in the map 
anyway.
              * But doing so is unsafe because we have no lock; we have no 
guarantee that nothing
-             * has happened in another thread between {@code peek} and {@code 
putAndUnlock}.</div>
+             * has happened in another thread between {@code peek} and {@code 
putAndUnlock}.
              */
             @Override
             public void putAndUnlock(final V result) throws 
IllegalStateException {
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/collection/CodeListSet.java
 
b/core/sis-utility/src/main/java/org/apache/sis/util/collection/CodeListSet.java
index 43aa408a9f..f8e4f731cf 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/util/collection/CodeListSet.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/util/collection/CodeListSet.java
@@ -91,11 +91,11 @@ public class CodeListSet<E extends CodeList<E>> extends 
AbstractSet<E>
      * if none. This is very rarely needed, but we need this field in case a 
code list has
      * more than 64 elements.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * The standard {@link java.util.EnumSet} class uses different 
implementations depending on whether
      * the enumeration contains more or less than 64 elements. We cannot apply 
the same strategy for
      * {@code CodeListSet}, because new code list elements can be created at 
runtime. Consequently, this
-     * implementation needs to be able to growth its capacity.</div>
+     * implementation needs to be able to growth its capacity.
      */
     private BitSet supplementary;
 
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 0059575199..f46178efd1 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
@@ -97,10 +97,10 @@ public class DefaultTreeTable implements TreeTable, 
Cloneable, Serializable {
      * implementation for storing values in a single flat array. After 
creation, this
      * map shall be read-only since many {@code Node} instances may share it.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * This field and the {@link #columns} field could be computed from each 
other.
      * But we serialize this field anyway because children nodes will 
typically hold
-     * a reference to that map, and we want to preserve the references 
tree.</div>
+     * a reference to that map, and we want to preserve the references tree.
      *
      * @see DefaultTreeTable.Node#columnIndices
      */
@@ -684,12 +684,13 @@ public class DefaultTreeTable implements TreeTable, 
Cloneable, Serializable {
          * parent}. This method can be used for determining if two branches of 
a same tree or of two
          * different trees are identical.
          *
-         * <div class="note"><b>Implementation note:</b> This method ignores 
the parent because:
+         * <h4>Implementation note</h4>
+         * This method ignores the parent because:
          * <ul>
          *   <li>When comparing the children recursively, comparing the 
parents would cause infinite recursivity.</li>
          *   <li>For consistency with the {@link #clone()} method, which 
cannot clone the parent.</li>
          *   <li>For making possible to compare branches instead of only whole 
trees.</li>
-         * </ul></div>
+         * </ul>
          *
          * @param  other  the object to compare with this node.
          * @return {@code true} if the two objects are equal, ignoring the 
parent node.
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 fae1cbd41d..4e8a86aaa0 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
@@ -71,13 +71,13 @@ public class FrequencySortedSet<E> extends AbstractSet<E> 
implements SortedSet<E
      * The intent is to store negative numbers in the {@link #count} map if 
this {@code FrequencySortedSet}
      * has been created for reverse order.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * we could have used {@code +1} and {@code -1} for the usual and reverse 
order respectively, and store the
+     * <h4>Implementation note</h4>
+     * We could have used {@code +1} and {@code -1} for the usual and reverse 
order respectively, and store the
      * multiplication result {@code n * order} in the {@link #count} map. We 
rather use XOR for two reasons:
      * first, XOR is a simpler operation for the CPU than multiplication. 
Second, XOR guarantees us that all
      * negative numbers can be made positive in {@link #frequencies()}, by 
applying again {@code n ^ order}.
      * By contrast, the multiplication approach (or just the {@code -n} 
negation) would fail to convert
-     * {@link Integer#MIN_VALUE}.</div>
+     * {@link Integer#MIN_VALUE}.
      */
     private final int order;
 
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 d9821689a2..d10b6fadbe 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
@@ -52,10 +52,10 @@ import org.apache.sis.util.resources.Errors;
  *       to {@code TreeNodeList} (we need the slower path implemented in 
{@code AbstractList}).</li>
  * </ul>
  *
- * <div class="note"><b>Implementation note:</b>
+ * <h3>Note on serialization</h3>
  * Being serializable may seem contradictory with the non-cloneable 
requirement.
  * But serializing {@code TreeNodeList} will also serialize the parent, thus
- * creating new copy on deserialization. So the parents should not be 
mixed.</div>
+ * creating new copy on deserialization. So the parents should not be mixed.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 0.3
diff --git 
a/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java
 
b/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java
index 1b13f53304..7e0cc6056d 100644
--- 
a/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java
+++ 
b/core/sis-utility/src/main/java/org/apache/sis/util/logging/MonolineFormatter.java
@@ -970,9 +970,9 @@ loop:   for (int i=0; ; i++) {
      *       root logger.</li>
      * </ul>
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Limitations</h4>
      * The current implementation does not check for duplicated {@code 
ConsoleHandler} instances,
-     * and does not check if any child logger has a {@code 
ConsoleHandler}.</div>
+     * and does not check if any child logger has a {@code ConsoleHandler}.
      *
      * @return the new or existing {@code MonolineFormatter}. The formatter 
output can be configured
      *         using the {@link #setTimeFormat(String)} and {@link 
#setSourceFormat(String)} methods.
@@ -1006,9 +1006,9 @@ loop:   for (int i=0; ; i++) {
      *     </ul></li>
      * </ul>
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Limitations</h4>
      * The current implementation does not check for duplicated {@code 
ConsoleHandler} instances,
-     * and does not check if any child logger has a {@code 
ConsoleHandler}.</div>
+     * and does not check if any child logger has a {@code ConsoleHandler}.
      *
      * <h4>Specifying a log level</h4>
      * This method can opportunistically set the handler level. If the given 
level is non-null,
diff --git 
a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java 
b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
index 9ab1b56c44..6cee41a8b5 100644
--- 
a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
+++ 
b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/Reader.java
@@ -114,9 +114,9 @@ final class Reader extends GeoTIFF {
      * Entries having a value that cannot be read immediately, but instead 
have a pointer
      * to a value stored elsewhere in the file. Those values will be read only 
when needed.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * we use a {@code LinkedList} because we will perform frequent additions 
and removals,
-     * but no random access.</div>
+     * <h4>Implementation note</h4>
+     * We use a {@code LinkedList} because we will perform frequent additions 
and removals,
+     * but no random access.
      */
     private final LinkedList<DeferredEntry> deferredEntries = new 
LinkedList<>();
 
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/MemoryDataTransfer.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/MemoryDataTransfer.java
index 7aa0181d18..f266da4db1 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/MemoryDataTransfer.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/io/MemoryDataTransfer.java
@@ -34,11 +34,11 @@ import org.apache.sis.util.Classes;
 /**
  * A {@code DataTransfer} with all data in the given buffer, without channel.
  *
- * <div class="note"><b>Implementation note:</b>
+ * <h4>Implementation note</h4>
  * This class implements also an empty {@link ReadableByteChannel} as safety. 
When using {@link ChannelDataInput}
  * without channel, only an existing {@code Buffer} pre-filled with the data 
should be used. If we have a bug in
  * our reading process, the empty channel will cause an {@link 
java.io.EOFException} to be thrown instead of a
- * {@link NullPointerException}.</div>
+ * {@link NullPointerException}.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.1
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
index 51a9cea6bb..1bbc59468f 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
@@ -103,9 +103,9 @@ public abstract class AbstractResource implements Resource {
      * The default implementation returns an empty value.
      * Subclasses are strongly encouraged to override if they can provide a 
value.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * the default implementation of {@link #createMetadata()} uses this 
identifier for initializing
-     * the {@code metadata/identificationInfo/citation/title} property.</div>
+     * <h4>Relationship with metadata</h4>
+     * The default implementation of {@link #createMetadata()} uses this 
identifier for initializing
+     * the {@code metadata/identificationInfo/citation/title} property.
      */
     @Override
     public Optional<GenericName> getIdentifier() throws DataStoreException {
@@ -117,9 +117,9 @@ public abstract class AbstractResource implements Resource {
      * of resource such as {@link FeatureSet}. But the method is provided in 
this base class for convenience.
      * The default implementation gives an empty value.
      *
-     * <div class="note"><b>Implementation note:</b>
-     * the default implementation of {@link #createMetadata()} uses this 
identifier for initializing
-     * the {@code metadata/identificationInfo/extent/geographicElement} 
property.</div>
+     * <h4>Implementation note</h4>
+     * The default implementation of {@link #createMetadata()} uses this 
identifier for initializing
+     * the {@code metadata/identificationInfo/extent/geographicElement} 
property.
      *
      * @return the spatiotemporal resource extent.
      * @throws DataStoreException if an error occurred while reading or 
computing the envelope.
diff --git 
a/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
 
b/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
index ca9d1b74fc..de18dd8de0 100644
--- 
a/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
+++ 
b/storage/sis-storage/src/test/java/org/apache/sis/test/storage/SubsampledImage.java
@@ -241,13 +241,13 @@ final class SubsampledImage extends PlanarImage {
      * Computes {@code (coordinate - offset) / subsampling} rounded toward 0.
      * The subsampling offset is assumed 0 in current version.
      *
-     * <div class="note"><b>Implementation note:</b>
+     * <h4>Implementation note</h4>
      * in principle we should subtract the <var>subsampling offset</var>. 
However, that offset is
      * zero in the context of {@link CoverageReadConsistency} test, because 
coordinates (0,0) of
      * {@linkplain #source} image is the first pixel in the Area Of Interest 
specified by user,
      * so there are no more offsets at this stage. Note that we are talking 
about offset in image
      * coordinate system, not to be confused with offset relative to the data 
bank
-     * (given to the {@link SampleModel} at construction time).</div>
+     * (given to the {@link SampleModel} at construction time).
      */
     private static int divInclusive(final int coordinate, final int 
subsampling) {
         return floorDiv(coordinate, subsampling);

Reply via email to