protected Map transform()

in modules/ingest-geoip/src/main/java/org/elasticsearch/ingest/geoip/MaxmindIpDataLookups.java [611:784]


        protected Map<String, Object> transform(final Result<CacheableEnterpriseResponse> result) {
            CacheableEnterpriseResponse response = result.result();

            Map<String, Object> data = new HashMap<>();
            for (Database.Property property : this.properties) {
                switch (property) {
                    case IP -> data.put("ip", result.ip());
                    case COUNTRY_CONFIDENCE -> {
                        if (response.countryConfidence != null) {
                            data.put("country_confidence", response.countryConfidence);
                        }
                    }
                    case COUNTRY_IN_EUROPEAN_UNION -> {
                        if (response.isInEuropeanUnion != null) {
                            data.put("country_in_european_union", response.isInEuropeanUnion);
                        }
                    }
                    case COUNTRY_ISO_CODE -> {
                        if (response.countryIsoCode != null) {
                            data.put("country_iso_code", response.countryIsoCode);
                        }
                    }
                    case COUNTRY_NAME -> {
                        if (response.countryName != null) {
                            data.put("country_name", response.countryName);
                        }
                    }
                    case CONTINENT_CODE -> {
                        if (response.continentCode != null) {
                            data.put("continent_code", response.continentCode);
                        }
                    }
                    case CONTINENT_NAME -> {
                        if (response.continentName != null) {
                            data.put("continent_name", response.continentName);
                        }
                    }
                    case REGION_ISO_CODE -> {
                        if (response.regionIsoCode != null) {
                            data.put("region_iso_code", response.regionIsoCode);
                        }
                    }
                    case REGION_NAME -> {
                        if (response.regionName != null) {
                            data.put("region_name", response.regionName);
                        }
                    }
                    case CITY_CONFIDENCE -> {
                        if (response.cityConfidence != null) {
                            data.put("city_confidence", response.cityConfidence);
                        }
                    }
                    case CITY_NAME -> {
                        if (response.cityName != null) {
                            data.put("city_name", response.cityName);
                        }
                    }
                    case TIMEZONE -> {
                        if (response.timezone != null) {
                            data.put("timezone", response.timezone);
                        }
                    }
                    case LOCATION -> {
                        Double latitude = response.latitude;
                        Double longitude = response.longitude;
                        if (latitude != null && longitude != null) {
                            Map<String, Object> locationObject = HashMap.newHashMap(2);
                            locationObject.put("lat", latitude);
                            locationObject.put("lon", longitude);
                            data.put("location", locationObject);
                        }
                    }
                    case ACCURACY_RADIUS -> {
                        if (response.accuracyRadius != null) {
                            data.put("accuracy_radius", response.accuracyRadius);
                        }
                    }
                    case POSTAL_CODE -> {
                        if (response.postalCode != null) {
                            data.put("postal_code", response.postalCode);
                        }
                    }
                    case POSTAL_CONFIDENCE -> {
                        if (response.postalConfidence != null) {
                            data.put("postal_confidence", response.postalConfidence);
                        }
                    }
                    case ASN -> {
                        if (response.asn != null) {
                            data.put("asn", response.asn);
                        }
                    }
                    case ORGANIZATION_NAME -> {
                        if (response.organizationName != null) {
                            data.put("organization_name", response.organizationName);
                        }
                    }
                    case NETWORK -> {
                        if (result.network() != null) {
                            data.put("network", result.network());
                        }
                    }
                    case HOSTING_PROVIDER -> {
                        data.put("hosting_provider", response.isHostingProvider);
                    }
                    case TOR_EXIT_NODE -> {
                        data.put("tor_exit_node", response.isTorExitNode);
                    }
                    case ANONYMOUS_VPN -> {
                        data.put("anonymous_vpn", response.isAnonymousVpn);
                    }
                    case ANONYMOUS -> {
                        data.put("anonymous", response.isAnonymous);
                    }
                    case PUBLIC_PROXY -> {
                        data.put("public_proxy", response.isPublicProxy);
                    }
                    case RESIDENTIAL_PROXY -> {
                        data.put("residential_proxy", response.isResidentialProxy);
                    }
                    case DOMAIN -> {
                        if (response.domain != null) {
                            data.put("domain", response.domain);
                        }
                    }
                    case ISP -> {
                        if (response.isp != null) {
                            data.put("isp", response.isp);
                        }
                    }
                    case ISP_ORGANIZATION_NAME -> {
                        if (response.ispOrganization != null) {
                            data.put("isp_organization_name", response.ispOrganization);
                        }
                    }
                    case MOBILE_COUNTRY_CODE -> {
                        if (response.mobileCountryCode != null) {
                            data.put("mobile_country_code", response.mobileCountryCode);
                        }
                    }
                    case MOBILE_NETWORK_CODE -> {
                        if (response.mobileNetworkCode != null) {
                            data.put("mobile_network_code", response.mobileNetworkCode);
                        }
                    }
                    case USER_TYPE -> {
                        if (response.userType != null) {
                            data.put("user_type", response.userType);
                        }
                    }
                    case CONNECTION_TYPE -> {
                        if (response.connectionType != null) {
                            data.put("connection_type", response.connectionType);
                        }
                    }
                    case REGISTERED_COUNTRY_IN_EUROPEAN_UNION -> {
                        if (response.registeredCountryIsInEuropeanUnion != null) {
                            data.put("registered_country_in_european_union", response.registeredCountryIsInEuropeanUnion);
                        }
                    }
                    case REGISTERED_COUNTRY_ISO_CODE -> {
                        if (response.registeredCountryIsoCode != null) {
                            data.put("registered_country_iso_code", response.registeredCountryIsoCode);
                        }
                    }
                    case REGISTERED_COUNTRY_NAME -> {
                        if (response.registeredCountryName != null) {
                            data.put("registered_country_name", response.registeredCountryName);
                        }
                    }
                }
            }
            return data;
        }