code: public static GeoCodingResult geocode(final String street, final String house, String postalCode, final String city, final String state, final String country) throws FrameworkException {
  
  		final String language  = Settings.GeocodingLanguage.getValue();
  		final String cacheKey  = cacheKey(street, house, postalCode, city, state, country, language);
  		GeoCodingResult result = geoCache.get(cacheKey);
  
  		if (result == null) {
  
  			GeoCodingProvider provider = getGeoCodingProvider();
  			if (provider != null) {
  
  				try {
  
  					result = provider.geocode(street, house, postalCode, city, state, country, language);
  					if (result != null) {
  
  						// store in cache
  						geoCache.put(cacheKey, result);
  					}
  
  				} catch (IOException ioex) {
  
  					// IOException, try again next time
  					logger.warn("Unable to obtain geocoding result using provider {}: {}", new Object[] { provider.getClass().getName(), ioex.getMessage() });
  				}
  			}
  
  		}
  
  		return result;
  	}
docs: Tries do find a geo location for the given address using the GeoCodingProvider
  specified in the configuration file.
  
  @param country the country to search for, may be null
  @param state the state to search for, may be null
  @param city the city to search for, may be null
  @param street the street to search for, may be null
  @param house the house to search for, may be null
  
  @return the geolocation of the given address, or null
  
  @throws FrameworkException