/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceNS.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceNS.java

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

dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressSourceNS.java revision 2903 by torben, Wed Feb 3 18:45:33 2016 UTC dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceNS.java revision 2950 by torben, Tue Feb 16 09:40:51 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold;  package dk.daoas.adressevedligehold.fileupload;
2    
3  import java.io.IOException;  import java.io.IOException;
4    import java.util.List;
5    
6  import org.apache.commons.fileupload.FileItem;  import org.apache.commons.fileupload.FileItem;
7    
8  import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;  import com.google.common.base.CharMatcher;
9    import com.google.common.base.Splitter;
10    
11    import dk.daoas.adressevedligehold.fileupload.AddressSourceEntry.EntryType;
12    
13  public class AddressSourceNS extends AbstractAddressSource {  public class AddressSourceNS extends AbstractAddressSource {
14                    
# Line 12  public class AddressSourceNS extends Abs Line 16  public class AddressSourceNS extends Abs
16                  MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG                  MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG
17          }          }
18                                    
19          String parts[];          
20            final Splitter splitter = Splitter.on(',')
21                                                                    .trimResults( CharMatcher.is('"') );
22            
23            List<String> parts;
24                    
25                    
26          NextUgedag nextUgedag = NextUgedag.MANDAG;          NextUgedag nextUgedag = NextUgedag.MANDAG;
# Line 27  public class AddressSourceNS extends Abs Line 35  public class AddressSourceNS extends Abs
35                  super.validatNoHeaderLine(22, ',');                  super.validatNoHeaderLine(22, ',');
36          }          }
37    
         //TODO: Skal csv parsning klares med Apache Commons CSV ?  
38    
39          @Override          @Override
40          public AddressSourceEntry getNextEntry() throws IOException {          public AddressSourceEntry getNextEntry() throws IOException {
# Line 38  public class AddressSourceNS extends Abs Line 45  public class AddressSourceNS extends Abs
45                                                    
46                          if (line.trim().equals(""))                          if (line.trim().equals(""))
47                                  return null;                                  return null;
48                          parts = line.split(",");                          parts = splitter.splitToList(line);
49                                                    
50                          if (parts.length != 22) {                          if (parts.size() != 22) {
51                                  throw new IOException("Not enough fields in line " + line);                                  throw new IOException("Not enough fields in line " + line);
52                          }                          }
53                  }                  }
# Line 52  public class AddressSourceNS extends Abs Line 59  public class AddressSourceNS extends Abs
59                  entry.distributor = "NS";                  entry.distributor = "NS";
60                                    
61                                    
62                  entry.gadeid = Integer.parseInt( parts[0] );                  entry.gadeid = Integer.parseInt( parts.get(0) );
63                  entry.vejnavn = parts[1].replace("\"", "");                  entry.vejnavn = parts.get(1);
64                  //stednavn = parts[2];                  //stednavn = parts.get(2);
65                  //ukendtt = parts[3];                  //ukendtt = parts.get(3);
66                  entry.postnr = Short.parseShort( parts[4] );                  entry.postnr = Short.parseShort( parts.get(4) );
67                  entry.rute = dirigeringsCache.getInstance( parts[5].replace("\"", "") );                  entry.rute = parts.get(5);
68                  entry.husnr = Short.parseShort( parts[6] );                  entry.husnr = Short.parseShort( parts.get(6) );
69                  entry.litra = parts[7].replace("\"", "");                  entry.litra = parts.get(7);
70                  entry.tilHusnr = Short.parseShort( parts[8] );                  entry.tilHusnr = Short.parseShort( parts.get(8) );
71                  entry.tilLitra = parts[9].replace("\"", "");                  entry.tilLitra = parts.get(9);
72                  //sekvens = parts[10]                  //sekvens = parts.get(10)
73                  //fradato = parts[11]                  //fradato = parts.get(11)
74                  //tildato = parts[12]                  //tildato = parts.get(12)
75                  //distributor = parts[13]                  //distributor = parts.get(13)
76                  //inspektorkode = parts[21]                  //inspektorkode = parts.get(21)
77                    
78                    if (entry.tilLitra.equals("")) {
79                            entry.tilLitra = "Z"; // hvis der ikke er angivet en slut litra, så dækker de alle litra kombinationer
80                    }
81                                    
82                  switch (nextUgedag) {                            switch (nextUgedag) {          
83                  case MANDAG:                  case MANDAG:
84                          entry.koreliste = dirigeringsCache.getInstance( parts[14] );                          entry.koreliste = parts.get(14);
85                          entry.ugedage = EntryUgedage.MAN;                          entry.ugedage = EntryUgedage.MAN;
86                          nextUgedag = NextUgedag.TIRSDAG;                          nextUgedag = NextUgedag.TIRSDAG;
87                          break;                          break;
88                  case TIRSDAG:                  case TIRSDAG:
89                          entry.koreliste = dirigeringsCache.getInstance( parts[15] );                          entry.koreliste = parts.get(15);
90                          entry.ugedage = EntryUgedage.TIR;                          entry.ugedage = EntryUgedage.TIR;
91                          nextUgedag = NextUgedag.ONSDAG;                          nextUgedag = NextUgedag.ONSDAG;
92                          break;                          break;
93                  case ONSDAG:                  case ONSDAG:
94                          entry.koreliste = dirigeringsCache.getInstance( parts[16] );                          entry.koreliste = parts.get(16);
95                          entry.ugedage = EntryUgedage.ONS;                          entry.ugedage = EntryUgedage.ONS;
96                          nextUgedag = NextUgedag.TORSDAG;                          nextUgedag = NextUgedag.TORSDAG;
97                          break;                          break;
98                  case TORSDAG:                  case TORSDAG:
99                          entry.koreliste = dirigeringsCache.getInstance( parts[17] );                          entry.koreliste = parts.get(17);
100                          entry.ugedage = EntryUgedage.TOR;                          entry.ugedage = EntryUgedage.TOR;
101                          nextUgedag = NextUgedag.FREDAG;                          nextUgedag = NextUgedag.FREDAG;
102                          break;                          break;
103                  case FREDAG:                  case FREDAG:
104                          entry.koreliste = dirigeringsCache.getInstance( parts[18] );                          entry.koreliste = parts.get(18);
105                          entry.ugedage = EntryUgedage.FRE;                          entry.ugedage = EntryUgedage.FRE;
106                          nextUgedag = NextUgedag.LORDAG;                          nextUgedag = NextUgedag.LORDAG;
107                          break;                          break;
108                  case LORDAG:                  case LORDAG:
109                          entry.koreliste = dirigeringsCache.getInstance( parts[19] );                          entry.koreliste = parts.get(19);
110                          entry.ugedage = EntryUgedage.LOR;                          entry.ugedage = EntryUgedage.LOR;
111                          nextUgedag = NextUgedag.SONDAG;                          nextUgedag = NextUgedag.SONDAG;
112                          break;                          break;
113                  case SONDAG:                  case SONDAG:
114                          entry.koreliste = dirigeringsCache.getInstance( parts[20] );                          entry.koreliste = parts.get(20);
115                          entry.ugedage = EntryUgedage.SON;                          entry.ugedage = EntryUgedage.SON;
116                          nextUgedag = NextUgedag.MANDAG;                          nextUgedag = NextUgedag.MANDAG;
117                          break;                          break;
118                  default:                  default:
119                          throw new IOException("Ukendt ugedag:" + nextUgedag);                          throw new IOException("Ukendt ugedag:" + nextUgedag);
120                  }                  }
121                    
122                    entry.rute = dirigeringsCache.getInstance(entry.rute);
123                    entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
124    
125                                    
126                  lineCount++;                  lineCount++;

Legend:
Removed from v.2903  
changed lines
  Added in v.2950

  ViewVC Help
Powered by ViewVC 1.1.20