--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 13:36:37 2867 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 22:20:23 2877 @@ -33,7 +33,9 @@ Map> > searchStructure; - ArrayList afvisteEntries = new ArrayList(); + ArrayList rejectedEntries = new ArrayList(); + + Map unknownStreets = new TreeMap(); Map dbkBaneMap = new TreeMap(); @@ -206,6 +208,7 @@ DatabaseLayerImplementation db = new DatabaseLayerImplementation(); db.updateAddresses(updates); + db.saveNewAddresses(inserts); @@ -224,6 +227,10 @@ private void visitSingle(AddressSourceEntry entry) { TreeMap> gade = searchStructure.get( entry.gadeid ); if (gade == null) { + if (! unknownStreets.containsKey(entry.gadeid)) { + unknownStreets.put(entry.gadeid, entry.vejnavn); + } + createFromEntry(entry); // if we get here there was no match - so we need to create it return; } @@ -250,6 +257,10 @@ TreeMap> gade = searchStructure.get( entry.gadeid ); if (gade == null) { + if (! unknownStreets.containsKey(entry.gadeid)) { + unknownStreets.put(entry.gadeid, entry.vejnavn); + } + System.out.println("[Range] Ukendt gadeID " + entry); return; } @@ -289,7 +300,7 @@ private void updateAddress(Address addr, AddressSourceEntry entry) { if ( addr.distributor != null && addr.distributor.equals(entry.distributor) == false) { - afvisteEntries.add(entry); + rejectedEntries.add(entry); System.out.println("Afviser " + entry); return; } @@ -477,7 +488,12 @@ if (entry.kommunekode < 100) { return; } - if (Short.parseShort(Integer.toString(entry.gadeid).substring(0, 4)) != entry.postnr) { + + String gadeidStr = Integer.toString(entry.gadeid); + if (gadeidStr.length() != 9) { + return; + } + if (Short.parseShort(gadeidStr.substring(0, 4)) != entry.postnr) { return; //gadeid / postnr mismatch } @@ -616,10 +632,14 @@ return Collections.unmodifiableList(addressList); } + public Map getUnknownStreets() { + return Collections.unmodifiableMap( unknownStreets ); + } + - public int getAfvistAntal() { - return afvisteEntries.size(); + public int getRejectedCount() { + return rejectedEntries.size(); } }