--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 16:12:28 2868 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/28 22:20:23 2877 @@ -35,6 +35,8 @@ ArrayList rejectedEntries = new ArrayList(); + Map unknownStreets = new TreeMap(); + Map dbkBaneMap = new TreeMap(); public AddressManager() throws SQLException { @@ -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; } @@ -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,6 +632,10 @@ return Collections.unmodifiableList(addressList); } + public Map getUnknownStreets() { + return Collections.unmodifiableMap( unknownStreets ); + } + public int getRejectedCount() {