You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2021/12/30 05:24:41 UTC
[sis] 01/02: Layout TIFF "image description" on a single line.
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 02e2210684c3b41ea2b5da7730bc88929e21de84
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Wed Dec 29 18:01:47 2021 +0100
Layout TIFF "image description" on a single line.
---
.../java/org/apache/sis/internal/util/Strings.java | 28 +++++++++++++++++++++-
.../org/apache/sis/internal/util/package-info.java | 2 +-
.../sis/storage/geotiff/ImageFileDirectory.java | 3 ++-
3 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/Strings.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/Strings.java
index 925a528..a07b148 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/Strings.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/Strings.java
@@ -21,6 +21,7 @@ import java.util.Formatter;
import java.util.FormattableFlags;
import org.apache.sis.util.Static;
import org.apache.sis.util.Classes;
+import org.apache.sis.util.ArraysExt;
import org.apache.sis.util.Characters;
import org.apache.sis.util.CharSequences;
@@ -30,7 +31,7 @@ import org.apache.sis.util.CharSequences;
* Most of those methods are for {@link Object#toString()} implementations.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.2
* @since 0.3
* @module
*/
@@ -272,6 +273,31 @@ public final class Strings extends Static {
}
/**
+ * Concatenates a potentially multi-lines text to a single line.
+ * White spaces at the beginning and end of each line are removed.
+ *
+ * @param delimiter the separator to insert between lines.
+ * @param text the multi-lines text to convert to single line, or {@code null}.
+ * @return the the text on a single line text, or {@code null} if none.
+ */
+ public static String singleLine(final String delimiter, final CharSequence text) {
+ if (text != null) {
+ final CharSequence[] lines = CharSequences.splitOnEOL(text);
+ int count = 0;
+ for (int i=0; i<lines.length; i++) {
+ CharSequence line = CharSequences.trimWhitespaces(lines[i]);
+ if (line.length() != 0) lines[count++] = line; // TODO: use !line.isEmpty() with JDK15.
+ }
+ switch (count) {
+ case 0: break;
+ case 1: return lines[0].toString();
+ default: return String.join(delimiter, ArraysExt.resize(lines, count));
+ }
+ }
+ return null;
+ }
+
+ /**
* Returns a string representation of an instance of the given class having the given properties.
* This is a convenience method for implementation of {@link Object#toString()} methods that are
* used mostly for debugging purpose.
diff --git a/core/sis-utility/src/main/java/org/apache/sis/internal/util/package-info.java b/core/sis-utility/src/main/java/org/apache/sis/internal/util/package-info.java
index 54cd1b9..8d4ec29 100644
--- a/core/sis-utility/src/main/java/org/apache/sis/internal/util/package-info.java
+++ b/core/sis-utility/src/main/java/org/apache/sis/internal/util/package-info.java
@@ -30,7 +30,7 @@
* so some serialized classes still exist in this package.
*
* @author Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.2
* @since 0.3
* @module
*/
diff --git a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
index d4330d9..c7484ad 100644
--- a/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
+++ b/storage/sis-geotiff/src/main/java/org/apache/sis/storage/geotiff/ImageFileDirectory.java
@@ -46,6 +46,7 @@ import org.apache.sis.internal.coverage.j2d.ColorModelFactory;
import org.apache.sis.internal.coverage.j2d.SampleModelFactory;
import org.apache.sis.internal.util.UnmodifiableArrayList;
import org.apache.sis.internal.util.Numerics;
+import org.apache.sis.internal.util.Strings;
import org.apache.sis.metadata.iso.DefaultMetadata;
import org.apache.sis.storage.DataStoreException;
import org.apache.sis.storage.DataStoreContentException;
@@ -948,7 +949,7 @@ final class ImageFileDirectory extends DataCube {
*/
case Tags.ImageDescription: {
for (final String value : type.readString(input(), count, encoding())) {
- metadata.addTitle(value);
+ metadata.addTitle(Strings.singleLine(" ", value));
}
break;
}