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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3016 - (show annotations) (download)
Mon Apr 25 07:52:53 2016 UTC (8 years ago) by torben
File size: 2824 byte(s)
Tilret til nyt BK layout
1 package dk.daoas.adressevedligehold.fileupload;
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.fileupload.AddressSourceEntry.EntryType;
12 import dk.daoas.adressevedligehold.util.SafeParsers;
13
14 public class AddressSourceBK extends AbstractAddressSource {
15
16 Splitter splitter = Splitter.on(';').trimResults( CharMatcher.is('"') );
17
18 public AddressSourceBK(FileItem file) throws Exception {
19 super(file);
20 }
21
22
23 @Override
24 public void validate() throws IOException {
25 super.validatNoHeaderLine(15, ';');
26 }
27
28
29 @Override
30 public AddressSourceEntry getNextEntry() throws IOException {
31 String line = br.readLine();
32 if (line == null) // end of file
33 return null;
34
35 if (line.trim().equals(""))
36 return null;
37
38
39 AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
40 entry.distributor = "BK";
41
42 List<String> parts = splitter.splitToList(line);
43
44 if (parts.size() != 15) {
45 throw new IOException("Wrong number of fields in CSV file. Found " + parts.size() + ", expected 15");
46 }
47
48 entry.postnr = Short.parseShort( parts.get(0) );
49 entry.vejnavn = parts.get( 1 );
50 entry.husnr = Short.parseShort( parts.get( 2 ) );
51 entry.litra = parts.get( 3 );
52 entry.vejkode = SafeParsers.parseShort( parts.get( 4) );
53 entry.kommunekode = SafeParsers.parseShort( parts.get( 5) );
54 entry.gadeid = Integer.parseInt( parts.get( 6 ) );
55
56 String ugedage = parts.get( 7 );
57
58 String laesnr = parts.get( 8 );
59
60 //String distnr = parts.get( 9 ); //Bruges ikke
61 String foede = parts.get( 10 );
62 String jobnr = parts.get( 11 );
63 String tklaes = parts.get( 12 );
64 //String pris = parts.get( 13 );//bruges ikke
65 //String blank = parts.get(14); //Bruges slet ikke - bk afslutter deres linier med en ;
66
67 entry.rute = jobnr;
68 entry.koreliste = laesnr + "/" + tklaes + "/" + foede ; // isv<nr>/tk<nr>/<lokale>
69
70 entry.rute = dirigeringsCache.getInstance(entry.rute);
71 entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
72
73 switch (ugedage) {
74 case "1234000":
75 entry.ugedage = EntryUgedage.MAN_TOR;
76 break;
77 case "0000500":
78 entry.ugedage = EntryUgedage.FRE;
79 break;
80 case "0000060":
81 entry.ugedage = EntryUgedage.LOR;
82 break;
83 case "0000007":
84 entry.ugedage = EntryUgedage.SON;
85 break;
86 default:
87 throw new IOException("Ukendt ugedag:" + ugedage);
88 }
89
90
91 lineCount++;
92
93 return entry;
94 }
95
96 @Override
97 public String getDistributor() {
98 return "BK";
99 }
100
101
102 @Override
103 public boolean calculateDistances() {
104 return true; //BK skal beregne afstande
105 }
106
107 }

  ViewVC Help
Powered by ViewVC 1.1.20