--- dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/16 14:32:45 2313 +++ dao/DaoAdresseService/src/dk/daoas/daoadresseservice/AdressSearch.java 2015/02/23 12:48:00 2338 @@ -1,9 +1,12 @@ package dk.daoas.daoadresseservice; import java.sql.SQLException; +import java.text.DateFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -11,6 +14,7 @@ import dk.daoas.daoadresseservice.AddressUtils.SplitResult; import dk.daoas.daoadresseservice.beans.Address; +import dk.daoas.daoadresseservice.beans.DataStatisticsBean; import dk.daoas.daoadresseservice.beans.ExtendedBean; import dk.daoas.daoadresseservice.beans.HundredePctBean; import dk.daoas.daoadresseservice.beans.SearchResult; @@ -19,15 +23,14 @@ public class AdressSearch { - Map> searchPostnrVejnavnGadeid; - Map> searchGadeidentAdresser; + private Map> searchPostnrVejnavnGadeid; + private Map> searchGadeidentAdresser; - List
alleAdresser; + private List
alleAdresser; - Map helperCache; + private Map helperCache; - - Map hundredePct; + private DataStatisticsBean stats = new DataStatisticsBean(); public SearchResult search(String postnrStr, String adresse) { @@ -234,7 +237,7 @@ System.out.println("Build, stage2 elapsed: " + (start3-start2) ); System.out.println("Build -- stage 3 - 100pct"); - hundredePct = DatabaseLayer.get100PctList(); + Map hundredePct = DatabaseLayer.get100PctList(); for (Address addr : alleAdresser) { if (addr.daekningsType != DaekningsType.DAEKNING_IKKEDAEKKET) { continue; @@ -261,38 +264,47 @@ long stop = System.currentTimeMillis(); System.out.println("Build, stage3 elapsed: " + (stop-start3) ); System.out.println("Build -- Gathering statistics"); - - int direkteCount = 0; - int extendedCount = 0; - int hundredePctCount = 0; - int ikkeDaekketCount = 0; - + for (Address addr : alleAdresser) { switch (addr.daekningsType) { case DAEKNING_DIREKTE: - direkteCount++; + stats.direkteCount++; break; case DAEKNING_UDVIDET: - extendedCount++; + stats.extendedCount++; break; case DAEKNING_100PCT: - hundredePctCount++; + stats.hundredePctCount++; break; default: - ikkeDaekketCount++; + stats.ikkeDaekketCount++; } } - System.out.println("Build: direkteCount: " + direkteCount); - System.out.println("Build: extendedCount: " + extendedCount); - System.out.println("Build: hundredePctCount: " + hundredePctCount); - System.out.println("Build: ikkeDaekketCount: " + ikkeDaekketCount); + stats.elapsed = stop-start1; + stats.buildTime = DateFormat.getInstance().format( new Date() ); + + System.out.println("Build: direkteCount: " + stats.direkteCount); + System.out.println("Build: extendedCount: " + stats.extendedCount); + System.out.println("Build: hundredePctCount: " + stats.hundredePctCount); + System.out.println("Build: ikkeDaekketCount: " + stats.ikkeDaekketCount); System.out.println("Build: Total Elapsed: " + (stop-start1) ); System.out.println("Build Completed"); } + public DataStatisticsBean getStatistics() { + return stats; + } + + public void clear() { + searchPostnrVejnavnGadeid.clear(); + searchGadeidentAdresser.clear(); + alleAdresser.clear(); + helperCache.clear(); + } + private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) { @@ -333,7 +345,18 @@ break; } return null; - } + } + + public List
getNonCoveredAddresses() { + List
result = new ArrayList
(60000); + for (Address a : alleAdresser) { + if ( a.daekningsType == DaekningsType.DAEKNING_IKKEDAEKKET) { + result.add(a); + } + } + Collections.sort(result ); + return result; + } /////////////////////////////////////////////////////////// private String calculateExtendedBkKoreliste(ExtendedBean eb, Address orgAddress, Address targetAddress) {