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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2903 - (show annotations) (download)
Wed Feb 3 18:45:33 2016 UTC (8 years, 3 months ago) by torben
File size: 3185 byte(s)
Implement logging system

Switch task to rest/jersey
1 package dk.daoas.adressevedligehold;
2
3 import java.io.IOException;
4
5 import org.apache.commons.fileupload.FileItem;
6
7 import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;
8
9 public class AddressSourceNS extends AbstractAddressSource {
10
11 enum NextUgedag {
12 MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG
13 }
14
15 String parts[];
16
17
18 NextUgedag nextUgedag = NextUgedag.MANDAG;
19
20 public AddressSourceNS(FileItem file) throws Exception {
21 super(file);
22 }
23
24
25 @Override
26 public void validate() throws IOException {
27 super.validatNoHeaderLine(22, ',');
28 }
29
30 //TODO: Skal csv parsning klares med Apache Commons CSV ?
31
32 @Override
33 public AddressSourceEntry getNextEntry() throws IOException {
34 if (nextUgedag == NextUgedag.MANDAG) {
35 String line = br.readLine();
36 if (line == null) // end of file
37 return null;
38
39 if (line.trim().equals(""))
40 return null;
41 parts = line.split(",");
42
43 if (parts.length != 22) {
44 throw new IOException("Not enough fields in line " + line);
45 }
46 }
47
48
49
50
51 AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange );
52 entry.distributor = "NS";
53
54
55 entry.gadeid = Integer.parseInt( parts[0] );
56 entry.vejnavn = parts[1].replace("\"", "");
57 //stednavn = parts[2];
58 //ukendtt = parts[3];
59 entry.postnr = Short.parseShort( parts[4] );
60 entry.rute = dirigeringsCache.getInstance( parts[5].replace("\"", "") );
61 entry.husnr = Short.parseShort( parts[6] );
62 entry.litra = parts[7].replace("\"", "");
63 entry.tilHusnr = Short.parseShort( parts[8] );
64 entry.tilLitra = parts[9].replace("\"", "");
65 //sekvens = parts[10]
66 //fradato = parts[11]
67 //tildato = parts[12]
68 //distributor = parts[13]
69 //inspektorkode = parts[21]
70
71 switch (nextUgedag) {
72 case MANDAG:
73 entry.koreliste = dirigeringsCache.getInstance( parts[14] );
74 entry.ugedage = EntryUgedage.MAN;
75 nextUgedag = NextUgedag.TIRSDAG;
76 break;
77 case TIRSDAG:
78 entry.koreliste = dirigeringsCache.getInstance( parts[15] );
79 entry.ugedage = EntryUgedage.TIR;
80 nextUgedag = NextUgedag.ONSDAG;
81 break;
82 case ONSDAG:
83 entry.koreliste = dirigeringsCache.getInstance( parts[16] );
84 entry.ugedage = EntryUgedage.ONS;
85 nextUgedag = NextUgedag.TORSDAG;
86 break;
87 case TORSDAG:
88 entry.koreliste = dirigeringsCache.getInstance( parts[17] );
89 entry.ugedage = EntryUgedage.TOR;
90 nextUgedag = NextUgedag.FREDAG;
91 break;
92 case FREDAG:
93 entry.koreliste = dirigeringsCache.getInstance( parts[18] );
94 entry.ugedage = EntryUgedage.FRE;
95 nextUgedag = NextUgedag.LORDAG;
96 break;
97 case LORDAG:
98 entry.koreliste = dirigeringsCache.getInstance( parts[19] );
99 entry.ugedage = EntryUgedage.LOR;
100 nextUgedag = NextUgedag.SONDAG;
101 break;
102 case SONDAG:
103 entry.koreliste = dirigeringsCache.getInstance( parts[20] );
104 entry.ugedage = EntryUgedage.SON;
105 nextUgedag = NextUgedag.MANDAG;
106 break;
107 default:
108 throw new IOException("Ukendt ugedag:" + nextUgedag);
109 }
110
111
112 lineCount++;
113
114 return entry;
115 }
116
117 @Override
118 public String getDistributor() {
119 return "NS";
120 }
121
122 }

  ViewVC Help
Powered by ViewVC 1.1.20