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

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

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

revision 2783 by torben, Thu Nov 26 12:28:27 2015 UTC revision 2787 by torben, Mon Nov 30 13:47:21 2015 UTC
# Line 30  import dk.daoas.daoadresseservice.db.Dat Line 30  import dk.daoas.daoadresseservice.db.Dat
30  import dk.daoas.daoadresseservice.util.DaoUtils;  import dk.daoas.daoadresseservice.util.DaoUtils;
31  import dk.daoas.daoadresseservice.util.DeduplicateHelper;  import dk.daoas.daoadresseservice.util.DeduplicateHelper;
32  import dk.daoas.daoadresseservice.util.NaturalOrderComparator;  import dk.daoas.daoadresseservice.util.NaturalOrderComparator;
33    import dk.daoas.daoadresseservice.util.NearestShortTreeMap;
34    
35  public class AddressSearch {  public class AddressSearch {
36    
# Line 44  public class AddressSearch { Line 45  public class AddressSearch {
45          private DataStatisticsBean stats = new DataStatisticsBean();          private DataStatisticsBean stats = new DataStatisticsBean();
46                    
47          private DatabaseLayer db;          private DatabaseLayer db;
48            private ServiceConfig config;
49                    
50                    
51          StreetnameHelper levenshteinHelper;          StreetnameHelper levenshteinHelper;
# Line 55  public class AddressSearch { Line 57  public class AddressSearch {
57          public AddressSearch(DatabaseLayer db, ServiceConfig config) {          public AddressSearch(DatabaseLayer db, ServiceConfig config) {
58                                    
59                  this.db = db;                  this.db = db;
60                    this.config = config;
61                                    
62                  levenshteinHelper = new LevenshteinStreetnameHelper( this );                  levenshteinHelper = new LevenshteinStreetnameHelper( this );
63                  metaphoneHelper = new DoubleMetaphoneStreetnameHelper(config);                  metaphoneHelper = new DoubleMetaphoneStreetnameHelper(config);
# Line 81  public class AddressSearch { Line 84  public class AddressSearch {
84                  return addr;                  return addr;
85          }          }
86                    
87            
88          public SearchResult search(String postnrStr, String adresse)  {          public SearchResult search(String postnrStr, String adresse)  {
89                    return search(postnrStr, adresse, false);
90            }
91            
92            
93            public SearchResult search(String postnrStr, String adresse, boolean naermesteHusnr)  {
94                                    
95                  postnrStr = postnrStr.trim();                  postnrStr = postnrStr.trim();
96                  adresse = adresse.trim();                  adresse = adresse.trim();
# Line 190  public class AddressSearch { Line 198  public class AddressSearch {
198                                    
199    
200                  if (litraList == null) { //Husnr ikke fundet                  if (litraList == null) { //Husnr ikke fundet
201                          result.status = Status.ERROR_UNKNOWN_ADDRESSPOINT;                          
202                          return result;                          if (naermesteHusnr) {
203                                    TreeMap<Short, Map<String,Address>> gadeTreeMap = (TreeMap<Short, Map<String,Address>>) gade;
204                                    result.anvendtHusnr = NearestShortTreeMap.getNearestKey(husnrSearch, gadeTreeMap);
205                                    
206                                    result.nearestHusnr = true;
207                                    litraList = gade.get(result.anvendtHusnr);
208                                    
209                                    
210                            } else {
211                                    result.status = Status.ERROR_UNKNOWN_ADDRESSPOINT;
212                                    return result;  
213                            }
214                  }                  }
215                                    
216                  Address addr = litraList.get( result.splitResult.litra );                  Address addr = litraList.get( result.splitResult.litra );
217                                    
218                  if (addr == null) {                  if (addr == null) { //litra ikke fundet
219                          //husnr fundet men litra blev ikke fundet                          if (config.nearestLitra == true) {
220                          result.status = Status.ERROR_UNKNOWN_ADDRESSPOINT;                                  result.nearestLitra = true;
221                          return result;                                                    addr = litraList.values().iterator().next();                            
222                            } else {
223                                    //husnr fundet men litra blev ikke fundet
224                                    result.status = Status.ERROR_UNKNOWN_ADDRESSPOINT;
225                                    return result;  
226                            }                      
227                  }                  }
228                                    
229                  result.address = addr;                  result.address = addr;
# Line 839  public class AddressSearch { Line 863  public class AddressSearch {
863          }          }
864                    
865          public Address getAdresse(int gadeid, String husnrStr) {          public Address getAdresse(int gadeid, String husnrStr) {
866                                    short husnr = Short.parseShort( husnrStr.replaceAll("[^\\d]","") );
867                  short husnr = Short.parseShort( husnrStr.replaceAll("\\d","") );                  String litra =  husnrStr.replaceAll("\\d", "");        
                 String litra =  husnrStr.replaceAll("^\\d", "");  
868                                    
869                  Map<Short,Map<String, Address>> gade = searchGadeidentAdresser.get(gadeid);                  Map<Short,Map<String, Address>> gade = searchGadeidentAdresser.get(gadeid);
870                  Map<String, Address> litraList = gade.get(husnr);                  Map<String, Address> litraList = gade.get(husnr);

Legend:
Removed from v.2783  
changed lines
  Added in v.2787

  ViewVC Help
Powered by ViewVC 1.1.20