--- dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/25 10:25:22 2840 +++ dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressManager.java 2016/01/25 21:43:59 2844 @@ -5,6 +5,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.TreeMap; import org.apache.commons.lang3.StringUtils; @@ -17,7 +18,6 @@ import dk.daoas.adressevedligehold.util.TimingHelper; /* - * TODO: implementer visitRange() * TODO: håndtering af entry dupletter ! (+ rapportering af dem) */ @@ -229,7 +229,41 @@ private void visitRange(AddressSourceEntry entry) { - throw new UnsupportedOperationException("Not implemented yet"); + TreeMap> gade = searchStructure.get( entry.gadeid ); + if (gade == null) { + System.out.println("[Range] Ukendt gadeID " + entry); + return; + } + + for (Entry> husnrEntry: gade.entrySet()) { + + short husnummer = husnrEntry.getKey(); + + if ( (entry.husnr % 2) != (husnummer%2) ){ //lige/ulige skal passe sammen + continue; + } + + if ( husnummer < entry.husnr || husnummer > entry.tilHusnr) { + continue; + } + + ArrayList
litraList = husnrEntry.getValue(); + + /* a=adressetabel u=input + * and (a.husnr>u.FraHusNr OR (a.husnr=u.FraHusNr AND a.HusnrBogstav >= u.FraBog)) + * AND (a.husnr entry.husnr || (addr.husnr == entry.husnr && addr.husnrbogstav.compareTo(entry.litra) >= 0 )) { + //Using nested IF instead of && + if (addr.husnr < entry.tilHusnr || (addr.husnr == entry.tilHusnr && addr.husnrbogstav.compareTo(entry.tilLitra) <= 0 )) { + updateAddress(addr, entry); + } + } + } + } }