/[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 2947 - (show annotations) (download)
Sat Feb 13 15:45:02 2016 UTC (8 years, 3 months ago) by torben
File size: 2614 byte(s)
Move address upload to it's own package
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(14, ';');
26 }
27
28 //TODO: Skal csv parsning klares med Apache Commons CSV ?
29
30 @Override
31 public AddressSourceEntry getNextEntry() throws IOException {
32 String line = br.readLine();
33 if (line == null) // end of file
34 return null;
35
36 if (line.trim().equals(""))
37 return null;
38
39
40 AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
41 entry.distributor = "BK";
42
43 List<String> parts = splitter.splitToList(line);
44
45 if (parts.size() != 14) {
46 throw new IOException("Not enough fields in CSV file. Found " + parts.size() + ", expected 14");
47 }
48
49 entry.postnr = Short.parseShort( parts.get(0) );
50 entry.vejnavn = parts.get( 1 );
51 entry.husnr = Short.parseShort( parts.get( 2 ) );
52 entry.litra = parts.get( 3 );
53 entry.vejkode = SafeParsers.parseShort( parts.get( 4) );
54 entry.kommunekode = SafeParsers.parseShort( parts.get( 5) );
55 entry.gadeid = Integer.parseInt( parts.get( 6 ) );
56
57 String ugedage = parts.get( 7 );
58
59 String laesnr = parts.get( 8 );
60
61 //String distnr = parts.get( 9 ); //Bruges ikke
62 String foede = parts.get( 10 );
63 String jobnr = parts.get( 11 );
64 String tklaes = parts.get( 12 );
65
66 entry.rute = laesnr;
67 entry.koreliste = "/" + foede + "/" + tklaes + "/" + jobnr;
68
69 entry.rute = dirigeringsCache.getInstance(entry.rute);
70 entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
71
72 switch (ugedage) {
73 case "1234000":
74 entry.ugedage = EntryUgedage.MAN_TOR;
75 break;
76 case "0000500":
77 entry.ugedage = EntryUgedage.FRE;
78 break;
79 case "0000060":
80 entry.ugedage = EntryUgedage.LOR;
81 break;
82 case "0000007":
83 entry.ugedage = EntryUgedage.SON;
84 break;
85 default:
86 throw new IOException("Ukendt ugedag:" + ugedage);
87 }
88
89
90 lineCount++;
91
92 return entry;
93 }
94
95 @Override
96 public String getDistributor() {
97 return "BK";
98 }
99
100 }

  ViewVC Help
Powered by ViewVC 1.1.20