]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/api/RecipientIdentifier.java
Refactor Manager interface
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / RecipientIdentifier.java
index cb0a08bbc3538fd19a62fe021a6904dc2c2c533a..be1029e69be4baedc4048103dc82a2f3150e40e9 100644 (file)
@@ -1,6 +1,7 @@
 package org.asamk.signal.manager.api;
 
 import org.asamk.signal.manager.groups.GroupId;
+import org.asamk.signal.manager.storage.recipients.RecipientAddress;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.util.InvalidNumberException;
 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
@@ -29,6 +30,17 @@ public abstract class RecipientIdentifier {
         public static Single fromAddress(SignalServiceAddress address) {
             return new Uuid(address.getUuid());
         }
+
+        public static Single fromAddress(RecipientAddress address) {
+            if (address.getNumber().isPresent()) {
+                return new Number(address.getNumber().get());
+            } else if (address.getUuid().isPresent()) {
+                return new Uuid(address.getUuid().get());
+            }
+            throw new AssertionError("RecipientAddress without identifier");
+        }
+
+        public abstract String getIdentifier();
     }
 
     public static class Uuid extends Single {
@@ -53,6 +65,11 @@ public abstract class RecipientIdentifier {
         public int hashCode() {
             return uuid.hashCode();
         }
+
+        @Override
+        public String getIdentifier() {
+            return uuid.toString();
+        }
     }
 
     public static class Number extends Single {
@@ -77,6 +94,11 @@ public abstract class RecipientIdentifier {
         public int hashCode() {
             return number.hashCode();
         }
+
+        @Override
+        public String getIdentifier() {
+            return number;
+        }
     }
 
     public static class Group extends RecipientIdentifier {