]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonSyncDataMessage.java
index e2c92bac2e8a2a4c17d7ddcf3b8fb95a980f42e4..98139c84bd68811d074a92f3d52f38e86356910f 100644 (file)
@@ -1,6 +1,6 @@
 package org.asamk.signal.json;
 
-import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonUnwrapped;
 
 import org.asamk.Signal;
 import org.asamk.signal.manager.Manager;
@@ -8,37 +8,30 @@ import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptM
 
 import static org.asamk.signal.util.Util.getLegacyIdentifier;
 
-class JsonSyncDataMessage extends JsonDataMessage {
-
-    @JsonProperty
-    @Deprecated
-    final String destination;
-
-    @JsonProperty
-    final String destinationNumber;
-
-    @JsonProperty
-    final String destinationUuid;
-
-    JsonSyncDataMessage(SentTranscriptMessage transcriptMessage, Manager m) {
-        super(transcriptMessage.getMessage(), m);
+record JsonSyncDataMessage(
+        @Deprecated String destination,
+        String destinationNumber,
+        String destinationUuid,
+        @JsonUnwrapped JsonDataMessage dataMessage
+) {
 
+    static JsonSyncDataMessage from(SentTranscriptMessage transcriptMessage, Manager m) {
         if (transcriptMessage.getDestination().isPresent()) {
             final var address = transcriptMessage.getDestination().get();
-            this.destination = getLegacyIdentifier(address);
-            this.destinationNumber = address.getNumber().orNull();
-            this.destinationUuid = address.getUuid().toString();
+            return new JsonSyncDataMessage(getLegacyIdentifier(address),
+                    address.getNumber().orNull(),
+                    address.getUuid().toString(),
+                    JsonDataMessage.from(transcriptMessage.getMessage(), m));
+
         } else {
-            this.destination = null;
-            this.destinationNumber = null;
-            this.destinationUuid = null;
+            return new JsonSyncDataMessage(null, null, null, JsonDataMessage.from(transcriptMessage.getMessage(), m));
         }
     }
 
-    JsonSyncDataMessage(Signal.SyncMessageReceived messageReceived) {
-        super(messageReceived);
-        this.destination = messageReceived.getDestination();
-        this.destinationNumber = null;
-        this.destinationUuid = null;
+    static JsonSyncDataMessage from(Signal.SyncMessageReceived messageReceived) {
+        return new JsonSyncDataMessage(messageReceived.getDestination(),
+                null,
+                null,
+                JsonDataMessage.from(messageReceived));
     }
 }