]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonQuotedAttachment.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonQuotedAttachment.java
index 1aae3104b4b17cc06cd9f7051cba5d0b31af140e..a72ba7c6d285692f8586afb9b9c4e401e110bb1a 100644 (file)
@@ -1,21 +1,22 @@
 package org.asamk.signal.json;
 
-import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
+import com.fasterxml.jackson.annotation.JsonInclude;
 
-public class JsonQuotedAttachment {
+import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 
-    String contentType;
-    String filename;
-    JsonAttachment thumbnail;
+public record JsonQuotedAttachment(
+        String contentType, String filename, @JsonInclude(JsonInclude.Include.NON_NULL) JsonAttachment thumbnail
+) {
 
-    JsonQuotedAttachment(SignalServiceDataMessage.Quote.QuotedAttachment quotedAttachment) {
-        contentType = quotedAttachment.getContentType();
-        filename = quotedAttachment.getFileName();
+    static JsonQuotedAttachment from(SignalServiceDataMessage.Quote.QuotedAttachment quotedAttachment) {
+        final var contentType = quotedAttachment.getContentType();
+        final var filename = quotedAttachment.getFileName();
+        final JsonAttachment thumbnail;
         if (quotedAttachment.getThumbnail() != null) {
-            thumbnail = new JsonAttachment(quotedAttachment.getThumbnail());
-        }
-        else {
+            thumbnail = JsonAttachment.from(quotedAttachment.getThumbnail());
+        } else {
             thumbnail = null;
         }
+        return new JsonQuotedAttachment(contentType, filename, thumbnail);
     }
 }