9 |
import java.util.HashSet; |
import java.util.HashSet; |
10 |
import java.util.List; |
import java.util.List; |
11 |
import java.util.Map; |
import java.util.Map; |
12 |
|
import java.util.Map.Entry; |
13 |
import java.util.Set; |
import java.util.Set; |
14 |
|
import java.util.TreeMap; |
15 |
|
import java.util.TreeSet; |
16 |
import java.util.concurrent.ConcurrentHashMap; |
import java.util.concurrent.ConcurrentHashMap; |
17 |
|
|
18 |
import org.apache.commons.lang3.StringUtils; |
import org.apache.commons.lang3.StringUtils; |
30 |
|
|
31 |
public class AddressSearch { |
public class AddressSearch { |
32 |
|
|
33 |
private Map<Integer, Map<String,Long>> searchPostnrVejnavnGadeid; |
private Map<Short, Map<String,Long>> searchPostnrVejnavnGadeid; |
34 |
private Map<Long, Map<String,Address>> searchGadeidentAdresser; |
private Map<Long, Map<String,Address>> searchGadeidentAdresser; |
35 |
|
|
36 |
private List<Address> alleAdresser; |
private List<Address> alleAdresser; |
197 |
|
|
198 |
|
|
199 |
public void buildSearchStructures() throws SQLException{ |
public void buildSearchStructures() throws SQLException{ |
200 |
searchPostnrVejnavnGadeid = new HashMap<Integer, Map<String,Long>>(); |
searchPostnrVejnavnGadeid = new HashMap<Short, Map<String,Long>>(); |
201 |
searchGadeidentAdresser = new HashMap<Long, Map<String,Address>>(); |
searchGadeidentAdresser = new HashMap<Long, Map<String,Address>>(); |
202 |
helperCache = new ConcurrentHashMap<String,Long>(); |
helperCache = new ConcurrentHashMap<String,Long>(); |
203 |
|
|
606 |
//danske tegn 2 |
//danske tegn 2 |
607 |
aliasSet.add( vVejnavn.replace("æ", "ae").replace("ø", "oe") ); |
aliasSet.add( vVejnavn.replace("æ", "ae").replace("ø", "oe") ); |
608 |
aliasSet.add( vVejnavn.replace("æ", "ae").replace("å", "aa") ); |
aliasSet.add( vVejnavn.replace("æ", "ae").replace("å", "aa") ); |
609 |
aliasSet.add( vVejnavn.replace("ø", "ae").replace("å", "aa") ); |
aliasSet.add( vVejnavn.replace("ø", "oe").replace("å", "aa") ); |
610 |
aliasSet.add( vVejnavn.replace("ae", "æ").replace("oe","ø") ); |
aliasSet.add( vVejnavn.replace("ae", "æ").replace("oe","ø") ); |
611 |
aliasSet.add( vVejnavn.replace("ae", "æ").replace("aa","å") ); |
aliasSet.add( vVejnavn.replace("ae", "æ").replace("aa","å") ); |
612 |
aliasSet.add( vVejnavn.replace("oe", "ø").replace("aa", "å") ); |
aliasSet.add( vVejnavn.replace("oe", "ø").replace("aa", "å") ); |
619 |
return aliasSet; |
return aliasSet; |
620 |
} |
} |
621 |
|
|
622 |
|
public Set<Short> getPostnumre() { |
623 |
|
return new TreeSet<Short>( searchPostnrVejnavnGadeid.keySet() ); |
624 |
|
} |
625 |
|
|
626 |
|
public Set<Entry<String,Long>> getVejnavne(int postnr) { |
627 |
|
Map<String,Long> map = searchPostnrVejnavnGadeid.get(postnr); |
628 |
|
TreeMap<String,Long> newMap = new TreeMap<String,Long>(); |
629 |
|
for (Entry<String,Long> entry : map.entrySet() ) { |
630 |
|
newMap.put(entry.getKey(), entry.getValue()); |
631 |
|
} |
632 |
|
|
633 |
|
return newMap.entrySet(); |
634 |
|
} |
635 |
|
|
636 |
|
public Set<String> getHusnumre(long gadeid) { |
637 |
|
|
638 |
|
Map<String, Address> gade = searchGadeidentAdresser.get(gadeid); |
639 |
|
return new TreeSet<String>( gade.keySet() ); |
640 |
|
} |
641 |
|
|
642 |
|
public Address getAdresse(long gadeid, String husnr) { |
643 |
|
|
644 |
|
Map<String, Address> gade = searchGadeidentAdresser.get(gadeid); |
645 |
|
return gade.get(husnr); |
646 |
|
|
647 |
|
} |
648 |
|
|
649 |
} |
} |