/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressManager.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressManager.java

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

revision 2844 by torben, Mon Jan 25 21:43:59 2016 UTC revision 2904 by torben, Wed Feb 3 18:51:36 2016 UTC
# Line 2  package dk.daoas.adressevedligehold; Line 2  package dk.daoas.adressevedligehold;
2    
3  import java.sql.SQLException;  import java.sql.SQLException;
4  import java.util.ArrayList;  import java.util.ArrayList;
5    import java.util.Arrays;
6  import java.util.Collections;  import java.util.Collections;
7  import java.util.List;  import java.util.List;
8  import java.util.Map;  import java.util.Map;
# Line 14  import dk.daoas.adressevedligehold.Addre Line 15  import dk.daoas.adressevedligehold.Addre
15  import dk.daoas.adressevedligehold.beans.Address;  import dk.daoas.adressevedligehold.beans.Address;
16  import dk.daoas.adressevedligehold.beans.Address.AddressState;  import dk.daoas.adressevedligehold.beans.Address.AddressState;
17  import dk.daoas.adressevedligehold.db.DatabaseLayerImplementation;  import dk.daoas.adressevedligehold.db.DatabaseLayerImplementation;
18    import dk.daoas.adressevedligehold.tasks.TaskLogger;
19  import dk.daoas.adressevedligehold.util.DeduplicateHelper;  import dk.daoas.adressevedligehold.util.DeduplicateHelper;
20    import dk.daoas.adressevedligehold.util.MiscUtils;
21  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
22    
23  /*  /*
24   * TODO: håndtering af entry dupletter ! (+ rapportering af dem)   * TODO: håndtering af entry dupletter ! (+ rapportering af dem)
25    
26    
27    
28   */   */
29    
30  public class AddressManager {  public class AddressManager {
31                    
32            private TaskLogger logger = TaskLogger.getInstance();
33            
34                    
35          List<Address> addressList;          List<Address> addressList;
36                    
37          Map<Integer, TreeMap<Short, ArrayList<Address>> > searchStructure;          Map<Integer, TreeMap<Short, ArrayList<Address>> > searchStructure;
38                    
39          ArrayList<AddressSourceEntry> afvisteEntries = new ArrayList<AddressSourceEntry>();          ArrayList<AddressSourceEntry> rejectedEntries = new ArrayList<AddressSourceEntry>();
40            
41            Map<Integer,String> unknownStreets = new TreeMap<Integer, String>();
42            
43            Map<Short,Short> dbkBaneMap = new TreeMap<Short,Short>();
44                    
45          public AddressManager() throws SQLException {          public AddressManager() throws SQLException {
46                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();
# Line 49  public class AddressManager { Line 61  public class AddressManager {
61                          Short husnr = shortHelper.getInstance( a.husnr );                          Short husnr = shortHelper.getInstance( a.husnr );
62                          TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( gadeid );                          TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( gadeid );
63                                                    
64                            if (a.dbkBane > 0 && a.postnr<=4999) {
65                                    Short bane = dbkBaneMap.get(a.postnr);
66                                    if (bane == null) {
67                                            dbkBaneMap.put(a.postnr, a.dbkBane);
68                                    }
69                            }
70                            
71                          if (gade == null) {                          if (gade == null) {
72                                  gade = new TreeMap<Short,ArrayList<Address>>();                                  gade = new TreeMap<Short,ArrayList<Address>>();
73                                  searchStructure.put(gadeid, gade);                                  searchStructure.put(gadeid, gade);
# Line 68  public class AddressManager { Line 87  public class AddressManager {
87                          list.trimToSize();                          list.trimToSize();
88                  }                  }
89                                    
90                  System.out.println("AddressManager ready, elapsed " + timer.getElapsed() + "ms");                  logger.info("AddressManager ready, elapsed " + timer.getElapsed() + "ms");
91                                    
92                                    
93          }          }
# Line 157  public class AddressManager { Line 176  public class AddressManager {
176                          if (addr.state == AddressState.NOT_CHANGED) {                          if (addr.state == AddressState.NOT_CHANGED) {
177                                  continue;                                  continue;
178                          }                          }
179                          if (addr.stateMan == AddressState.NOT_CHANGED || addr.stateMan == AddressState.CREATED) {                          /*if (addr.stateMan == AddressState.NOT_CHANGED || addr.stateMan == AddressState.CREATED) {
180                                  continue;                                  continue;
181                          }                          }*/
182                                                    
183                          if (addr.stateMan != AddressState.MODIFIED ) {                          if (addr.stateMan != AddressState.MODIFIED ) {
184                                  continue;                                  continue;
185                          }                          }
186                                                    
187                          System.out.println(addr.state + ": " + addr.toStringExtended() );                          logger.info(addr.state + ": " + addr.toStringExtended() );
188                          System.out.println(addr.getRuteString() );                          logger.info(addr.getRuteString() );
189                                                    
190                          if (count++ > 15)                          if (count++ > 50)
191                                  return;                                  return;
192                  }                  }
193          }          }
194                    
195          public void writeBackChanges() {          public void writeBackChanges() {
196                  System.out.println("Writing back changes");                  logger.info("Writing back changes");
197                  TimingHelper timer = new TimingHelper();                  TimingHelper timer = new TimingHelper();
198                                    
199                  List<Address> updates = new ArrayList<Address>(1024*1024);                  List<Address> updates = new ArrayList<Address>(1024*1024);
# Line 190  public class AddressManager { Line 209  public class AddressManager {
209                  }                  }
210                                    
211                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();
212                    
213                  db.updateAddresses(updates);                  db.updateAddresses(updates);
214                    db.saveNewAddresses(inserts);
215    
216                    
217                                    
218                  System.out.println("Writeback done: elapsed " + timer.getElapsed() + "ms.");                  logger.info("Writeback done: elapsed " + timer.getElapsed() + "ms.");
219          }          }
220                    
221                    
# Line 207  public class AddressManager { Line 230  public class AddressManager {
230          private void visitSingle(AddressSourceEntry entry) {          private void visitSingle(AddressSourceEntry entry) {
231                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );
232                  if (gade == null) {                  if (gade == null) {
233                            if (! unknownStreets.containsKey(entry.gadeid)) {
234                                    unknownStreets.put(entry.gadeid, entry.vejnavn);                                
235                            }
236                            
237                          createFromEntry(entry); // if we get here there was no match - so we need to create it                          createFromEntry(entry); // if we get here there was no match - so we need to create it
238                          return;                          return;
239                  }                  }
# Line 216  public class AddressManager { Line 243  public class AddressManager {
243                          createFromEntry(entry); // if we get here there was no match - so we need to create it                          createFromEntry(entry); // if we get here there was no match - so we need to create it
244                          return;                          return;
245                  }                  }
246                                    boolean found = false;
247                  for (Address addr : litraList) {                  for (Address addr : litraList) {
248                          if (addr.husnrbogstav.equals(entry.litra) ) {                          if (addr.husnrbogstav.equals(entry.litra) ) {
249                                  updateAddress(addr, entry);                                  updateAddress(addr, entry);
250                                  return; //Done for now - no need to look at the rest of the list                                  found = true; // 1 visit should be enough but as long as there's duplicates on gadeid+husnr+litra we will visit them all
251                                    //when the issue with duplicates is resolved this should be reverted to a return or break
252                          }                          }
253                  }                  }
254                                    if (found == false) {
255                  createFromEntry(entry); // if we get here there was no match - so we need to create it                          createFromEntry(entry); // if we get here there was no match - so we need to create it
256                    }
257          }          }
258                    
259          private void visitRange(AddressSourceEntry entry) {          private void visitRange(AddressSourceEntry entry) {
260                                    
261                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );
262                  if (gade == null) {                  if (gade == null) {
263                          System.out.println("[Range] Ukendt gadeID " + entry);                          if (! unknownStreets.containsKey(entry.gadeid)) {
264                                    unknownStreets.put(entry.gadeid, entry.vejnavn);                                
265                            }
266                            
267                            logger.info("[Range] Ukendt gadeID " + entry);
268                          return;                          return;
269                  }                  }
270                                    
# Line 270  public class AddressManager { Line 303  public class AddressManager {
303                    
304          private void updateAddress(Address addr, AddressSourceEntry entry) {          private void updateAddress(Address addr, AddressSourceEntry entry) {
305                  if ( addr.distributor != null && addr.distributor.equals(entry.distributor) == false) {                  if ( addr.distributor != null && addr.distributor.equals(entry.distributor) == false) {
306                          afvisteEntries.add(entry);                          rejectedEntries.add(entry);
307                          System.out.println("Afviser " + entry);                          logger.info("Afviser " + entry);
308                          return;                          return;
309                  }                  }
310                                    
311                  addr.visited = true;  
                 if (addr.state == AddressState.NOT_CHANGED) {  
                         if (addr.distributor == null) {  
                                 addr.state = AddressState.OPENED;  
                                 addr.distributor = entry.distributor;  
                         } else {  
                                 addr.state = AddressState.MODIFIED;  
                         }  
                 }  
312                                    
313                  if (entry.ugedage.mandag) {                  if (entry.ugedage.mandag) {
314                          addr.visitedMan = true;                          if (addr.visitedMan == false) {
315                          if (addr.ruteMandag == null) {                                  addr.visitedMan = true;
316                                  addr.stateMan = AddressState.OPENED;                                  if (addr.ruteMandag == null) {
317                                  addr.ruteMandag = entry.rute;                                          addr.stateMan = AddressState.OPENED;
                                 addr.korelisteMandag = entry.koreliste;  
                         } else {  
                                   
                                 if (StringUtils.equals(addr.ruteMandag, entry.rute) == false || StringUtils.equals(addr.korelisteMandag, entry.koreliste) == false) {  
                                         addr.stateMan = AddressState.MODIFIED;  
318                                          addr.ruteMandag = entry.rute;                                          addr.ruteMandag = entry.rute;
319                                          addr.korelisteMandag = entry.koreliste;                                                                          addr.korelisteMandag = entry.koreliste;
320                                  }                                  } else {
321                                            
322                                            if (StringUtils.equals(addr.ruteMandag, entry.rute) == false || StringUtils.equals(addr.korelisteMandag, entry.koreliste) == false) {
323                                                    addr.stateMan = AddressState.MODIFIED;
324                                                    addr.ruteMandag = entry.rute;
325                                                    addr.korelisteMandag = entry.koreliste;                                
326                                            }
327                                    }                              
328                            } else {
329                                    logger.info( "Double visit monday " + addr);
330                          }                          }
331    
332                  }                  }
333                                    
334                                    
335                  if (entry.ugedage.tirsdag) {                  if (entry.ugedage.tirsdag) {
336                          addr.visitedTir = true;                          if (addr.visitedTir == false) {
337                          if (addr.ruteTirsdag == null) {                                  addr.visitedTir = true;
338                                  addr.stateTir = AddressState.OPENED;                                  if (addr.ruteTirsdag == null) {
339                                  addr.ruteTirsdag = entry.rute;                                          addr.stateTir = AddressState.OPENED;
                                 addr.korelisteTirsdag = entry.koreliste;  
                         } else {  
                                   
                                 if (StringUtils.equals(addr.ruteTirsdag, entry.rute) == false || StringUtils.equals(addr.korelisteTirsdag, entry.koreliste) == false) {  
                                         addr.stateTir = AddressState.MODIFIED;  
340                                          addr.ruteTirsdag = entry.rute;                                          addr.ruteTirsdag = entry.rute;
341                                          addr.korelisteTirsdag = entry.koreliste;                                                                                  addr.korelisteTirsdag = entry.koreliste;
342                                    } else {
343                                            
344                                            if (StringUtils.equals(addr.ruteTirsdag, entry.rute) == false || StringUtils.equals(addr.korelisteTirsdag, entry.koreliste) == false) {
345                                                    addr.stateTir = AddressState.MODIFIED;
346                                                    addr.ruteTirsdag = entry.rute;
347                                                    addr.korelisteTirsdag = entry.koreliste;                                        
348                                            }
349                                  }                                  }
350                          }                          } else {
351                                    logger.info( "Double visit tuesday " + addr);
352                            }                              
353                  }                  }
354    
355                  if (entry.ugedage.onsdag) {                  if (entry.ugedage.onsdag) {
356                          addr.visitedOns = true;                          if (addr.visitedOns == false) {
357                          if (addr.ruteOnsdag == null) {                                  addr.visitedOns = true;
358                                  addr.stateOns = AddressState.OPENED;                                  if (addr.ruteOnsdag == null) {
359                                  addr.ruteOnsdag = entry.rute;                                          addr.stateOns = AddressState.OPENED;
                                 addr.korelisteOnsdag = entry.koreliste;  
                         } else {  
                                   
                                 if (StringUtils.equals(addr.ruteOnsdag, entry.rute) == false || StringUtils.equals(addr.korelisteOnsdag, entry.koreliste) == false) {  
                                         addr.stateOns = AddressState.MODIFIED;  
360                                          addr.ruteOnsdag = entry.rute;                                          addr.ruteOnsdag = entry.rute;
361                                          addr.korelisteOnsdag = entry.koreliste;                                                                          addr.korelisteOnsdag = entry.koreliste;
362                                    } else {
363                                            
364                                            if (StringUtils.equals(addr.ruteOnsdag, entry.rute) == false || StringUtils.equals(addr.korelisteOnsdag, entry.koreliste) == false) {
365                                                    addr.stateOns = AddressState.MODIFIED;
366                                                    addr.ruteOnsdag = entry.rute;
367                                                    addr.korelisteOnsdag = entry.koreliste;                                
368                                            }
369                                  }                                  }
370                          }                          } else {
371                                    logger.info( "Double visit wednesday " + addr);
372                            }              
373                  }                  }
374    
375                                    
376                  if (entry.ugedage.torsdag) {                  if (entry.ugedage.torsdag) {
377                          addr.visitedTor = true;                          if (addr.visitedTor == false) {
378                          if (addr.ruteTorsdag == null) {                                  addr.visitedTor = true;
379                                  addr.stateTor = AddressState.OPENED;                                  if (addr.ruteTorsdag == null) {
380                                  addr.ruteTorsdag = entry.rute;                                          addr.stateTor = AddressState.OPENED;
                                 addr.korelisteTorsdag = entry.koreliste;  
                         } else {  
                                   
                                   
                                 if (StringUtils.equals(addr.ruteTorsdag, entry.rute) == false || StringUtils.equals(addr.korelisteTorsdag, entry.koreliste) == false) {  
                                         addr.stateTor = AddressState.MODIFIED;  
381                                          addr.ruteTorsdag = entry.rute;                                          addr.ruteTorsdag = entry.rute;
382                                          addr.korelisteTorsdag = entry.koreliste;                                                                                  addr.korelisteTorsdag = entry.koreliste;
383                                    } else {
384                                            
385                                            
386                                            if (StringUtils.equals(addr.ruteTorsdag, entry.rute) == false || StringUtils.equals(addr.korelisteTorsdag, entry.koreliste) == false) {
387                                                    addr.stateTor = AddressState.MODIFIED;
388                                                    addr.ruteTorsdag = entry.rute;
389                                                    addr.korelisteTorsdag = entry.koreliste;                                        
390                                            }
391                                  }                                  }
392                          }                          } else {
393                                    logger.info( "Double visit thursday " + addr);
394                            }                                      
395                  }                  }
396    
397                                    
398                  if (entry.ugedage.fredag) {                  if (entry.ugedage.fredag) {
399                          addr.visitedFre = true;                          if (addr.visitedFre == false) {
400                          if (addr.ruteFredag == null) {                                  addr.visitedFre = true;
401                                  addr.stateFre = AddressState.OPENED;                                  if (addr.ruteFredag == null) {
402                                  addr.ruteFredag = entry.rute;                                          addr.stateFre = AddressState.OPENED;
                                 addr.korelisteFredag = entry.koreliste;  
                         } else {  
                                   
                                 if (StringUtils.equals(addr.ruteFredag, entry.rute) == false || StringUtils.equals(addr.korelisteFredag, entry.koreliste) == false) {  
                                         addr.stateFre = AddressState.MODIFIED;  
403                                          addr.ruteFredag = entry.rute;                                          addr.ruteFredag = entry.rute;
404                                          addr.korelisteFredag = entry.koreliste;                                                                          addr.korelisteFredag = entry.koreliste;
405                                    } else {
406                                            
407                                            if (StringUtils.equals(addr.ruteFredag, entry.rute) == false || StringUtils.equals(addr.korelisteFredag, entry.koreliste) == false) {
408                                                    addr.stateFre = AddressState.MODIFIED;
409                                                    addr.ruteFredag = entry.rute;
410                                                    addr.korelisteFredag = entry.koreliste;                                
411                                            }
412                                  }                                  }
413                          }                          } else {
414                                    logger.info( "Double visit friday " + addr);
415                            }      
416                  }                  }
417    
418                                    
419                  if (entry.ugedage.lordag) {                  if (entry.ugedage.lordag) {
420                          addr.visitedLor = true;                          if (addr.visitedLor == false) {
421                          if (addr.ruteLordag == null) {                                  addr.visitedLor = true;
422                                  addr.stateLor = AddressState.OPENED;                                  if (addr.ruteLordag == null) {
423                                  addr.ruteLordag = entry.rute;                                          addr.stateLor = AddressState.OPENED;
                                 addr.korelisteLordag = entry.koreliste;  
                         } else {  
                                   
                                   
                                 if (StringUtils.equals(addr.ruteLordag, entry.rute) == false || StringUtils.equals(addr.korelisteLordag, entry.koreliste) == false) {  
                                         addr.stateLor = AddressState.MODIFIED;  
424                                          addr.ruteLordag = entry.rute;                                          addr.ruteLordag = entry.rute;
425                                          addr.korelisteLordag = entry.koreliste;                                                                          addr.korelisteLordag = entry.koreliste;
426                                    } else {
427                                            
428                                            
429                                            if (StringUtils.equals(addr.ruteLordag, entry.rute) == false || StringUtils.equals(addr.korelisteLordag, entry.koreliste) == false) {
430                                                    addr.stateLor = AddressState.MODIFIED;
431                                                    addr.ruteLordag = entry.rute;
432                                                    addr.korelisteLordag = entry.koreliste;                                
433                                            }
434                                  }                                  }
435                          }                          } else {
436                                    logger.info( "Double visit saturday " + addr);
437                            }                                      
438                  }                  }
439    
440                                    
441                  if (entry.ugedage.sondag) {                  if (entry.ugedage.sondag) {
442                          addr.visitedSon = true;                          if (addr.visitedSon == false) {
443                          if (addr.ruteSondag == null) {                                  addr.visitedSon = true;
444                                  addr.stateSon = AddressState.OPENED;                                  if (addr.ruteSondag == null) {
445                                  addr.ruteSondag = entry.rute;                                          addr.stateSon = AddressState.OPENED;
                                 addr.korelisteSondag = entry.koreliste;  
                         } else {  
                                   
                                 if (StringUtils.equals(addr.ruteSondag, entry.rute) == false || StringUtils.equals(addr.korelisteSondag, entry.koreliste) == false) {  
                                         addr.stateSon = AddressState.MODIFIED;  
446                                          addr.ruteSondag = entry.rute;                                          addr.ruteSondag = entry.rute;
447                                          addr.korelisteSondag = entry.koreliste;                                                                          addr.korelisteSondag = entry.koreliste;
448                                    } else {
449                                            
450                                            if (StringUtils.equals(addr.ruteSondag, entry.rute) == false || StringUtils.equals(addr.korelisteSondag, entry.koreliste) == false) {
451                                                    addr.stateSon = AddressState.MODIFIED;
452                                                    addr.ruteSondag = entry.rute;
453                                                    addr.korelisteSondag = entry.koreliste;                                
454                                            }
455                                  }                                  }
456                          }                          } else {
457                                    logger.info( "Double visit sunday " + addr);
458                            }                                      
459                  }                  }
   
460                                    
461                                    
462                    
463                    //addr.visited = true;
464                    if (addr.state == AddressState.NOT_CHANGED) {
465                            if (addr.distributor == null) {
466                                    addr.state = AddressState.OPENED;
467                                    addr.distributor = entry.distributor;
468                            } else {
469                                    if (addr.stateMan != AddressState.NOT_CHANGED || addr.stateTir != AddressState.NOT_CHANGED
470                                                    || addr.stateOns != AddressState.NOT_CHANGED || addr.stateTor != AddressState.NOT_CHANGED
471                                                    || addr.stateFre != AddressState.NOT_CHANGED || addr.stateLor != AddressState.NOT_CHANGED || addr.stateSon != AddressState.NOT_CHANGED ){
472                                            
473                                            addr.state = AddressState.MODIFIED;    
474                                    }
475                            }
476                    }              
477                    
478                    updateDbkBane(addr);
479                    
480          }          }
481                    
482                    
483                    
484          private void createFromEntry(AddressSourceEntry entry) {          private void createFromEntry(AddressSourceEntry entry) {
485                  System.out.println("Opretter adresse ud fra " + entry);                  if (entry.husnr == 999) {
486                            return;
487                    }
488                    if (entry.kommunekode == 0 || entry.vejkode == 0) {
489                            return;
490                    }
491                    if (entry.kommunekode < 100) {
492                            return;
493                    }
494                    
495                    if (entry.gadeid == 0) {
496                            return;
497                    }
498                    
499                    String gadeidStr = Integer.toString(entry.gadeid);
500                    if (gadeidStr.length() != 9) {
501                            return;
502                    }
503                    if (Short.parseShort(gadeidStr.substring(0, 4)) != entry.postnr) {
504                            return; //gadeid / postnr mismatch
505                    }
506                    
507                    
508                    
509                    logger.info("Opretter adresse ud fra " + entry);
510                                    
511                  Address a = new Address();                  Address a = new Address();
512                  a.state = AddressState.CREATED;                  a.state = AddressState.CREATED;
# Line 424  public class AddressManager { Line 519  public class AddressManager {
519                  a.husnr = entry.husnr;                  a.husnr = entry.husnr;
520                  a.husnrbogstav = entry.litra;                  a.husnrbogstav = entry.litra;
521                  a.postnr = entry.postnr;                  a.postnr = entry.postnr;
522                  a.visited = true;                  //a.visited = true;
523                                    
524                  if (entry.ugedage.mandag) {                  if (entry.ugedage.mandag) {
525                          a.ruteMandag = entry.rute;                          a.ruteMandag = entry.rute;
# Line 455  public class AddressManager { Line 550  public class AddressManager {
550                          a.korelisteLordag = entry.koreliste;                          a.korelisteLordag = entry.koreliste;
551                  }                                }              
552                                    
553                    updateDbkBane(a);
554                    
555                  // Nu er det nye adresse object oprettet - nu skal det gemmes i søge strukturen og totallisten                  // Nu er det nye adresse object oprettet - nu skal det gemmes i søge strukturen og totallisten
556                                    
557    
# Line 476  public class AddressManager { Line 573  public class AddressManager {
573                                                                    
574          }          }
575                    
576            
577            
578             /*
579             DAO:
580             UPDATE fulddaekning.adressetabel
581             SET dbkbane = case
582                    when substr(korelisteMa,1,2) IN ('07','10','11','12','14','15','16','18','19','20') then 205 #DAO-BRA
583                 when substr(korelisteMa,1,2) BETWEEN 24 and 30 then 201 #DAO-Ovrige
584                 else 202 #dao syd (52-99=
585             END
586             WHERE distributor='DAO'
587             AND ruteMa is not null;
588    
589             FD: Altid 200
590             NS: Altid 204
591             BK: 195,196,197,198
592             */
593            
594            private void updateDbkBane(Address a) {
595                    List<Short> daoBane205 = Arrays.asList( new Short[] {7,10,11,12,12,14,15,16,18,19,20} );
596                    
597                    
598                    Short bane = null;
599                    
600                    switch (a.distributor) {
601                    case "BK":                      
602                            bane = dbkBaneMap.get(a.postnr);
603                            break;
604                    case "DAO":
605                            String koreliste = MiscUtils.firstNonNull(a.korelisteMandag,a.korelisteLordag, a.korelisteSondag); //DAO har kun 3 dækningstyper
606                            short first2 = Short.parseShort( koreliste.substring(0,2) );
607                            if ( daoBane205.contains(first2) ) {
608                                    bane = 205;
609                            } else if (first2 >= 24 && first2<=30) {
610                                    bane = 201;
611                            } else {
612                                    bane = 202;
613                            }
614                                    
615                            break;                  
616                    case "FD":
617                            bane = 200;
618                            break;
619                    case "NS":
620                            bane = 204;
621                            break;
622                    default:
623                            throw new RuntimeException("Ukendt distributor: " + a.distributor); //Silence findBugs
624                    }
625                    
626                    if (bane == null) {
627                            throw new RuntimeException("Ukendt bane for postnr: " + a.postnr);
628                    }
629                    
630                    if (a.dbkBane != bane) {
631                            a.dbkBane = bane;
632                            if (a.state ==AddressState.NOT_CHANGED) {
633                                    a.state = AddressState.MODIFIED;
634                            }
635                    }              
636            }
637            
638          public List<Address> getAddressList() {          public List<Address> getAddressList() {
639                  return Collections.unmodifiableList(addressList);                  return Collections.unmodifiableList(addressList);
640          }          }
641                    
642          public int getAfvistAntal() {          public Map<Integer,String> getUnknownStreets() {
643                  return afvisteEntries.size();                  return Collections.unmodifiableMap( unknownStreets );
644            }
645            
646            
647            
648            public int getRejectedCount() {
649                    return rejectedEntries.size();
650          }          }
651                    
652  }  }

Legend:
Removed from v.2844  
changed lines
  Added in v.2904

  ViewVC Help
Powered by ViewVC 1.1.20