]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/json/JsonAttachment.java
Use record classes
[signal-cli] / src / main / java / org / asamk / signal / json / JsonAttachment.java
1 package org.asamk.signal.json;
2
3 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
4
5 record JsonAttachment(String contentType, String filename, String id, Long size) {
6
7 static JsonAttachment from(SignalServiceAttachment attachment) {
8 if (attachment.isPointer()) {
9 final var pointer = attachment.asPointer();
10 final var id = pointer.getRemoteId().toString();
11 final var filename = pointer.getFileName().orNull();
12 final var size = pointer.getSize().transform(Integer::longValue).orNull();
13 return new JsonAttachment(attachment.getContentType(), filename, id, size);
14 } else {
15 final var stream = attachment.asStream();
16 final var filename = stream.getFileName().orNull();
17 final var size = stream.getLength();
18 return new JsonAttachment(attachment.getContentType(), filename, null, size);
19 }
20 }
21
22 static JsonAttachment from(String filename) {
23 return new JsonAttachment(filename, null, null, null);
24 }
25 }