/[projects]/dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupWorker.java
ViewVC logotype

Diff of /dao/FuldDaekningWorker/src/dk/daoas/fulddaekning/LookupWorker.java

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

revision 2229 by torben, Mon Sep 22 11:55:47 2014 UTC revision 2259 by torben, Mon Feb 9 13:21:39 2015 UTC
# Line 6  import java.util.logging.Level; Line 6  import java.util.logging.Level;
6  import java.util.logging.Logger;  import java.util.logging.Logger;
7    
8  public class LookupWorker implements Runnable {  public class LookupWorker implements Runnable {
9          class LookupResult {          static class LookupResult {
10                  double bedsteAfstand = 9999999.999;                  double bedsteAfstand = 9999999.999;
11                  Adresse bedsteAdr = null;                  Adresse bedsteAdr = null;
12          }          }
13                    
14            Constants consts;
15            
16          Logger logger = Logger.getLogger( LookupWorker.class.getName() );          Logger logger = Logger.getLogger( LookupWorker.class.getName() );
17                    
18          int workerId;          int workerId;
# Line 19  public class LookupWorker implements Run Line 21  public class LookupWorker implements Run
21          public LookupWorker(int workerId, Lookup lookup) {          public LookupWorker(int workerId, Lookup lookup) {
22                  this.workerId = workerId;                  this.workerId = workerId;
23                  this.lookup = lookup;                  this.lookup = lookup;
24                    
25                    consts = Constants.getInstance();
26          }          }
27    
28          @Override          @Override
# Line 42  public class LookupWorker implements Run Line 46  public class LookupWorker implements Run
46                          if (result.bedsteAdr == null && consts.doExtendedLookup() == true) {//hvis vi ikke fandt en adresse og vi må kigge på udvidet område                          if (result.bedsteAdr == null && consts.doExtendedLookup() == true) {//hvis vi ikke fandt en adresse og vi må kigge på udvidet område
47                                  logger.info("Extended lookup for " + qAdresse);                                  logger.info("Extended lookup for " + qAdresse);
48                                                                    
49                                  result = findBedsteAdresse(qAdresse, Lookup.alleDaekkedeAdresser);                                  result = findBedsteAdresse(qAdresse, LookupMain.alleDaekkedeAdresser);
50                          }                          }
51                                                    
52                                                    
53                          if ( result.bedsteAdr != null) {                          if ( result.bedsteAdr != null) {
54                                                                    
55                                  if (result.bedsteAfstand <= consts.getMaxDistance() ) { //Gem kun hvis distancen er under max_distance for distributøren                                  if (result.bedsteAfstand <= consts.getMaxDistance() ) { //Gem kun hvis distancen er under max_distance for distributøren
56                                          if (Lookup.verbose == true) {                                          if (LookupMain.verbose == true) {
57                                                  logger.info("(" +workerId + ") Bedste: " + qAdresse + "==>" + result.bedsteAdr + " ::: " + result.bedsteAfstand );                                                  logger.fine("(" +workerId + ") Bedste: " + qAdresse + "==>" + result.bedsteAdr + " ::: " + result.bedsteAfstand );
58                                          }                                          }
59                                                                                    
60                                          try {                                          try {
# Line 62  public class LookupWorker implements Run Line 66  public class LookupWorker implements Run
66                                                  System.exit(0); //hvis at indsættelsen fejler skal vi afbryde med det samme                                                  System.exit(0); //hvis at indsættelsen fejler skal vi afbryde med det samme
67                                          }                                          }
68                                  } else {                                  } else {
69                                          logger.info("(" +workerId + ") For stor afstand " + qAdresse + " -> " + result.bedsteAfstand);                                          logger.fine("(" +workerId + ") For stor afstand " + qAdresse + " -> " + result.bedsteAfstand);
70                                  }                                  }
71                          } else {                          } else {
72                                  logger.warning("(" +workerId + ") Ingen match til " + qAdresse);                                  logger.fine("(" +workerId + ") Ingen match til " + qAdresse);
73                          }                          }
74    
75                  }                  }
76                                    
                   
                 lookup.shutdownWorker( workerId);  
77          }          }
78                    
79          LookupResult findBedsteAdresse(Adresse qAdresse, Adresse daekkede[]) {          LookupResult findBedsteAdresse(Adresse qAdresse, Adresse daekkede[]) {
# Line 79  public class LookupWorker implements Run Line 81  public class LookupWorker implements Run
81                                    
82                  for (int i=0; i<daekkede.length; i++) {                  for (int i=0; i<daekkede.length; i++) {
83                          Adresse daekket = daekkede[i];                          Adresse daekket = daekkede[i];
84                            
85                            if (consts.doCheckHO() ) {
86                                    if (qAdresse.ho != daekket.ho) {
87                                            //logger.info("Forkert HO: " + qAdresse + " - >" + daekket); //Skal udkommenteres senere når HO check er valideret
88                                            continue;
89                                    }
90                            }
91                            
92                          double afstand = Adresse.beregnAfstand(qAdresse, daekket);                          double afstand = Adresse.beregnAfstand(qAdresse, daekket);
93                                                    
94                          if (afstand < result.bedsteAfstand) {                          if (afstand < result.bedsteAfstand) {

Legend:
Removed from v.2229  
changed lines
  Added in v.2259

  ViewVC Help
Powered by ViewVC 1.1.20