--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/23 12:48:00 2338 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/24 10:18:19 2358 @@ -1,7 +1,7 @@ package dk.daoas.daoadresseservice; import java.sql.SQLException; -import java.text.DateFormat; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; @@ -13,6 +13,7 @@ import java.util.concurrent.ConcurrentHashMap; import dk.daoas.daoadresseservice.AddressUtils.SplitResult; +import dk.daoas.daoadresseservice.admin.ServiceConfig; import dk.daoas.daoadresseservice.beans.Address; import dk.daoas.daoadresseservice.beans.DataStatisticsBean; import dk.daoas.daoadresseservice.beans.ExtendedBean; @@ -30,7 +31,13 @@ private Map helperCache; - private DataStatisticsBean stats = new DataStatisticsBean(); + private DataStatisticsBean stats = new DataStatisticsBean(); + + ServiceConfig config; + + public AdressSearch(ServiceConfig config) { + this.config = config; + } public SearchResult search(String postnrStr, String adresse) { @@ -54,12 +61,14 @@ SplitResult split = AddressUtils.splitAdresse(adresse); - String vasketVejnavn = AddressUtils.vaskVejnavn( split.vej ); + if (split.husnr.length() == 0) { return new SearchResult(Status.ERROR_MISSING_HOUSENUMBER); } + String vasketVejnavn = AddressUtils.vaskVejnavn( split.vej ); + Long gadeident = postnrVeje.get(vasketVejnavn); @@ -70,29 +79,33 @@ if ( gadeident == null) { - String googleVej = GeocodeHelper.googleHelper(postnr, split.vej ); - google = true; - - if (googleVej != null) { - String googleVasket = AddressUtils.vaskVejnavn( googleVej ); - gadeident = postnrVeje.get(googleVasket); + if (config.useGoogle) { + String googleVej = GeocodeHelper.googleHelper(config, postnr, split.vej ); + google = true; - if (gadeident != null) { - helperCache.put(helperSearchKey, gadeident); + if (googleVej != null) { + String googleVasket = AddressUtils.vaskVejnavn( googleVej ); + gadeident = postnrVeje.get(googleVasket); + + if (gadeident != null) { + helperCache.put(helperSearchKey, gadeident); + } } } } if ( gadeident == null) { - String osmVej = GeocodeHelper.openstreetmapHelper(postnr, split.vej ); - osm = true; - - if (osmVej != null) { - String osmVasket = AddressUtils.vaskVejnavn( osmVej ); - gadeident = postnrVeje.get(osmVasket); + if (config.useOpenStreetMaps) { + String osmVej = GeocodeHelper.openstreetmapHelper(postnr, split.vej ); + osm = true; - if (gadeident != null) { - helperCache.put(helperSearchKey, gadeident); + if (osmVej != null) { + String osmVasket = AddressUtils.vaskVejnavn( osmVej ); + gadeident = postnrVeje.get(osmVasket); + + if (gadeident != null) { + helperCache.put(helperSearchKey, gadeident); + } } } } @@ -279,10 +292,11 @@ default: stats.ikkeDaekketCount++; } - } + } + - stats.elapsed = stop-start1; - stats.buildTime = DateFormat.getInstance().format( new Date() ); + stats.elapsed = stop-start1; + stats.buildTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format( new Date() ); System.out.println("Build: direkteCount: " + stats.direkteCount); System.out.println("Build: extendedCount: " + stats.extendedCount);