public static CommunicationIdentifier convert()

in sdk/communication/azure-communication-chat/src/main/java/com/azure/android/communication/chat/implementation/converters/CommunicationIdentifierConverter.java [30:79]


    public static CommunicationIdentifier convert(CommunicationIdentifierModel identifier, ClientLogger logger) {
        assertSingleType(identifier);
        String rawId = identifier.getRawId();

        if (identifier.getCommunicationUser() != null) {
            final String userId = identifier.getCommunicationUser().getId();
            if (userId == null) {
                throw logger.logExceptionAsError(
                    new NullPointerException("CommunicationIdentifierModel.CommunicationUserIdentifierModel.id"));
            }
            return new CommunicationUserIdentifier(userId);
        }

        if (identifier.getPhoneNumber() != null) {
            PhoneNumberIdentifierModel phoneNumberModel = identifier.getPhoneNumber();
            if (phoneNumberModel.getValue() == null) {
                throw logger.logExceptionAsError(
                    new NullPointerException("CommunicationIdentifierModel.PhoneNumberIdentifierModel.value"));
            }
            return new PhoneNumberIdentifier(phoneNumberModel.getValue()).setRawId(rawId);
        }

        if (identifier.getMicrosoftTeamsUser() != null) {
            MicrosoftTeamsUserIdentifierModel teamsUserIdentifierModel = identifier.getMicrosoftTeamsUser();
            final String userId = teamsUserIdentifierModel.getUserId();
            if (userId == null) {
                throw logger.logExceptionAsError(
                    new NullPointerException("CommunicationIdentifierModel.MicrosoftTeamsUserIdentifierModel.userId"));
            }
            final CommunicationCloudEnvironmentModel cloud = teamsUserIdentifierModel.getCloud();
            if (cloud == null) {
                throw logger.logExceptionAsError(
                    new NullPointerException("CommunicationIdentifierModel.MicrosoftTeamsUserIdentifierModel.cloud"));
            }
            if (rawId == null) {
                throw logger.logExceptionAsError(
                    new NullPointerException("CommunicationIdentifierModel.rawId"));
            }
            return new MicrosoftTeamsUserIdentifier(userId,
                teamsUserIdentifierModel.isAnonymous())
                .setRawId(rawId)
                .setCloudEnvironment(CommunicationCloudEnvironment.fromString(cloud.toString()));
        }

        if (rawId == null) {
            throw logger.logExceptionAsError(
                new NullPointerException("CommunicationIdentifierModel.rawId"));
        }
        return new UnknownIdentifier(rawId);
    }