]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonCallMessage.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonCallMessage.java
index c1b1d4432a44755533d63067b732f3129a44af3b..e30aeafa40ea9c109d51a016beb81481624414f7 100644 (file)
@@ -1,5 +1,7 @@
 package org.asamk.signal.json;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+
 import org.whispersystems.signalservice.api.messages.calls.AnswerMessage;
 import org.whispersystems.signalservice.api.messages.calls.BusyMessage;
 import org.whispersystems.signalservice.api.messages.calls.HangupMessage;
@@ -9,29 +11,19 @@ import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMess
 
 import java.util.List;
 
-class JsonCallMessage {
-
-    OfferMessage offerMessage;
-    AnswerMessage answerMessage;
-    BusyMessage busyMessage;
-    HangupMessage hangupMessage;
-    List<IceUpdateMessage> iceUpdateMessages;
+record JsonCallMessage(
+        @JsonInclude(JsonInclude.Include.NON_NULL) OfferMessage offerMessage,
+        @JsonInclude(JsonInclude.Include.NON_NULL) AnswerMessage answerMessage,
+        @JsonInclude(JsonInclude.Include.NON_NULL) BusyMessage busyMessage,
+        @JsonInclude(JsonInclude.Include.NON_NULL) HangupMessage hangupMessage,
+        @JsonInclude(JsonInclude.Include.NON_NULL) List<IceUpdateMessage> iceUpdateMessages
+) {
 
-    JsonCallMessage(SignalServiceCallMessage callMessage) {
-        if (callMessage.getOfferMessage().isPresent()) {
-            this.offerMessage = callMessage.getOfferMessage().get();
-        }
-        if (callMessage.getAnswerMessage().isPresent()) {
-            this.answerMessage = callMessage.getAnswerMessage().get();
-        }
-        if (callMessage.getBusyMessage().isPresent()) {
-            this.busyMessage = callMessage.getBusyMessage().get();
-        }
-        if (callMessage.getHangupMessage().isPresent()) {
-            this.hangupMessage = callMessage.getHangupMessage().get();
-        }
-        if (callMessage.getIceUpdateMessages().isPresent()) {
-            this.iceUpdateMessages = callMessage.getIceUpdateMessages().get();
-        }
+    static JsonCallMessage from(SignalServiceCallMessage callMessage) {
+        return new JsonCallMessage(callMessage.getOfferMessage().orNull(),
+                callMessage.getAnswerMessage().orNull(),
+                callMessage.getBusyMessage().orNull(),
+                callMessage.getHangupMessage().orNull(),
+                callMessage.getIceUpdateMessages().orNull());
     }
 }