--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/13 15:15:13 2282
+++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/13 15:58:36 2285
@@ -21,9 +21,6 @@
List
alleAdresser;
- /* Mapper mellem db Row ID og adresse noden */
- Map idAddressMap;
-
Map hundredePct;
@@ -80,12 +77,14 @@
public void buildSearchStructures() throws SQLException{
searchPostnrVejnavnGadeid = new HashMap>();
searchGadeidentAdresser = new HashMap>();
- idAddressMap = new HashMap();
-
+
System.out.println("Build -- stage 1");
alleAdresser = DatabaseLayer.getAllAdresses();
+ /* Mapper mellem db Row ID og adresse noden */
+ Map idAddressMap = new HashMap( alleAdresser.size() );
+
for (Address a : alleAdresser) {
idAddressMap.put(a.id, a);
@@ -137,11 +136,25 @@
orgAddress.extTarget = targetAddress;
orgAddress.extAfstand = eb.afstand;
- orgAddress.rute = calculateExtendedRoute(eb,orgAddress,targetAddress);
+ boolean covered = false;
+ if (targetAddress.distributor.equals("DAO")) {
+ orgAddress.rute = calculateExtendedDaoRoute(eb,orgAddress,targetAddress);
+ if (orgAddress.rute != null) {
+ orgAddress.koreliste = targetAddress.koreliste;
+ covered = true;
+ }
+ }
- if (orgAddress.rute != null) {
+ if (targetAddress.distributor.equals("BK")) {
+ orgAddress.koreliste = calculateExtendedBkKoreliste(eb,orgAddress,targetAddress);
+ if (orgAddress.koreliste != null) {
+ orgAddress.rute = targetAddress.rute;
+ covered = true;
+ }
+ }
+
+ if (covered) { //Kopier resten af felterne
orgAddress.daekningsType = DaekningsType.DAEKNING_UDVIDET;
- orgAddress.koreliste = targetAddress.koreliste;
orgAddress.dbkBane = targetAddress.dbkBane;
/* Sådan gør den gamle service */
@@ -184,60 +197,57 @@
}
- private String calculateExtendedRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) {
- switch (targetAddress.distributor) {
- case "DAO":
- // ///////////////////////////////////////////////////////////////////
- switch( eb.transport) {
- case "cykel":
- if (eb.afstand < 0.151) {
- return "." + targetAddress.rute;
- } else if (eb.afstand < 0.501) {
- return ".." + targetAddress.rute;
- } else if (eb.afstand < 0.701) {
- return "..." + targetAddress.rute;
- } else if (eb.afstand < 0.501) {
- return "...." + targetAddress.rute;
- }
- break;
- case "scooter":
- if (eb.afstand < 0.151) {
- return "." + targetAddress.rute;
- } else if (eb.afstand < 0.801) {
- return ".." + targetAddress.rute;
- } else if (eb.afstand < 1.201) {
- return "..." + targetAddress.rute;
- } else if (eb.afstand < 2.101) {
- return "...." + targetAddress.rute;
- }
- break;
- case "bil":
- if (eb.afstand < 0.151) {
- return "." + targetAddress.rute;
- } else if (eb.afstand < 1.001) {
- return ".." + targetAddress.rute;
- } else if (eb.afstand < 1.601) {
- return "..." + targetAddress.rute;
- } else if (eb.afstand < 2.601) {
- return "...." + targetAddress.rute;
- }
- break;
+ private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) {
+
+ // ///////////////////////////////////////////////////////////////////
+ switch( eb.transport) {
+ case "cykel":
+ if (eb.afstand < 0.151) {
+ return "." + targetAddress.rute;
+ } else if (eb.afstand < 0.501) {
+ return ".." + targetAddress.rute;
+ } else if (eb.afstand < 0.701) {
+ return "..." + targetAddress.rute;
+ } else if (eb.afstand < 0.501) {
+ return "...." + targetAddress.rute;
+ }
+ break;
+ case "scooter":
+ if (eb.afstand < 0.151) {
+ return "." + targetAddress.rute;
+ } else if (eb.afstand < 0.801) {
+ return ".." + targetAddress.rute;
+ } else if (eb.afstand < 1.201) {
+ return "..." + targetAddress.rute;
+ } else if (eb.afstand < 2.101) {
+ return "...." + targetAddress.rute;
+ }
+ break;
+ case "bil":
+ if (eb.afstand < 0.151) {
+ return "." + targetAddress.rute;
+ } else if (eb.afstand < 1.001) {
+ return ".." + targetAddress.rute;
+ } else if (eb.afstand < 1.601) {
+ return "..." + targetAddress.rute;
+ } else if (eb.afstand < 2.601) {
+ return "...." + targetAddress.rute;
}
break;
-
- ///////////////////////////////////////////////////////////
-
- case "BK":
- String inject;
- if (eb.afstand <= 0.500) {
- inject = ".";
- } else {
- inject = "..";
- }
- return AddressUtils.injectIntoBk(targetAddress.rute, inject);
- }
+ }
return null;
}
+ ///////////////////////////////////////////////////////////
+ private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) {
+ String inject;
+ if (eb.afstand <= 0.500) {
+ inject = ".";
+ } else {
+ inject = "..";
+ }
+ return AddressUtils.injectIntoBk(targetAddress.koreliste, inject);
+ }
+
}