All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.redlink.geocoding.nominatim.ServiceConfiguration Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (c) 2023 Redlink GmbH.
 */
package io.redlink.geocoding.nominatim;

import java.util.Map;
import java.util.Objects;

import static io.redlink.geocoding.nominatim.NominatimGeocoder.DEFAULT_GEOCODE_ENDPOINT;
import static io.redlink.geocoding.nominatim.NominatimGeocoder.DEFAULT_LOOKUP_ENDPOINT;
import static io.redlink.geocoding.nominatim.NominatimGeocoder.DEFAULT_REVERSE_ENDPOINT;

class ServiceConfiguration {

    private final String geocodeEndpoint;
    private final String reverseEndpoint;
    private final String lookupEndpoint;

    private final Map customQueryParams;
    private final Map customHeaders;

    private final String userAgent;

    ServiceConfiguration() {
        this(DEFAULT_GEOCODE_ENDPOINT, DEFAULT_REVERSE_ENDPOINT, DEFAULT_LOOKUP_ENDPOINT, Map.of(), Map.of(), null);
    }

    ServiceConfiguration(String geocodeEndpoint, String reverseEndpoint, String lookupEndpoint,
                         Map customQueryParams,
                         Map customHeaders,
                         String userAgent) {
        this.geocodeEndpoint = geocodeEndpoint;
        this.reverseEndpoint = reverseEndpoint;
        this.lookupEndpoint = lookupEndpoint;
        this.customQueryParams = Map.copyOf(customQueryParams);
        this.customHeaders = Map.copyOf(customHeaders);
        this.userAgent = userAgent;
    }

    public String getGeocodeEndpoint() {
        return Objects.requireNonNullElse(geocodeEndpoint, DEFAULT_GEOCODE_ENDPOINT);
    }

    public String getReverseEndpoint() {
        return Objects.requireNonNullElse(reverseEndpoint, DEFAULT_REVERSE_ENDPOINT);
    }

    public String getLookupEndpoint() {
        return Objects.requireNonNullElse(lookupEndpoint, DEFAULT_LOOKUP_ENDPOINT);
    }

    public Map getCustomQueryParams() {
        return customQueryParams;
    }

    public Map getCustomHeaders() {
        return customHeaders;
    }

    public String getUserAgent() {
        return userAgent;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy