6 |
import java.util.Map; |
import java.util.Map; |
7 |
import java.util.Set; |
import java.util.Set; |
8 |
|
|
9 |
|
import dk.daoas.daoadresseservice.util.DeduplicateHelper; |
10 |
|
|
11 |
public class AliasGenerator { |
public class AliasGenerator { |
12 |
|
|
13 |
static class Replacement { |
static class Replacement { |
23 |
private ArrayList<Replacement> replacements = new ArrayList<Replacement>(); |
private ArrayList<Replacement> replacements = new ArrayList<Replacement>(); |
24 |
private Map<String, Set<String>> aliasCache = new HashMap<String, Set<String>>(8192); |
private Map<String, Set<String>> aliasCache = new HashMap<String, Set<String>>(8192); |
25 |
|
|
26 |
|
DeduplicateHelper<String> aliasHelper = new DeduplicateHelper<String>(400000); // Indeholder pt 379664 entries |
27 |
|
|
28 |
|
|
29 |
public AliasGenerator() { |
public AliasGenerator() { |
30 |
replacements.add( new Replacement("alle", "allé") ); |
replacements.add( new Replacement("alle", "allé") ); |
188 |
|
|
189 |
} |
} |
190 |
|
|
191 |
|
public void clear() { |
192 |
|
aliasCache.clear(); |
193 |
|
aliasHelper.clear(); |
194 |
|
} |
195 |
|
|
196 |
|
|
197 |
public Set<String> findVejAliaser(String vejnavn) { |
public Set<String> findVejAliaser(String vejnavn) { |
198 |
vejnavn = vejnavn.toLowerCase(); |
vejnavn = vejnavn.toLowerCase(); |
200 |
Set<String> aliasSet = aliasCache.get(vejnavn); |
Set<String> aliasSet = aliasCache.get(vejnavn); |
201 |
if (aliasSet == null) { |
if (aliasSet == null) { |
202 |
aliasSet = genererVejAliaser(vejnavn); |
aliasSet = genererVejAliaser(vejnavn); |
203 |
|
|
204 |
|
aliasSet = vaskAliaser( aliasSet ); |
205 |
|
|
206 |
aliasCache.put(vejnavn, aliasSet); |
aliasCache.put(vejnavn, aliasSet); |
207 |
} |
} |
208 |
|
|
210 |
|
|
211 |
} |
} |
212 |
|
|
213 |
|
private Set<String> vaskAliaser(Set<String> input) { |
214 |
|
HashSet<String> output = new HashSet<String>( input.size() ); |
215 |
|
|
216 |
|
for (String alias : input) { |
217 |
|
String vasketAlias = AddressUtils.vaskVejnavn(alias); |
218 |
|
vasketAlias = aliasHelper.getInstance(vasketAlias); |
219 |
|
output.add(vasketAlias); |
220 |
|
} |
221 |
|
|
222 |
|
return output; |
223 |
|
} |
224 |
|
|
225 |
|
|
226 |
private Set<String> genererVejAliaser(String vejnavn) { |
private Set<String> genererVejAliaser(String vejnavn) { |
227 |
|
|