in sdk/communication/azure-communication-common/src/main/java/com/azure/android/communication/common/CommunicationIdentifier.java [30:71]
public static CommunicationIdentifier fromRawId(String rawId) {
if (rawId == null || rawId.trim().length() == 0) {
throw new IllegalArgumentException("The parameter [rawId] cannot be null to empty.");
}
if (rawId.startsWith(PHONE_NUMBER_PREFIX)) {
return new PhoneNumberIdentifier(rawId.substring(PHONE_NUMBER_PREFIX.length()));
}
final String[] segments = rawId.split(":");
int segmentCount = segments.length;
if (segmentCount != 3) {
return new UnknownIdentifier(rawId);
}
final String prefix = segments[0] + ":" + segments[1] + ":";
final String suffix = segments[2];
switch (prefix) {
case TEAMS_ANONYMOUS_USER_PREFIX:
return new MicrosoftTeamsUserIdentifier(suffix, true);
case TEAMS_USER_PUBLIC_CLOUD_PREFIX:
return new MicrosoftTeamsUserIdentifier(suffix, false);
case TEAMS_USER_DOD_CLOUD_PREFIX:
return new MicrosoftTeamsUserIdentifier(suffix, false)
.setCloudEnvironment(CommunicationCloudEnvironment.DOD);
case TEAMS_USER_GCCH_CLOUD_PREFIX:
return new MicrosoftTeamsUserIdentifier(suffix, false)
.setCloudEnvironment(CommunicationCloudEnvironment.GCCH);
case TEAMS_APP_PUBLIC_CLOUD_PREFIX:
return new MicrosoftTeamsAppIdentifier(suffix);
case TEAMS_APP_DOD_CLOUD_PREFIX:
return new MicrosoftTeamsAppIdentifier(suffix, CommunicationCloudEnvironment.DOD);
case TEAMS_APP_GCCH_CLOUD_PREFIX:
return new MicrosoftTeamsAppIdentifier(suffix, CommunicationCloudEnvironment.GCCH);
case ACS_USER_PREFIX:
case SPOOL_USER_PREFIX:
case ACS_USER_DOD_CLOUD_PREFIX:
case ACS_USER_GCCH_CLOUD_PREFIX:
return new CommunicationUserIdentifier(rawId);
default:
return new UnknownIdentifier(rawId);
}
}