public static CommunicationIdentifier fromRawId()

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);
        }
    }