]> nmode's Git Repositories - signal-cli/blob - 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
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonProperty;
4
5 import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
6
7 import java.util.List;
8
9 class JsonReceiptMessage {
10
11 @JsonProperty
12 final long when;
13
14 @JsonProperty
15 final boolean isDelivery;
16
17 @JsonProperty
18 final boolean isRead;
19
20 @JsonProperty
21 final List<Long> timestamps;
22
23 JsonReceiptMessage(SignalServiceReceiptMessage receiptMessage) {
24 this.when = receiptMessage.getWhen();
25 this.isDelivery = receiptMessage.isDeliveryReceipt();
26 this.isRead = receiptMessage.isReadReceipt();
27 this.timestamps = receiptMessage.getTimestamps();
28 }
29
30 private JsonReceiptMessage(
31 final long when, final boolean isDelivery, final boolean isRead, final List<Long> timestamps
32 ) {
33 this.when = when;
34 this.isDelivery = isDelivery;
35 this.isRead = isRead;
36 this.timestamps = timestamps;
37 }
38
39 static JsonReceiptMessage deliveryReceipt(final long when, final List<Long> timestamps) {
40 return new JsonReceiptMessage(when, true, false, timestamps);
41 }
42 }