/[projects]/dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AliasGenerator.java
ViewVC logotype

Diff of /dao/DaoAdresseService/src/main/java/dk/daoas/daoadresseservice/AliasGenerator.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2809 by torben, Thu Jan 14 10:25:09 2016 UTC revision 2821 by torben, Tue Jan 19 10:02:51 2016 UTC
# Line 1  Line 1 
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    import dk.daoas.daoadresseservice.util.DeduplicateHelper;
10    
11  public class AliasGenerator {  public class AliasGenerator {
12                    
13          static class Replacement {          static class Replacement {
# Line 16  public class AliasGenerator { Line 20  public class AliasGenerator {
20                  }                  }
21          }          }
22                    
23          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);
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é") );
# Line 73  public class AliasGenerator { Line 81  public class AliasGenerator {
81                  replacements.add( new Replacement("østre", "øster") );                  replacements.add( new Replacement("østre", "øster") );
82                  replacements.add( new Replacement("øster", "østre") );                  replacements.add( new Replacement("øster", "østre") );
83                                    
84                    replacements.add( new Replacement("nordre", "nørre") );
85                    replacements.add( new Replacement("nørre", "nordre") );
86                    
87                  replacements.add( new Replacement("borgmester", "borgm") );                  replacements.add( new Replacement("borgmester", "borgm") );
88                  replacements.add( new Replacement("borgm", "borgmester") );                  replacements.add( new Replacement("borgm", "borgmester") );
89                                    
# Line 172  public class AliasGenerator { Line 183  public class AliasGenerator {
183                                                                    
184                  replacements.add( new Replacement("kronborg", "krbg") ); //Krbg ladegårdsvej, 3000                  replacements.add( new Replacement("kronborg", "krbg") ); //Krbg ladegårdsvej, 3000
185                  replacements.add( new Replacement("krbg", "kronborg") );                  replacements.add( new Replacement("krbg", "kronborg") );
186                    
187                    System.out.println("AliasGenerator, loaded replacements: " + replacements.size() );
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();
199                    
200                    Set<String> aliasSet = aliasCache.get(vejnavn);
201                    if (aliasSet == null) {
202                            aliasSet = genererVejAliaser(vejnavn);
203                            
204                            aliasSet = vaskAliaser( aliasSet );
205                            
206                            aliasCache.put(vejnavn, aliasSet);
207                    }
208                    
209                    return aliasSet;
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) {
227                    
228                  HashSet<String> aliasSet = new HashSet<String>();                  HashSet<String> aliasSet = new HashSet<String>();
229                  aliasSet.add(vejnavn);                  aliasSet.add(vejnavn);
230                                    

Legend:
Removed from v.2809  
changed lines
  Added in v.2821

  ViewVC Help
Powered by ViewVC 1.1.20