/[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 2862 by torben, Thu Jan 28 11:07:07 2016 UTC revision 2894 by torben, Mon Feb 1 07:15:15 2016 UTC
# Line 33  public class AddressManager { Line 33  public class AddressManager {
33                    
34          Map<Integer, TreeMap<Short, ArrayList<Address>> > searchStructure;          Map<Integer, TreeMap<Short, ArrayList<Address>> > searchStructure;
35                    
36          ArrayList<AddressSourceEntry> afvisteEntries = new ArrayList<AddressSourceEntry>();          ArrayList<AddressSourceEntry> rejectedEntries = new ArrayList<AddressSourceEntry>();
37            
38            Map<Integer,String> unknownStreets = new TreeMap<Integer, String>();
39                    
40          Map<Short,Short> dbkBaneMap = new TreeMap<Short,Short>();          Map<Short,Short> dbkBaneMap = new TreeMap<Short,Short>();
41                    
# Line 206  public class AddressManager { Line 208  public class AddressManager {
208                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();                  DatabaseLayerImplementation db = new DatabaseLayerImplementation();
209                                    
210                  db.updateAddresses(updates);                  db.updateAddresses(updates);
211                    db.saveNewAddresses(inserts);
212    
213                                    
214                                    
# Line 224  public class AddressManager { Line 227  public class AddressManager {
227          private void visitSingle(AddressSourceEntry entry) {          private void visitSingle(AddressSourceEntry entry) {
228                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );
229                  if (gade == null) {                  if (gade == null) {
230                            if (! unknownStreets.containsKey(entry.gadeid)) {
231                                    unknownStreets.put(entry.gadeid, entry.vejnavn);                                
232                            }
233                            
234                          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
235                          return;                          return;
236                  }                  }
# Line 233  public class AddressManager { Line 240  public class AddressManager {
240                          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
241                          return;                          return;
242                  }                  }
243                                    boolean found = false;
244                  for (Address addr : litraList) {                  for (Address addr : litraList) {
245                          if (addr.husnrbogstav.equals(entry.litra) ) {                          if (addr.husnrbogstav.equals(entry.litra) ) {
246                                  updateAddress(addr, entry);                                  updateAddress(addr, entry);
247                                  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
248                                    //when the issue with duplicates is resolved this should be reverted to a return or break
249                          }                          }
250                  }                  }
251                                    if (found == false) {
252                  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
253                    }
254          }          }
255                    
256          private void visitRange(AddressSourceEntry entry) {          private void visitRange(AddressSourceEntry entry) {
257                                    
258                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );                  TreeMap<Short, ArrayList<Address>> gade = searchStructure.get( entry.gadeid );
259                  if (gade == null) {                  if (gade == null) {
260                            if (! unknownStreets.containsKey(entry.gadeid)) {
261                                    unknownStreets.put(entry.gadeid, entry.vejnavn);                                
262                            }
263                            
264                          System.out.println("[Range] Ukendt gadeID " + entry);                          System.out.println("[Range] Ukendt gadeID " + entry);
265                          return;                          return;
266                  }                  }
# Line 287  public class AddressManager { Line 300  public class AddressManager {
300                    
301          private void updateAddress(Address addr, AddressSourceEntry entry) {          private void updateAddress(Address addr, AddressSourceEntry entry) {
302                  if ( addr.distributor != null && addr.distributor.equals(entry.distributor) == false) {                  if ( addr.distributor != null && addr.distributor.equals(entry.distributor) == false) {
303                          afvisteEntries.add(entry);                          rejectedEntries.add(entry);
304                          System.out.println("Afviser " + entry);                          System.out.println("Afviser " + entry);
305                          return;                          return;
306                  }                  }
# Line 475  public class AddressManager { Line 488  public class AddressManager {
488                  if (entry.kommunekode < 100) {                  if (entry.kommunekode < 100) {
489                          return;                          return;
490                  }                  }
491                  if (Short.parseShort(Integer.toString(entry.gadeid).substring(0, 4)) != entry.postnr) {                  
492                    if (entry.gadeid == 0) {
493                            return;
494                    }
495                    
496                    String gadeidStr = Integer.toString(entry.gadeid);
497                    if (gadeidStr.length() != 9) {
498                            return;
499                    }
500                    if (Short.parseShort(gadeidStr.substring(0, 4)) != entry.postnr) {
501                          return; //gadeid / postnr mismatch                          return; //gadeid / postnr mismatch
502                  }                  }
503                                    
# Line 593  public class AddressManager { Line 615  public class AddressManager {
615                          break;                          break;
616                  case "NS":                  case "NS":
617                          bane = 204;                          bane = 204;
618                          break;                                            break;
619                    default:
620                            throw new RuntimeException("Ukendt distributor" + a.distributor); //Silence findBugs
621                  }                  }
622                                    
623                  if (bane == null) {                  if (bane == null) {
# Line 612  public class AddressManager { Line 636  public class AddressManager {
636                  return Collections.unmodifiableList(addressList);                  return Collections.unmodifiableList(addressList);
637          }          }
638                    
639            public Map<Integer,String> getUnknownStreets() {
640                    return Collections.unmodifiableMap( unknownStreets );
641            }
642            
643                    
644                    
645          public int getAfvistAntal() {          public int getRejectedCount() {
646                  return afvisteEntries.size();                  return rejectedEntries.size();
647          }          }
648                    
649  }  }

Legend:
Removed from v.2862  
changed lines
  Added in v.2894

  ViewVC Help
Powered by ViewVC 1.1.20