/[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 2814 by torben, Thu Jan 14 17:13:55 2016 UTC revision 2821 by torben, Tue Jan 19 10:02:51 2016 UTC
# Line 310  public class AddressSearch { Line 310  public class AddressSearch {
310                  searchGadeidentAdresser = new HashMap<Integer,  Map<Short, Map<String,Address>>>();                  searchGadeidentAdresser = new HashMap<Integer,  Map<Short, Map<String,Address>>>();
311                  helperCache = new ConcurrentHashMap<String,Integer>();                  helperCache = new ConcurrentHashMap<String,Integer>();
312                                    
313                    // //////////////////////
314                    // Start stage1
315                    
316                  long start1 = System.currentTimeMillis();                  long start1 = System.currentTimeMillis();
317                  System.out.println("Build -- stage 1");                  System.out.println("Build -- stage 1");
318                                    
319                  alleAdresser = db.getAllAdresses();                  alleAdresser = db.getAllAdresses();
320                                    
321                                    
322                  /* Mapper mellem db Row ID og adresse noden */                  /* Mapper mellem db Row ID og adresse noden - skal bruges i stage3*/
323                  Map<Integer,Address> idAddressMap = new HashMap<Integer,Address>( alleAdresser.size() );                  Map<Integer,Address> idAddressMap = new HashMap<Integer,Address>( alleAdresser.size() );
324                  DeduplicateHelper<String> aliasHelper = new DeduplicateHelper<String>(400000); // Indeholder pt 379664 entries                  
325                                    
326                  DeduplicateHelper<Short> shortHelper = new DeduplicateHelper<Short>();                  DeduplicateHelper<Short> shortHelper = new DeduplicateHelper<Short>();
327                  DeduplicateHelper<Integer> intHelper = new DeduplicateHelper<Integer>();                  DeduplicateHelper<Integer> intHelper = new DeduplicateHelper<Integer>();
# Line 347  public class AddressSearch { Line 350  public class AddressSearch {
350                                  gadeident = intHelper.getInstance( a.gadeid );                                  gadeident = intHelper.getInstance( a.gadeid );
351                                                                    
352                                  Set<String> aliaser = aliasGenerator.findVejAliaser(a.vejnavn);                                  Set<String> aliaser = aliasGenerator.findVejAliaser(a.vejnavn);
353                                  for(String alias : aliaser) {                                  for(String alias : aliaser) {                                  
354                                          String vasketAlias = AddressUtils.vaskVejnavn(alias);                                          postnrVeje.put(alias, gadeident);      
                                         vasketAlias = aliasHelper.getInstance(vasketAlias);  
                                           
                                         postnrVeje.put(vasketAlias, gadeident);  
355                                  }                                  }
356                                                                    
357                          }                          }
# Line 372  public class AddressSearch { Line 372  public class AddressSearch {
372                          litraList.put(a.husnrbogstav, a);                                                litraList.put(a.husnrbogstav, a);                      
373                  }                  }
374                                    
375                  aliasHelper = null; //frigiv hukommelse inden stage2                  
376                    aliasGenerator.clear();  //frigiv hukommelse inden stage2
377                  aliasGenerator = null;                  aliasGenerator = null;
378                    shortHelper.clear();
379                    shortHelper = null;
380                    intHelper.clear();
381                    intHelper = null;
382                                                                    
383    
384                  ////////////////////////////////////////////////////////////////////////////////////////                  ////////////////////////////////////////////////////////////////////////////////////////
# Line 410  public class AddressSearch { Line 415  public class AddressSearch {
415                  }                  }
416                  System.out.println("Anvendte " + vaskCount + " aliaser fra databasen");                  System.out.println("Anvendte " + vaskCount + " aliaser fra databasen");
417                                    
418                    aliasList.clear();//cleanup inden stage3
419                    
420                                    
421                  ////////////////////////////////////////////////////////////////////////////////////////                  ////////////////////////////////////////////////////////////////////////////////////////
422                  long start3 = System.currentTimeMillis();                  long start3 = System.currentTimeMillis();
# Line 452  public class AddressSearch { Line 459  public class AddressSearch {
459    
460                          boolean covered = false;                          boolean covered = false;
461                          if (targetAddress.distributor.equals("DAO")) {                          if (targetAddress.distributor.equals("DAO")) {
462                                  orgAddress.rute = calculateExtendedDaoRoute(eb,orgAddress,targetAddress);                                        orgAddress.ruteMandag = calculateExtendedDaoRoute(eb,orgAddress,targetAddress);
463                                  orgAddress.rute = ruteHelper.getInstance(orgAddress.rute);                                  orgAddress.ruteMandag = ruteHelper.getInstance(orgAddress.ruteMandag);
464                                                                    
465                                  if (orgAddress.rute != null) {                                  if (orgAddress.ruteMandag != null) {
466                                          orgAddress.koreliste = targetAddress.koreliste;                                          orgAddress.korelisteMandag = targetAddress.korelisteMandag;
467                                          covered = true;                                          covered = true;
468                                  }                                  }
469                          }                          }
470                                                    
471                          if (targetAddress.distributor.equals("BK")) {                          if (targetAddress.distributor.equals("BK")) {
472                                  orgAddress.koreliste = calculateExtendedBkKoreliste(eb,orgAddress,targetAddress);                                  orgAddress.korelisteMandag = calculateExtendedBkKoreliste(eb,orgAddress,targetAddress);
473                                  orgAddress.koreliste = korelisteHelper.getInstance(orgAddress.koreliste);                                  orgAddress.korelisteMandag = korelisteHelper.getInstance(orgAddress.korelisteMandag);
474                                                                    
475                                  if (orgAddress.koreliste != null) {                                  if (orgAddress.korelisteMandag != null) {
476                                          orgAddress.rute = targetAddress.rute;                                          orgAddress.ruteMandag = targetAddress.ruteMandag;
477                                          covered = true;                                          covered = true;
478                                  }                                  }
479                          }                          }
# Line 485  public class AddressSearch { Line 492  public class AddressSearch {
492                          }                          }
493                  }                  }
494                                    
495                  // nu skal vi ikke bruge idAddressMap længere                  // cleanup inden stage 4
496                  idAddressMap = null;                  idAddressMap = null;
497                    ruteHelper = null;
498                    korelisteHelper = null;
499                                    
500                  //////////////////////////////////////////////////////////////////////////////////////                  //////////////////////////////////////////////////////////////////////////////////////
501                  long start4 = System.currentTimeMillis();                  long start4 = System.currentTimeMillis();
# Line 510  public class AddressSearch { Line 519  public class AddressSearch {
519                          }                          }
520                                                    
521                          addr.daekningsType = DaekningsType.DAEKNING_100PCT;                          addr.daekningsType = DaekningsType.DAEKNING_100PCT;
522                          addr.rute = bean.rute;                          addr.ruteMandag = bean.rute;
523                          addr.koreliste = bean.koreliste;                          addr.korelisteMandag = bean.koreliste;
524                          addr.dbkBane = bean.dbkBane;                          addr.dbkBane = bean.dbkBane;
525                          addr.distributor = bean.distributor;                          addr.distributor = bean.distributor;
526                  }                  }
# Line 570  public class AddressSearch { Line 579  public class AddressSearch {
579                    
580                    
581          private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) {          private String calculateExtendedDaoRoute(ExtendedBean eb, Address orgAddress, Address targetAddress) {
582                  if (targetAddress.rute == null) { //hvis targetAdress.rute er null så er adressen ikke dækket alligevel                  if (targetAddress.ruteMandag == null) { //hvis targetAdress.rute er null så er adressen ikke dækket alligevel
583                          return null;                          return null;
584                  }                  }
585    
# Line 578  public class AddressSearch { Line 587  public class AddressSearch {
587                  switch( eb.transport) {                  switch( eb.transport) {
588                  case "cykel":                  case "cykel":
589                          if (eb.afstand < 0.151) {                          if (eb.afstand < 0.151) {
590                                  return "." + targetAddress.rute;                                  return "." + targetAddress.ruteMandag;
591                          } else if (eb.afstand < 0.501) {                          } else if (eb.afstand < 0.501) {
592                                  return ".." + targetAddress.rute;                                  return ".." + targetAddress.ruteMandag;
593                          } else if (eb.afstand < 0.701) {                          } else if (eb.afstand < 0.701) {
594                                  return "..." + targetAddress.rute;                                  return "..." + targetAddress.ruteMandag;
595                          } else if (eb.afstand < 1.001) {                          } else if (eb.afstand < 1.001) {
596                                  return "...." + targetAddress.rute;                                  return "...." + targetAddress.ruteMandag;
597                          }                          }
598                          break;                                            break;                  
599                  case "scooter":                  case "scooter":
600                          if (eb.afstand < 0.151) {                          if (eb.afstand < 0.151) {
601                                  return "." + targetAddress.rute;                                  return "." + targetAddress.ruteMandag;
602                          } else if (eb.afstand < 0.801) {                          } else if (eb.afstand < 0.801) {
603                                  return ".." + targetAddress.rute;                                  return ".." + targetAddress.ruteMandag;
604                          } else if (eb.afstand < 1.201) {                          } else if (eb.afstand < 1.201) {
605                                  return "..." + targetAddress.rute;                                  return "..." + targetAddress.ruteMandag;
606                          } else if (eb.afstand < 2.101) {                          } else if (eb.afstand < 2.101) {
607                                  return "...." + targetAddress.rute;                                  return "...." + targetAddress.ruteMandag;
608                          }                          }
609                          break;                                                    break;                          
610                  case "bil":                  case "bil":
611                          if (eb.afstand < 0.151) {                          if (eb.afstand < 0.151) {
612                                  return "." + targetAddress.rute;                                  return "." + targetAddress.ruteMandag;
613                          } else if (eb.afstand < 1.001) {                          } else if (eb.afstand < 1.001) {
614                                  return ".." + targetAddress.rute;                                  return ".." + targetAddress.ruteMandag;
615                          } else if (eb.afstand < 1.601) {                          } else if (eb.afstand < 1.601) {
616                                  return "..." + targetAddress.rute;                                  return "..." + targetAddress.ruteMandag;
617                          } else if (eb.afstand < 2.601) {                          } else if (eb.afstand < 2.601) {
618                                  return "...." + targetAddress.rute;                                  return "...." + targetAddress.ruteMandag;
619                          }                          }
620                          break;                          break;
621                  default:                  default:
# Line 645  public class AddressSearch { Line 654  public class AddressSearch {
654                  } else {                  } else {
655                          inject = "..";                          inject = "..";
656                  }                  }
657                  return AddressUtils.injectIntoBk(targetAddress.koreliste, inject);                  return AddressUtils.injectIntoBk(targetAddress.korelisteMandag, inject);
658          }          }
659                    
660                    

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

  ViewVC Help
Powered by ViewVC 1.1.20