]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonAttachment.java
Use var instead of explicit types
[signal-cli] / src / main / java / org / asamk / signal / json / JsonAttachment.java
index 8a405fc4a8bdd65bb3807633314fed6a6731fbbd..a96fc5341e58403a61b96d12448290dfa6f305af 100644 (file)
@@ -1,31 +1,43 @@
 package org.asamk.signal.json;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
 
 class JsonAttachment {
 
-    String contentType;
-    String filename;
-    String id;
-    int size;
+    @JsonProperty
+    final String contentType;
+
+    @JsonProperty
+    final String filename;
+
+    @JsonProperty
+    final String id;
+
+    @JsonProperty
+    final Long size;
 
     JsonAttachment(SignalServiceAttachment attachment) {
         this.contentType = attachment.getContentType();
 
-        final SignalServiceAttachmentPointer pointer = attachment.asPointer();
         if (attachment.isPointer()) {
-            this.id = String.valueOf(pointer.getId());
-            if (pointer.getFileName().isPresent()) {
-                this.filename = pointer.getFileName().get();
-            }
-            if (pointer.getSize().isPresent()) {
-                this.size = pointer.getSize().get();
-            }
+            final var pointer = attachment.asPointer();
+            this.id = pointer.getRemoteId().toString();
+            this.filename = pointer.getFileName().orNull();
+            this.size = pointer.getSize().transform(Integer::longValue).orNull();
+        } else {
+            final var stream = attachment.asStream();
+            this.id = null;
+            this.filename = stream.getFileName().orNull();
+            this.size = stream.getLength();
         }
     }
 
     JsonAttachment(String filename) {
         this.filename = filename;
+        this.contentType = null;
+        this.id = null;
+        this.size = null;
     }
 }