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;
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());
}
}