1 |
package dk.daoas.daoadresseservice; |
package dk.daoas.daoadresseservice; |
2 |
|
|
3 |
import java.util.ArrayList; |
import java.util.ArrayList; |
4 |
|
import java.util.HashMap; |
5 |
import java.util.HashSet; |
import java.util.HashSet; |
6 |
|
import java.util.Map; |
7 |
import java.util.Set; |
import java.util.Set; |
8 |
|
|
9 |
public class AliasGenerator { |
public class AliasGenerator { |
18 |
} |
} |
19 |
} |
} |
20 |
|
|
21 |
ArrayList<Replacement> replacements = new ArrayList<Replacement>(); |
private ArrayList<Replacement> replacements = new ArrayList<Replacement>(); |
22 |
|
private Map<String, Set<String>> aliasCache = new HashMap<String, Set<String>>(8192); |
23 |
|
|
24 |
|
|
25 |
public AliasGenerator() { |
public AliasGenerator() { |
26 |
replacements.add( new Replacement("alle", "allé") ); |
replacements.add( new Replacement("alle", "allé") ); |
77 |
replacements.add( new Replacement("østre", "øster") ); |
replacements.add( new Replacement("østre", "øster") ); |
78 |
replacements.add( new Replacement("øster", "østre") ); |
replacements.add( new Replacement("øster", "østre") ); |
79 |
|
|
80 |
|
replacements.add( new Replacement("nordre", "nørre") ); |
81 |
|
replacements.add( new Replacement("nørre", "nordre") ); |
82 |
|
|
83 |
replacements.add( new Replacement("borgmester", "borgm") ); |
replacements.add( new Replacement("borgmester", "borgm") ); |
84 |
replacements.add( new Replacement("borgm", "borgmester") ); |
replacements.add( new Replacement("borgm", "borgmester") ); |
85 |
|
|
179 |
|
|
180 |
replacements.add( new Replacement("kronborg", "krbg") ); //Krbg ladegårdsvej, 3000 |
replacements.add( new Replacement("kronborg", "krbg") ); //Krbg ladegårdsvej, 3000 |
181 |
replacements.add( new Replacement("krbg", "kronborg") ); |
replacements.add( new Replacement("krbg", "kronborg") ); |
182 |
|
|
183 |
|
System.out.println("AliasGenetator, loaded replacements: " + replacements.size() ); |
184 |
|
|
185 |
} |
} |
186 |
|
|
187 |
|
|
|
|
|
188 |
public Set<String> findVejAliaser(String vejnavn) { |
public Set<String> findVejAliaser(String vejnavn) { |
189 |
vejnavn = vejnavn.toLowerCase(); |
vejnavn = vejnavn.toLowerCase(); |
190 |
|
|
191 |
|
Set<String> aliasSet = aliasCache.get(vejnavn); |
192 |
|
if (aliasSet == null) { |
193 |
|
aliasSet = genererVejAliaser(vejnavn); |
194 |
|
aliasCache.put(vejnavn, aliasSet); |
195 |
|
} |
196 |
|
|
197 |
|
return aliasSet; |
198 |
|
|
199 |
|
} |
200 |
|
|
201 |
|
|
202 |
|
private Set<String> genererVejAliaser(String vejnavn) { |
203 |
|
|
204 |
HashSet<String> aliasSet = new HashSet<String>(); |
HashSet<String> aliasSet = new HashSet<String>(); |
205 |
aliasSet.add(vejnavn); |
aliasSet.add(vejnavn); |
206 |
|
|
207 |
for (Replacement repl : replacements) { |
for (Replacement repl : replacements) { |
208 |
aliasSet.add( vejnavn.replace(repl.search, repl.replace) ); |
if (vejnavn.indexOf(repl.search) >= 0) { |
209 |
|
aliasSet.add( vejnavn.replace(repl.search, repl.replace) ); |
210 |
|
} |
211 |
|
|
212 |
} |
} |
213 |
|
|
214 |
|
|