diff --git a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationIdentifier.java index 791dec53f7..62b97dfa44 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationIdentifier.java @@ -6,7 +6,7 @@ * Common communication identifier for Communication Services */ public abstract class CommunicationIdentifier { - protected String rawId; + private String rawId; /** * When storing rawIds, use this function to restore the identifier that was encoded in the rawId. @@ -59,6 +59,18 @@ public String getRawId() { return rawId; } + /** + * Set full id of the identifier + * RawId is the encoded format for identifiers to store in databases or as stable keys in general. + * + * @param rawId full id of the identifier + * @return CommunicationIdentifier object itself + */ + protected CommunicationIdentifier setRawId(String rawId) { + this.rawId = rawId; + return this; + } + @Override public boolean equals(Object that) { if (this == that) { diff --git a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationUserIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationUserIdentifier.java index 68f36a4418..3b1eac650e 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationUserIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationUserIdentifier.java @@ -19,7 +19,7 @@ public CommunicationUserIdentifier(String id) { throw new IllegalArgumentException("The initialization parameter [id] cannot be null or empty."); } this.id = id; - this.rawId = id; + this.setRawId(id); } /** @@ -31,6 +31,19 @@ public String getId() { return id; } + /** + * Set full id of the identifier + * RawId is the encoded format for identifiers to store in databases or as stable keys in general. + * + * @param rawId full id of the identifier + * @return CommunicationUserIdentifier object itself + */ + @Override + protected CommunicationUserIdentifier setRawId(String rawId) { + super.setRawId(rawId); + return this; + } + @Override public boolean equals(Object that) { if (this == that) { diff --git a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/MicrosoftTeamsUserIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/MicrosoftTeamsUserIdentifier.java index 79a496f2b0..fbb8034c5e 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/MicrosoftTeamsUserIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/MicrosoftTeamsUserIdentifier.java @@ -78,11 +78,14 @@ public CommunicationCloudEnvironment getCloudEnvironment() { /** * Set full id of the identifier + * RawId is the encoded format for identifiers to store in databases or as stable keys in general. + * * @param rawId full id of the identifier - * @return CommunicationIdentifier object itself + * @return MicrosoftTeamsUserIdentifier object itself */ + @Override public MicrosoftTeamsUserIdentifier setRawId(String rawId) { - this.rawId = rawId; + super.setRawId(rawId); rawIdSet = true; return this; } @@ -121,13 +124,13 @@ public int hashCode() { private void generateRawId() { if (!rawIdSet) { if (this.isAnonymous) { - this.rawId = "8:teamsvisitor:" + this.userId; + super.setRawId("8:teamsvisitor:" + this.userId); } else if (cloudEnvironment.equals(CommunicationCloudEnvironment.DOD)) { - this.rawId = "8:dod:" + this.userId; + super.setRawId("8:dod:" + this.userId); } else if (cloudEnvironment.equals(CommunicationCloudEnvironment.GCCH)) { - this.rawId = "8:gcch:" + this.userId; + super.setRawId("8:gcch:" + this.userId); } else { - this.rawId = "8:orgid:" + this.userId; + super.setRawId("8:orgid:" + this.userId); } } } diff --git a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/PhoneNumberIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/PhoneNumberIdentifier.java index 4eee29abce..cc2e342b23 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/PhoneNumberIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/PhoneNumberIdentifier.java @@ -20,7 +20,7 @@ public PhoneNumberIdentifier(String phoneNumber) { throw new IllegalArgumentException("The initialization parameter [phoneNumber] cannot be null to empty."); } this.phoneNumber = phoneNumber; - this.rawId = "4:" + phoneNumber.replaceAll("^[+]", ""); + this.setRawId("4:" + phoneNumber.replaceAll("^[+]", "")); } /** @@ -32,11 +32,14 @@ public String getPhoneNumber() { /** * Set full id of the identifier + * RawId is the encoded format for identifiers to store in databases or as stable keys in general. + * * @param rawId full id of the identifier * @return PhoneNumberIdentifier object itself */ + @Override public PhoneNumberIdentifier setRawId(String rawId) { - this.rawId = rawId; + super.setRawId(rawId); return this; } diff --git a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/UnknownIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/UnknownIdentifier.java index cf881c3455..6a103ab9ec 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/UnknownIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/UnknownIdentifier.java @@ -20,7 +20,7 @@ public UnknownIdentifier(String id) { throw new IllegalArgumentException("The initialization parameter [id] cannot be null or empty."); } this.id = id; - this.rawId = id; + this.setRawId(id); } /** @@ -31,6 +31,19 @@ public String getId() { return id; } + /** + * Set full id of the identifier + * RawId is the encoded format for identifiers to store in databases or as stable keys in general. + * + * @param rawId full id of the identifier + * @return UnknownIdentifier object itself + */ + @Override + protected UnknownIdentifier setRawId(String rawId) { + super.setRawId(rawId); + return this; + } + @Override public boolean equals(Object that) { if (this == that) { diff --git a/sdk/communication/azure-communication-common/src/test/java/com/azure/android/communication/common/CommunicationIdentifierTests.java b/sdk/communication/azure-communication-common/src/test/java/com/azure/android/communication/common/CommunicationIdentifierTests.java index f1f9034afb..4973118049 100644 --- a/sdk/communication/azure-communication-common/src/test/java/com/azure/android/communication/common/CommunicationIdentifierTests.java +++ b/sdk/communication/azure-communication-common/src/test/java/com/azure/android/communication/common/CommunicationIdentifierTests.java @@ -130,7 +130,7 @@ public void rawIdStaysTheSameAfterConversionToIdentifierAndBack() } private void assertRawId(CommunicationIdentifier identifier, String expectedRawId) { - assertEquals(identifier.rawId, expectedRawId); + assertEquals(identifier.getRawId(), expectedRawId); } private void assertIdentifier(String rawId, CommunicationIdentifier expectedIdentifier)