]> nmode's Git Repositories - signal-cli/commitdiff
Add RecipientIdCreator for creating recipientIds from the database
authorAsamK <asamk@gmx.de>
Thu, 9 Jun 2022 19:36:28 +0000 (21:36 +0200)
committerAsamK <asamk@gmx.de>
Sun, 28 Aug 2022 14:04:05 +0000 (16:04 +0200)
lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java
lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientIdCreator.java [new file with mode: 0644]
lib/src/main/java/org/asamk/signal/manager/storage/recipients/RecipientStore.java

index ce42cf9d0120ec1614e4e5e3de6b089b1edc3a90..792c272573e1ce69761d588d86535ed492ecce61 100644 (file)
@@ -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 (file)
index 0000000..c385cd6
--- /dev/null
@@ -0,0 +1,6 @@
+package org.asamk.signal.manager.storage.recipients;
+
+public interface RecipientIdCreator {
+
+    RecipientId create(long recipientId);
+}
index 37ffa3b22fc3ffb27c0b6c2ef2dbb03f5eca0f45..e0f142502c1be5f4aa7d3b29c7a5781128fe607c 100644 (file)
@@ -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<ACI> aciSupplier
     ) throws UnregisteredRecipientException {