diff --git a/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationIdentifier.java index dc1b0f081eac..e1944ff6c351 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationIdentifier.java @@ -8,10 +8,8 @@ * Common communication identifier for Communication Services */ public abstract class CommunicationIdentifier { - /** - * encoded format for identifiers to store in databases or as stable keys in general. - */ - protected String rawId; + + private String rawId; /** * When storing rawIds, use this function to restore the identifier that was encoded in the rawId. @@ -61,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/communication/common/CommunicationUserIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationUserIdentifier.java index a44e7356b820..2896ecd0b174 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationUserIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/CommunicationUserIdentifier.java @@ -22,7 +22,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); } /** @@ -34,6 +34,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/communication/common/MicrosoftTeamsUserIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/MicrosoftTeamsUserIdentifier.java index a50315bce4dc..03e8d94af66d 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/MicrosoftTeamsUserIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/MicrosoftTeamsUserIdentifier.java @@ -81,12 +81,14 @@ public MicrosoftTeamsUserIdentifier setCloudEnvironment(CommunicationCloudEnviro /** * 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; } @@ -124,13 +126,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/communication/common/PhoneNumberIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/PhoneNumberIdentifier.java index fe5dd6b6f1ed..58146089c55f 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/PhoneNumberIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/PhoneNumberIdentifier.java @@ -23,7 +23,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("^[+]", "")); } /** @@ -35,12 +35,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/communication/common/UnknownIdentifier.java b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/UnknownIdentifier.java index 4522400d1be5..012a411ea534 100644 --- a/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/UnknownIdentifier.java +++ b/sdk/communication/azure-communication-common/src/main/java/com/azure/communication/common/UnknownIdentifier.java @@ -22,7 +22,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); } /** @@ -34,6 +34,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/communication/common/CommunicationIdentifierTests.java b/sdk/communication/azure-communication-common/src/test/java/com/azure/communication/common/CommunicationIdentifierTests.java index aff4c960d601..e204ff3624fc 100644 --- a/sdk/communication/azure-communication-common/src/test/java/com/azure/communication/common/CommunicationIdentifierTests.java +++ b/sdk/communication/azure-communication-common/src/test/java/com/azure/communication/common/CommunicationIdentifierTests.java @@ -126,7 +126,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) {