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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3040 - (show annotations) (download)
Mon Jun 6 18:12:17 2016 UTC (7 years, 11 months ago) by torben
File size: 3590 byte(s)
Use ; as separator
1 package dk.daoas.adressevedligehold.coveragefileupload;
2
3 import java.io.IOException;
4 import java.util.List;
5
6 import org.apache.commons.fileupload.FileItem;
7
8 import com.google.common.base.CharMatcher;
9 import com.google.common.base.Splitter;
10
11 import dk.daoas.adressevedligehold.coveragefileupload.AddressSourceEntry.EntryType;
12
13 public class AddressSourceNS extends AbstractAddressSource {
14
15 enum NextUgedag {
16 MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG
17 }
18
19 final static char SEPARATOR = ';';
20
21
22 final Splitter splitter = Splitter.on(SEPARATOR)
23 .trimResults( CharMatcher.is('"') );
24
25 List<String> parts;
26
27
28 NextUgedag nextUgedag = NextUgedag.MANDAG;
29
30 public AddressSourceNS(FileItem file) throws Exception {
31 super(file);
32 }
33
34
35 @Override
36 public void validate() throws IOException {
37 super.validatNoHeaderLine(22, SEPARATOR);
38 }
39
40
41 @Override
42 public AddressSourceEntry getNextEntry() throws IOException {
43 if (nextUgedag == NextUgedag.MANDAG) {
44 String line = br.readLine();
45 if (line == null) // end of file
46 return null;
47
48 if (line.trim().equals(""))
49 return null;
50 parts = splitter.splitToList(line);
51
52 if (parts.size() != 22) {
53 throw new IOException("Not enough fields in line " + line);
54 }
55 }
56
57
58
59
60 AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange );
61 entry.distributor = "NS";
62
63
64 entry.gadeid = Integer.parseInt( parts.get(0) );
65 entry.vejnavn = parts.get(1);
66 //stednavn = parts.get(2);
67 //ukendtt = parts.get(3);
68 entry.postnr = Short.parseShort( parts.get(4) );
69 entry.rute = parts.get(5);
70 entry.husnr = Short.parseShort( parts.get(6) );
71 entry.litra = parts.get(7);
72 entry.tilHusnr = Short.parseShort( parts.get(8) );
73 entry.tilLitra = parts.get(9);
74 //sekvens = parts.get(10)
75 //fradato = parts.get(11)
76 //tildato = parts.get(12)
77 //distributor = parts.get(13)
78 //inspektorkode = parts.get(21)
79
80 if (entry.tilLitra.equals("")) {
81 entry.tilLitra = "Z"; // hvis der ikke er angivet en slut litra, så dækker de alle litra kombinationer
82 }
83
84 switch (nextUgedag) {
85 case MANDAG:
86 entry.koreliste = parts.get(14);
87 entry.ugedage = EntryUgedage.MAN;
88 nextUgedag = NextUgedag.TIRSDAG;
89 break;
90 case TIRSDAG:
91 entry.koreliste = parts.get(15);
92 entry.ugedage = EntryUgedage.TIR;
93 nextUgedag = NextUgedag.ONSDAG;
94 break;
95 case ONSDAG:
96 entry.koreliste = parts.get(16);
97 entry.ugedage = EntryUgedage.ONS;
98 nextUgedag = NextUgedag.TORSDAG;
99 break;
100 case TORSDAG:
101 entry.koreliste = parts.get(17);
102 entry.ugedage = EntryUgedage.TOR;
103 nextUgedag = NextUgedag.FREDAG;
104 break;
105 case FREDAG:
106 entry.koreliste = parts.get(18);
107 entry.ugedage = EntryUgedage.FRE;
108 nextUgedag = NextUgedag.LORDAG;
109 break;
110 case LORDAG:
111 entry.koreliste = parts.get(19);
112 entry.ugedage = EntryUgedage.LOR;
113 nextUgedag = NextUgedag.SONDAG;
114 break;
115 case SONDAG:
116 entry.koreliste = parts.get(20);
117 entry.ugedage = EntryUgedage.SON;
118 nextUgedag = NextUgedag.MANDAG;
119 break;
120 default:
121 throw new IOException("Ukendt ugedag:" + nextUgedag);
122 }
123
124 entry.rute = dirigeringsCache.getInstance(entry.rute);
125 entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
126
127
128 lineCount++;
129
130 return entry;
131 }
132
133 @Override
134 public String getDistributor() {
135 return "NS";
136 }
137
138 @Override
139 public boolean calculateDistances() {
140 return false; //NS skal IKKE beregne afstande
141 }
142
143 }

  ViewVC Help
Powered by ViewVC 1.1.20