]> nmode's Git Repositories - signal-cli/blob - lib/src/main/java/org/asamk/signal/manager/api/RecipientIdentifier.java
Move more profile functionality to ProfileHelper
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / api / RecipientIdentifier.java
1 package org.asamk.signal.manager.api;
2
3 import org.asamk.signal.manager.groups.GroupId;
4 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
5 import org.whispersystems.signalservice.api.util.InvalidNumberException;
6 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
7 import org.whispersystems.signalservice.api.util.UuidUtil;
8
9 import java.util.UUID;
10
11 public abstract class RecipientIdentifier {
12
13 public static class NoteToSelf extends RecipientIdentifier {
14
15 @Override
16 public boolean equals(final Object obj) {
17 return obj instanceof NoteToSelf;
18 }
19
20 @Override
21 public int hashCode() {
22 return 5;
23 }
24 }
25
26 public abstract static class Single extends RecipientIdentifier {
27
28 public static Single fromString(String identifier, String localNumber) throws InvalidNumberException {
29 return UuidUtil.isUuid(identifier)
30 ? new Uuid(UUID.fromString(identifier))
31 : new Number(PhoneNumberFormatter.formatNumber(identifier, localNumber));
32 }
33
34 public static Single fromAddress(SignalServiceAddress address) {
35 return address.getUuid().isPresent()
36 ? new Uuid(address.getUuid().get())
37 : new Number(address.getNumber().get());
38 }
39 }
40
41 public static class Uuid extends Single {
42
43 public final UUID uuid;
44
45 public Uuid(final UUID uuid) {
46 this.uuid = uuid;
47 }
48
49 @Override
50 public boolean equals(final Object o) {
51 if (this == o) return true;
52 if (o == null || getClass() != o.getClass()) return false;
53
54 final Uuid uuid1 = (Uuid) o;
55
56 return uuid.equals(uuid1.uuid);
57 }
58
59 @Override
60 public int hashCode() {
61 return uuid.hashCode();
62 }
63 }
64
65 public static class Number extends Single {
66
67 public final String number;
68
69 public Number(final String number) {
70 this.number = number;
71 }
72
73 @Override
74 public boolean equals(final Object o) {
75 if (this == o) return true;
76 if (o == null || getClass() != o.getClass()) return false;
77
78 final Number number1 = (Number) o;
79
80 return number.equals(number1.number);
81 }
82
83 @Override
84 public int hashCode() {
85 return number.hashCode();
86 }
87 }
88
89 public static class Group extends RecipientIdentifier {
90
91 public final GroupId groupId;
92
93 public Group(final GroupId groupId) {
94 this.groupId = groupId;
95 }
96
97 @Override
98 public boolean equals(final Object o) {
99 if (this == o) return true;
100 if (o == null || getClass() != o.getClass()) return false;
101
102 final Group group = (Group) o;
103
104 return groupId.equals(group.groupId);
105 }
106
107 @Override
108 public int hashCode() {
109 return groupId.hashCode();
110 }
111 }
112 }