package org.rakam.collection.mapper.geoip.maxmind.ip2location;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class GeoLocation
{
private static final Map<Coordination, GeoLocation> GEO_LOCATION_MAP = new ConcurrentHashMap<>();
public final String country;
public final String stateProv;
public final String city;
public final Coordination coordination;
private GeoLocation(String country, String stateProv, String city, Coordination coordination)
{
this.country = country;
this.stateProv = stateProv;
this.city = city;
this.coordination = coordination;
}
public static GeoLocation of(String country, String stateProv, String city, Coordination coordination)
{
if (GEO_LOCATION_MAP.containsKey(coordination)) {
return GEO_LOCATION_MAP.get(coordination);
}
GeoLocation newLocation = new GeoLocation(country, stateProv, city, coordination);
GEO_LOCATION_MAP.put(coordination, newLocation);
return newLocation;
}
}