]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonReceiptMessage.java
Make fields in json classes final and omit unnecessary nulls when serializing
[signal-cli] / src / main / java / org / asamk / signal / json / JsonReceiptMessage.java
index 1b896053efe26a979985c987a2ba9290d7cc2819..e32009e13c72879d3f07b39ab71b32c769d897e6 100644 (file)
@@ -1,25 +1,42 @@
 package org.asamk.signal.json;
 
+import com.fasterxml.jackson.annotation.JsonProperty;
+
 import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
 
 import java.util.List;
 
 class JsonReceiptMessage {
 
-    long when;
-    boolean isDelivery;
-    boolean isRead;
-    List<Long> timestamps;
+    @JsonProperty
+    final long when;
 
-    JsonReceiptMessage(SignalServiceReceiptMessage receiptMessage) {
+    @JsonProperty
+    final boolean isDelivery;
+
+    @JsonProperty
+    final boolean isRead;
 
+    @JsonProperty
+    final List<Long> timestamps;
+
+    JsonReceiptMessage(SignalServiceReceiptMessage receiptMessage) {
         this.when = receiptMessage.getWhen();
-        if (receiptMessage.isDeliveryReceipt()) {
-            this.isDelivery = true;
-        }
-        if (receiptMessage.isReadReceipt()) {
-            this.isRead = true;
-        }
+        this.isDelivery = receiptMessage.isDeliveryReceipt();
+        this.isRead = receiptMessage.isReadReceipt();
         this.timestamps = receiptMessage.getTimestamps();
     }
+
+    private JsonReceiptMessage(
+            final long when, final boolean isDelivery, final boolean isRead, final List<Long> timestamps
+    ) {
+        this.when = when;
+        this.isDelivery = isDelivery;
+        this.isRead = isRead;
+        this.timestamps = timestamps;
+    }
+
+    static JsonReceiptMessage deliveryReceipt(final long when, final List<Long> timestamps) {
+        return new JsonReceiptMessage(when, true, false, timestamps);
+    }
 }