From 350441686fdd34c4a7cd3be51c276549eb11e607 Mon Sep 17 00:00:00 2001 From: Inderpal Singh Aulakh <73618019+iaulakh@users.noreply.github.com> Date: Tue, 2 Aug 2022 05:54:20 -0700 Subject: [PATCH 1/3] [CommunicationIdentifier] Added setter for rawId --- .../common/CommunicationIdentifier.java | 14 +++++++++++++- .../common/CommunicationUserIdentifier.java | 15 ++++++++++++++- .../common/MicrosoftTeamsUserIdentifier.java | 15 +++++++++------ .../common/PhoneNumberIdentifier.java | 7 +++++-- .../communication/common/UnknownIdentifier.java | 15 ++++++++++++++- .../common/CommunicationIdentifierTests.java | 2 +- 6 files changed, 56 insertions(+), 12 deletions(-) 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..4ad14886c3 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 + */ + public 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..6eeae30443 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 + public 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..2b37256062 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; + this.setRawId("8:teamsvisitor:" + this.userId); } else if (cloudEnvironment.equals(CommunicationCloudEnvironment.DOD)) { - this.rawId = "8:dod:" + this.userId; + this.setRawId("8:dod:" + this.userId); } else if (cloudEnvironment.equals(CommunicationCloudEnvironment.GCCH)) { - this.rawId = "8:gcch:" + this.userId; + this.setRawId("8:gcch:" + this.userId); } else { - this.rawId = "8:orgid:" + this.userId; + this.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..9d86dfbfbe 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 + public 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) From a7e5baa6642f3f0b1ac070d8e0e6524dd592220a Mon Sep 17 00:00:00 2001 From: Inderpal Singh Aulakh <73618019+iaulakh@users.noreply.github.com> Date: Tue, 2 Aug 2022 06:04:34 -0700 Subject: [PATCH 2/3] correct call to super class to set rawId --- .../common/MicrosoftTeamsUserIdentifier.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 2b37256062..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 @@ -124,13 +124,13 @@ public int hashCode() { private void generateRawId() { if (!rawIdSet) { if (this.isAnonymous) { - this.setRawId("8:teamsvisitor:" + this.userId); + super.setRawId("8:teamsvisitor:" + this.userId); } else if (cloudEnvironment.equals(CommunicationCloudEnvironment.DOD)) { - this.setRawId("8:dod:" + this.userId); + super.setRawId("8:dod:" + this.userId); } else if (cloudEnvironment.equals(CommunicationCloudEnvironment.GCCH)) { - this.setRawId("8:gcch:" + this.userId); + super.setRawId("8:gcch:" + this.userId); } else { - this.setRawId("8:orgid:" + this.userId); + super.setRawId("8:orgid:" + this.userId); } } } From 890155d701c444971223750632a2ee368d5f1c13 Mon Sep 17 00:00:00 2001 From: Inderpal Singh Aulakh <73618019+iaulakh@users.noreply.github.com> Date: Tue, 2 Aug 2022 13:49:34 -0700 Subject: [PATCH 3/3] [Refactor] make setRawId protected except for MicrosoftTeam, PhoneNumber Identifier --- .../android/communication/common/CommunicationIdentifier.java | 2 +- .../communication/common/CommunicationUserIdentifier.java | 2 +- .../azure/android/communication/common/UnknownIdentifier.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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 4ad14886c3..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 @@ -66,7 +66,7 @@ public String getRawId() { * @param rawId full id of the identifier * @return CommunicationIdentifier object itself */ - public CommunicationIdentifier setRawId(String rawId) { + protected CommunicationIdentifier setRawId(String rawId) { this.rawId = rawId; return this; } 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 6eeae30443..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 @@ -39,7 +39,7 @@ public String getId() { * @return CommunicationUserIdentifier object itself */ @Override - public CommunicationUserIdentifier setRawId(String rawId) { + protected CommunicationUserIdentifier setRawId(String 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 9d86dfbfbe..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 @@ -39,7 +39,7 @@ public String getId() { * @return UnknownIdentifier object itself */ @Override - public UnknownIdentifier setRawId(String rawId) { + protected UnknownIdentifier setRawId(String rawId) { super.setRawId(rawId); return this; }