]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonCallMessage.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonCallMessage.java
1 package org.asamk.signal.json;
2
3 import com.fasterxml.jackson.annotation.JsonInclude;
4
5 import org.whispersystems.signalservice.api.messages.calls.AnswerMessage;
6 import org.whispersystems.signalservice.api.messages.calls.BusyMessage;
7 import org.whispersystems.signalservice.api.messages.calls.HangupMessage;
8 import org.whispersystems.signalservice.api.messages.calls.IceUpdateMessage;
9 import org.whispersystems.signalservice.api.messages.calls.OfferMessage;
10 import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage;
11
12 import java.util.List;
13
14 record JsonCallMessage(
15 @JsonInclude(JsonInclude.Include.NON_NULL) OfferMessage offerMessage,
16 @JsonInclude(JsonInclude.Include.NON_NULL) AnswerMessage answerMessage,
17 @JsonInclude(JsonInclude.Include.NON_NULL) BusyMessage busyMessage,
18 @JsonInclude(JsonInclude.Include.NON_NULL) HangupMessage hangupMessage,
19 @JsonInclude(JsonInclude.Include.NON_NULL) List<IceUpdateMessage> iceUpdateMessages
20 ) {
21
22 static JsonCallMessage from(SignalServiceCallMessage callMessage) {
23 return new JsonCallMessage(callMessage.getOfferMessage().orNull(),
24 callMessage.getAnswerMessage().orNull(),
25 callMessage.getBusyMessage().orNull(),
26 callMessage.getHangupMessage().orNull(),
27 callMessage.getIceUpdateMessages().orNull());
28 }
29 }