You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/12/01 17:56:11 UTC
[isis] branch master updated: ISIS-3300: adds utf8 specific shortcuts to Blob and Clob (Convenience)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new f88d301cad ISIS-3300: adds utf8 specific shortcuts to Blob and Clob (Convenience)
f88d301cad is described below
commit f88d301cadefbd222beba33b6de76928ff072a74
Author: Andi Huber <ah...@apache.org>
AuthorDate: Thu Dec 1 18:56:00 2022 +0100
ISIS-3300: adds utf8 specific shortcuts to Blob and Clob (Convenience)
---
.../org/apache/causeway/applib/value/Blob.java | 4 ++++
.../org/apache/causeway/applib/value/Clob.java | 28 +++++++++++++++++++++-
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java b/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java
index 794df8b10c..8779bdca27 100644
--- a/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java
+++ b/api/applib/src/main/java/org/apache/causeway/applib/value/Blob.java
@@ -189,6 +189,10 @@ public final class Blob implements NamedWithMimeType {
// -- UTILITIES
+ /**
+ * Converts to a {@link Clob}, using given {@link Charset}
+ * for the underlying byte[] to String conversion.
+ */
public Clob toClob(final @NonNull Charset charset) {
return new Clob(getName(), getMimeType(), _Strings.ofBytes(getBytes(), charset));
}
diff --git a/api/applib/src/main/java/org/apache/causeway/applib/value/Clob.java b/api/applib/src/main/java/org/apache/causeway/applib/value/Clob.java
index 5e7cb3f9d7..2861e84194 100644
--- a/api/applib/src/main/java/org/apache/causeway/applib/value/Clob.java
+++ b/api/applib/src/main/java/org/apache/causeway/applib/value/Clob.java
@@ -138,6 +138,14 @@ public final class Clob implements NamedWithMimeType {
});
}
+ /**
+ * Shortcut for {@link #tryRead(String, org.apache.causeway.applib.value.NamedWithMimeType.CommonMimeType, File, Charset)}
+ * using {@link StandardCharsets#UTF_8}.
+ */
+ public static Try<Clob> tryReadUtf8(final String name, final CommonMimeType mimeType, final File file) {
+ return tryRead(name, mimeType, file, StandardCharsets.UTF_8);
+ }
+
// --
public Clob(final String name, final String primaryType, final String subType, final char[] chars) {
@@ -194,10 +202,21 @@ public final class Clob implements NamedWithMimeType {
// -- UTILITIES
+ /**
+ * Converts to a {@link Blob}, using given {@link Charset}
+ * for the underlying String to byte[] conversion.
+ */
public Blob toBlob(final @NonNull Charset charset) {
return new Blob(getName(), getMimeType(), _Strings.toBytes(getChars().toString(), charset));
}
+ /**
+ * Shortcut for {@link #toBlob(Charset)} using {@link StandardCharsets#UTF_8}.
+ */
+ public Blob toBlobUtf8() {
+ return toBlob(StandardCharsets.UTF_8);
+ }
+
public void writeCharsTo(final Writer wr) throws IOException {
if(wr!=null && chars!=null){
wr.append(chars);
@@ -223,10 +242,17 @@ public final class Clob implements NamedWithMimeType {
return; // just ignore
}
try(val os = new FileOutputStream(file)){
- writeCharsTo(new OutputStreamWriter(os, StandardCharsets.UTF_8));
+ writeCharsTo(new OutputStreamWriter(os, charset));
}
}
+ /**
+ * Shortcut for {@link #writeTo(File, Charset)} using {@link StandardCharsets#UTF_8}.
+ */
+ public void writeToUtf8(final @Nullable File file) {
+ writeTo(file, StandardCharsets.UTF_8);
+ }
+
@SneakyThrows
public String asString() {
val sw = new StringWriter();