/[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 2869 - (show annotations) (download)
Thu Jan 28 16:21:36 2016 UTC (8 years, 3 months ago) by torben
File size: 3218 byte(s)
More refactoring
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 System.out.println( line );
45 throw new IOException("Not enough fields in line " + line);
46 }
47 }
48
49
50
51
52 AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange );
53 entry.distributor = "NS";
54
55
56 entry.gadeid = Integer.parseInt( parts[0] );
57 entry.vejnavn = parts[1].replace("\"", "");
58 //stednavn = parts[2];
59 //ukendtt = parts[3];
60 entry.postnr = Short.parseShort( parts[4] );
61 entry.rute = dirigeringsCache.getInstance( parts[5].replace("\"", "") );
62 entry.husnr = Short.parseShort( parts[6] );
63 entry.litra = parts[7].replace("\"", "");
64 entry.tilHusnr = Short.parseShort( parts[8] );
65 entry.tilLitra = parts[9].replace("\"", "");
66 //sekvens = parts[10]
67 //fradato = parts[11]
68 //tildato = parts[12]
69 //distributor = parts[13]
70 //inspektorkode = parts[21]
71
72 switch (nextUgedag) {
73 case MANDAG:
74 entry.koreliste = dirigeringsCache.getInstance( parts[14] );
75 entry.ugedage = EntryUgedage.MAN;
76 nextUgedag = NextUgedag.TIRSDAG;
77 break;
78 case TIRSDAG:
79 entry.koreliste = dirigeringsCache.getInstance( parts[15] );
80 entry.ugedage = EntryUgedage.TIR;
81 nextUgedag = NextUgedag.ONSDAG;
82 break;
83 case ONSDAG:
84 entry.koreliste = dirigeringsCache.getInstance( parts[16] );
85 entry.ugedage = EntryUgedage.ONS;
86 nextUgedag = NextUgedag.TORSDAG;
87 break;
88 case TORSDAG:
89 entry.koreliste = dirigeringsCache.getInstance( parts[17] );
90 entry.ugedage = EntryUgedage.TOR;
91 nextUgedag = NextUgedag.FREDAG;
92 break;
93 case FREDAG:
94 entry.koreliste = dirigeringsCache.getInstance( parts[18] );
95 entry.ugedage = EntryUgedage.FRE;
96 nextUgedag = NextUgedag.LORDAG;
97 break;
98 case LORDAG:
99 entry.koreliste = dirigeringsCache.getInstance( parts[19] );
100 entry.ugedage = EntryUgedage.LOR;
101 nextUgedag = NextUgedag.SONDAG;
102 break;
103 case SONDAG:
104 entry.koreliste = dirigeringsCache.getInstance( parts[20] );
105 entry.ugedage = EntryUgedage.SON;
106 nextUgedag = NextUgedag.MANDAG;
107 break;
108 default:
109 throw new IOException("Ukendt ugedag:" + nextUgedag);
110 }
111
112
113 lineCount++;
114
115 return entry;
116 }
117
118 @Override
119 public String getDistributor() {
120 return "NS";
121 }
122
123 }

  ViewVC Help
Powered by ViewVC 1.1.20