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;
return getRecipientStore();
}
+ private RecipientIdCreator getRecipientIdCreator() {
+ return recipientId -> getRecipientStore().create(recipientId);
+ }
+
public RecipientResolver getRecipientResolver() {
return new RecipientResolver() {
@Override
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";
}
}
+ /**
+ * 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 {