--- dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AliasGenerator.java 2016/01/14 17:13:55 2814 +++ dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AliasGenerator.java 2016/01/14 18:03:16 2815 @@ -6,6 +6,8 @@ import java.util.Map; import java.util.Set; +import dk.daoas.daoadresseservice.util.DeduplicateHelper; + public class AliasGenerator { static class Replacement { @@ -21,6 +23,8 @@ private ArrayList replacements = new ArrayList(); private Map> aliasCache = new HashMap>(8192); + DeduplicateHelper aliasHelper = new DeduplicateHelper(400000); // Indeholder pt 379664 entries + public AliasGenerator() { replacements.add( new Replacement("alle", "allé") ); @@ -184,6 +188,11 @@ } + public void clear() { + aliasCache.clear(); + aliasHelper.clear(); + } + public Set findVejAliaser(String vejnavn) { vejnavn = vejnavn.toLowerCase(); @@ -191,6 +200,9 @@ Set aliasSet = aliasCache.get(vejnavn); if (aliasSet == null) { aliasSet = genererVejAliaser(vejnavn); + + aliasSet = vaskAliaser( aliasSet ); + aliasCache.put(vejnavn, aliasSet); } @@ -198,6 +210,18 @@ } + private Set vaskAliaser(Set input) { + HashSet output = new HashSet( input.size() ); + + for (String alias : input) { + String vasketAlias = AddressUtils.vaskVejnavn(alias); + vasketAlias = aliasHelper.getInstance(vasketAlias); + output.add(vasketAlias); + } + + return output; + } + private Set genererVejAliaser(String vejnavn) {