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

Annotation of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressSourceNS.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2933 - (hide annotations) (download)
Fri Feb 12 09:55:14 2016 UTC (8 years, 3 months ago) by torben
Original Path: dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressSourceNS.java
File size: 3424 byte(s)
Switch NS reader to Gauva splitter
1 torben 2851 package dk.daoas.adressevedligehold;
2    
3     import java.io.IOException;
4 torben 2933 import java.util.List;
5 torben 2851
6     import org.apache.commons.fileupload.FileItem;
7    
8 torben 2933 import com.google.common.base.CharMatcher;
9     import com.google.common.base.Splitter;
10    
11 torben 2851 import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;
12    
13 torben 2868 public class AddressSourceNS extends AbstractAddressSource {
14 torben 2851
15     enum NextUgedag {
16     MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG
17     }
18 torben 2868
19 torben 2851
20 torben 2933 final Splitter splitter = Splitter.on(',')
21     .trimResults( CharMatcher.is('"') );
22 torben 2851
23 torben 2933 List<String> parts;
24    
25    
26 torben 2851 NextUgedag nextUgedag = NextUgedag.MANDAG;
27    
28     public AddressSourceNS(FileItem file) throws Exception {
29 torben 2868 super(file);
30 torben 2851 }
31    
32    
33     @Override
34     public void validate() throws IOException {
35 torben 2869 super.validatNoHeaderLine(22, ',');
36 torben 2851 }
37    
38     //TODO: Skal csv parsning klares med Apache Commons CSV ?
39    
40     @Override
41     public AddressSourceEntry getNextEntry() throws IOException {
42     if (nextUgedag == NextUgedag.MANDAG) {
43     String line = br.readLine();
44     if (line == null) // end of file
45     return null;
46    
47     if (line.trim().equals(""))
48     return null;
49 torben 2933 parts = splitter.splitToList(line);
50 torben 2851
51 torben 2933 if (parts.size() != 22) {
52 torben 2851 throw new IOException("Not enough fields in line " + line);
53     }
54     }
55    
56    
57    
58    
59     AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange );
60     entry.distributor = "NS";
61    
62    
63 torben 2933 entry.gadeid = Integer.parseInt( parts.get(0) );
64     entry.vejnavn = parts.get(1);
65     //stednavn = parts.get(2);
66     //ukendtt = parts.get(3);
67     entry.postnr = Short.parseShort( parts.get(4) );
68     entry.rute = dirigeringsCache.getInstance( parts.get(5) );
69     entry.husnr = Short.parseShort( parts.get(6) );
70     entry.litra = parts.get(7);
71     entry.tilHusnr = Short.parseShort( parts.get(8) );
72     entry.tilLitra = parts.get(9);
73     //sekvens = parts.get(10)
74     //fradato = parts.get(11)
75     //tildato = parts.get(12)
76     //distributor = parts.get(13)
77     //inspektorkode = parts.get(21)
78 torben 2851
79     switch (nextUgedag) {
80     case MANDAG:
81 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(14) );
82 torben 2851 entry.ugedage = EntryUgedage.MAN;
83     nextUgedag = NextUgedag.TIRSDAG;
84     break;
85     case TIRSDAG:
86 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(15) );
87 torben 2851 entry.ugedage = EntryUgedage.TIR;
88     nextUgedag = NextUgedag.ONSDAG;
89     break;
90     case ONSDAG:
91 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(16) );
92 torben 2851 entry.ugedage = EntryUgedage.ONS;
93     nextUgedag = NextUgedag.TORSDAG;
94     break;
95     case TORSDAG:
96 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(17) );
97 torben 2851 entry.ugedage = EntryUgedage.TOR;
98     nextUgedag = NextUgedag.FREDAG;
99     break;
100     case FREDAG:
101 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(18) );
102 torben 2851 entry.ugedage = EntryUgedage.FRE;
103     nextUgedag = NextUgedag.LORDAG;
104     break;
105     case LORDAG:
106 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(19) );
107 torben 2851 entry.ugedage = EntryUgedage.LOR;
108     nextUgedag = NextUgedag.SONDAG;
109     break;
110     case SONDAG:
111 torben 2933 entry.koreliste = dirigeringsCache.getInstance( parts.get(20) );
112 torben 2851 entry.ugedage = EntryUgedage.SON;
113     nextUgedag = NextUgedag.MANDAG;
114     break;
115     default:
116     throw new IOException("Ukendt ugedag:" + nextUgedag);
117     }
118    
119    
120     lineCount++;
121    
122     return entry;
123     }
124    
125     @Override
126     public String getDistributor() {
127     return "NS";
128     }
129    
130     }

  ViewVC Help
Powered by ViewVC 1.1.20