--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 12:14:50 2866 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 22:14:42 2876 @@ -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,7 @@ private void visitSingle(AddressSourceEntry entry) { TreeMap> gade = searchStructure.get( entry.gadeid ); if (gade == null) { + unknownStreets.putIfAbsent(entry.gadeid, entry.vejnavn); createFromEntry(entry); // if we get here there was no match - so we need to create it return; } @@ -250,6 +254,7 @@ TreeMap> gade = searchStructure.get( entry.gadeid ); if (gade == null) { + unknownStreets.putIfAbsent(entry.gadeid, entry.vejnavn); System.out.println("[Range] Ukendt gadeID " + entry); return; } @@ -289,7 +294,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 +482,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 } @@ -595,7 +605,9 @@ break; case "NS": bane = 204; - break; + break; + default: + throw new RuntimeException("Ukendt distributor" + a.distributor); //Silence findBugs } if (bane == null) { @@ -614,10 +626,14 @@ return Collections.unmodifiableList(addressList); } + public Map getUnknownStreets() { + return Collections.unmodifiableMap( unknownStreets ); + } + - public int getAfvistAntal() { - return afvisteEntries.size(); + public int getRejectedCount() { + return rejectedEntries.size(); } }