1 package org
.asamk
.signal
.manager
.storage
.recipients
;
3 import com
.fasterxml
.jackson
.annotation
.JsonProperty
;
4 import com
.fasterxml
.jackson
.core
.JsonParser
;
5 import com
.fasterxml
.jackson
.databind
.DeserializationContext
;
6 import com
.fasterxml
.jackson
.databind
.JsonDeserializer
;
7 import com
.fasterxml
.jackson
.databind
.JsonNode
;
8 import com
.fasterxml
.jackson
.databind
.annotation
.JsonDeserialize
;
10 import org
.whispersystems
.signalservice
.api
.push
.SignalServiceAddress
;
11 import org
.whispersystems
.signalservice
.api
.util
.UuidUtil
;
13 import java
.io
.IOException
;
14 import java
.util
.ArrayList
;
15 import java
.util
.List
;
17 public class LegacyRecipientStore
{
19 @JsonProperty("recipientStore")
20 @JsonDeserialize(using
= RecipientStoreDeserializer
.class)
21 private final List
<SignalServiceAddress
> addresses
= new ArrayList
<>();
23 public List
<SignalServiceAddress
> getAddresses() {
27 public static class RecipientStoreDeserializer
extends JsonDeserializer
<List
<SignalServiceAddress
>> {
30 public List
<SignalServiceAddress
> deserialize(
31 JsonParser jsonParser
, DeserializationContext deserializationContext
32 ) throws IOException
{
33 JsonNode node
= jsonParser
.getCodec().readTree(jsonParser
);
35 var addresses
= new ArrayList
<SignalServiceAddress
>();
38 for (var recipient
: node
) {
39 var recipientName
= recipient
.get("name").asText();
40 var uuid
= UuidUtil
.parseOrThrow(recipient
.get("uuid").asText());
41 final var serviceAddress
= new SignalServiceAddress(uuid
, recipientName
);
42 addresses
.add(serviceAddress
);