You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by am...@apache.org on 2021/10/14 13:07:17 UTC

[sis] 02/02: doc(Core): improve SampleDimension apidoc regarding background value management.

This is an automated email from the ASF dual-hosted git repository.

amanin pushed a commit to branch feat/default-background
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 5fa1d3da4987fb774d279e2d360a72b33aa2d161
Author: Alexis Manin <al...@geomatys.com>
AuthorDate: Thu Oct 14 14:26:22 2021 +0200

    doc(Core): improve SampleDimension apidoc regarding background value management.
---
 .../org/apache/sis/coverage/SampleDimension.java   | 33 ++++++++++++++++++++++
 1 file changed, 33 insertions(+)

diff --git a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
index 551a3af..3d0b742 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/coverage/SampleDimension.java
@@ -73,6 +73,15 @@ import org.apache.sis.util.Debug;
  * but organized in a different way. The use of the same name may seem a risk, but those two types are typically
  * not used at the same time.
  *
+ * <h2>Definition of missing data</h2>
+ * An important aspect of sample dimensions is the {@link #getBackground() background value}. It defines how to
+ * initialize an empty canvas/matrix with respect to the sample definition. It is the value that defines the main/
+ * default "lack of data" (fill value, no-data, missing value) category.
+ *
+ * It is recommended to define it to enforce stable behavior upon associated data processing. As a last resort, sample
+ * dimension {@link Builder builder} will try to identify an acceptable default background value by searching for a
+ * qualitative category named <q>background</q>, <q>fill-value</q> or <q>no-data</q>.
+ *
  * @author  Martin Desruisseaux (IRD, Geomatys)
  * @version 1.1
  *
@@ -699,6 +708,9 @@ public class SampleDimension implements Serializable {
         /**
          * Adds a qualitative category for samples of the given boolean value.
          * The {@code true} value is represented by 1 and the {@code false} value is represented by 0.
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
@@ -716,6 +728,9 @@ public class SampleDimension implements Serializable {
         /**
          * Adds a qualitative category for samples of the given tiny (8 bits) integer value.
          * The argument is treated as a signed integer ({@value Byte#MIN_VALUE} to {@value Byte#MAX_VALUE}).
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
@@ -732,6 +747,9 @@ public class SampleDimension implements Serializable {
         /**
          * Adds a qualitative category for samples of the given short (16 bits) integer value.
          * The argument is treated as a signed integer ({@value Short#MIN_VALUE} to {@value Short#MAX_VALUE}).
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
@@ -748,6 +766,9 @@ public class SampleDimension implements Serializable {
         /**
          * Adds a qualitative category for samples of the given integer value.
          * The argument is treated as a signed integer ({@value Integer#MIN_VALUE} to {@value Integer#MAX_VALUE}).
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
@@ -766,6 +787,9 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * @param  name    the category name as a {@link String} or {@link InternationalString} object,
          *                 or {@code null} for a default "no data" name.
@@ -788,6 +812,9 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * @param  name    the category name as a {@link String} or {@link InternationalString} object,
          *                 or {@code null} for a default "no data" name.
@@ -810,6 +837,9 @@ public class SampleDimension implements Serializable {
          *
          * <div class="note"><b>Implementation note:</b>
          * this convenience method delegates to {@link #addQualitative(CharSequence, NumberRange)}.</div>
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * @param  name     the category name as a {@link String} or {@link InternationalString} object,
          *                  or {@code null} for a default "no data" name.
@@ -828,6 +858,9 @@ public class SampleDimension implements Serializable {
          * Adds a qualitative category for all samples in the specified range of values.
          * This is the most generic method for adding a qualitative category.
          * All other {@code addQualitative(name, …)} methods are convenience methods delegating their work to this method.
+         * <p>
+         * It is strongly recommended using {@link #setBackground(CharSequence, Number)} instead of this method when the
+         * aim is to define a main/primary fill value.
          *
          * @param  name     the category name as a {@link String} or {@link InternationalString} object,
          *                  or {@code null} for a default "no data" name.