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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2874 - (show annotations) (download)
Thu Jan 28 17:15:42 2016 UTC (8 years, 3 months ago) by torben
File size: 2655 byte(s)
Use guava splitter for BK
1 package dk.daoas.adressevedligehold;
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.Splitter;
9
10 import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;
11 import dk.daoas.adressevedligehold.util.SafeParsers;
12
13 public class AddressSourceBK extends AbstractAddressSource {
14
15
16 public AddressSourceBK(FileItem file) throws Exception {
17 super(file);
18 }
19
20
21 @Override
22 public void validate() throws IOException {
23 super.validatNoHeaderLine(14, ';');
24 }
25
26 //TODO: Skal csv parsning klares med Apache Commons CSV ?
27
28 @Override
29 public AddressSourceEntry getNextEntry() throws IOException {
30 String line = br.readLine();
31 if (line == null) // end of file
32 return null;
33
34 if (line.trim().equals(""))
35 return null;
36
37 //System.out.println(line);
38
39 AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
40 entry.distributor = "BK";
41
42 List<String> parts =Splitter.on(';').splitToList(line);
43
44 if (parts.size() != 14) {
45 throw new IOException("Not enough fields in CSV file. Found " + parts.size() + ", expected 14");
46 }
47
48 entry.postnr = Short.parseShort( parts.get(0) );
49 entry.vejnavn = parts.get( 1 ).replace("\"", "");
50 entry.husnr = Short.parseShort( parts.get( 2 ) );
51 entry.litra = parts.get( 3 ).replace("\"", "");
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 ).replace("\"", "");
57
58 String laesnr = parts.get( 8 ).replace("\"", "");
59
60 //String distnr = parts.get( 9 ).replace("\"", ""); //Bruges ikke
61 String foede = parts.get( 10 ).replace("\"", "");
62 String jobnr = parts.get( 11 ).replace("\"", "");
63 String tklaes = parts.get( 12 ).replace("\"", "");
64
65 entry.rute = laesnr;
66 entry.koreliste = "/" + foede + "/" + tklaes + "/" + jobnr;
67
68 entry.rute = dirigeringsCache.getInstance(entry.rute);
69 entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
70
71 switch (ugedage) {
72 case "1234000":
73 entry.ugedage = EntryUgedage.MAN_TOR;
74 break;
75 case "0000500":
76 entry.ugedage = EntryUgedage.FRE;
77 break;
78 case "0000060":
79 entry.ugedage = EntryUgedage.LOR;
80 break;
81 case "0000007":
82 entry.ugedage = EntryUgedage.SON;
83 break;
84 default:
85 throw new IOException("Ukendt ugedag:" + ugedage);
86 }
87
88
89 lineCount++;
90
91 return entry;
92 }
93
94 @Override
95 public String getDistributor() {
96 return "BK";
97 }
98
99 }

  ViewVC Help
Powered by ViewVC 1.1.20