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.