package org.apereo.cas.authentication.adaptive.geo;
import java.net.InetAddress;
/**
* This is {@link GeoLocationService}.
*
* @author Misagh Moayyed
* @since 5.0.0
*/
public interface GeoLocationService {
/**
* Find a geo location based on an address.
*
* @param address the address
* @return the geo location
*/
GeoLocationResponse locate(InetAddress address);
/**
* Find a geo location based on an address.
*
* @param ipAddress the address
* @return the geo location
*/
GeoLocationResponse locate(String ipAddress);
/**
* Find a geo location based on an address.
*
* @param latitude the latitude
* @param longitude the longitude
* @return the geo location
*/
GeoLocationResponse locate(Double latitude, Double longitude);
/**
* Locate geo location response.
*
* @param ip the ip
* @param request the request
* @return the geo location response
*/
GeoLocationResponse locate(String ip, GeoLocationRequest request);
}