From: AsamK Date: Thu, 9 Jun 2022 19:36:28 +0000 (+0200) Subject: Add RecipientIdCreator for creating recipientIds from the database X-Git-Tag: v0.11.0~23 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/46adc1af985800dd79f6752e9d32a6c9d3040c12 Add RecipientIdCreator for creating recipientIds from the database --- diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java index ce42cf9d..792c2725 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java @@ -32,6 +32,7 @@ import org.asamk.signal.manager.storage.recipients.LegacyRecipientStore2; import org.asamk.signal.manager.storage.recipients.Profile; import org.asamk.signal.manager.storage.recipients.RecipientAddress; import org.asamk.signal.manager.storage.recipients.RecipientId; +import org.asamk.signal.manager.storage.recipients.RecipientIdCreator; import org.asamk.signal.manager.storage.recipients.RecipientResolver; import org.asamk.signal.manager.storage.recipients.RecipientStore; import org.asamk.signal.manager.storage.recipients.RecipientTrustedResolver; @@ -1117,6 +1118,10 @@ public class SignalAccount implements Closeable { return getRecipientStore(); } + private RecipientIdCreator getRecipientIdCreator() { + return recipientId -> getRecipientStore().create(recipientId); + } + public RecipientResolver getRecipientResolver() { return new RecipientResolver() { @Override diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientIdCreator.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientIdCreator.java new file mode 100644 index 00000000..c385cd6e --- /dev/null +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientIdCreator.java @@ -0,0 +1,6 @@ +package org.asamk.signal.manager.storage.recipients; + +public interface RecipientIdCreator { + + RecipientId create(long recipientId); +} diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java index 37ffa3b2..e0f14250 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java @@ -31,7 +31,7 @@ import java.util.UUID; import java.util.function.Supplier; import java.util.stream.Collectors; -public class RecipientStore implements RecipientResolver, RecipientTrustedResolver, ContactsStore, ProfileStore { +public class RecipientStore implements RecipientIdCreator, RecipientResolver, RecipientTrustedResolver, ContactsStore, ProfileStore { private final static Logger logger = LoggerFactory.getLogger(RecipientStore.class); private static final String TABLE_RECIPIENT = "recipient"; @@ -144,6 +144,15 @@ public class RecipientStore implements RecipientResolver, RecipientTrustedResolv } } + /** + * Should only be used for recipientIds from the database. + * Where the foreign key relations ensure a valid recipientId. + */ + @Override + public RecipientId create(final long recipientId) { + return new RecipientId(recipientId, this); + } + public RecipientId resolveRecipient( final String number, Supplier aciSupplier ) throws UnregisteredRecipientException {