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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2874 - (hide annotations) (download)
Thu Jan 28 17:15:42 2016 UTC (8 years, 4 months ago) by torben
File size: 2655 byte(s)
Use guava splitter for BK
1 torben 2838 package dk.daoas.adressevedligehold;
2    
3     import java.io.IOException;
4 torben 2874 import java.util.List;
5 torben 2838
6     import org.apache.commons.fileupload.FileItem;
7    
8 torben 2874 import com.google.common.base.Splitter;
9    
10 torben 2838 import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;
11     import dk.daoas.adressevedligehold.util.SafeParsers;
12    
13 torben 2868 public class AddressSourceBK extends AbstractAddressSource {
14 torben 2838
15    
16     public AddressSourceBK(FileItem file) throws Exception {
17 torben 2868 super(file);
18 torben 2838 }
19    
20    
21 torben 2844 @Override
22     public void validate() throws IOException {
23 torben 2874 super.validatNoHeaderLine(14, ';');
24 torben 2844 }
25    
26 torben 2838 //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 torben 2874 List<String> parts =Splitter.on(';').splitToList(line);
43 torben 2857
44 torben 2874 if (parts.size() != 14) {
45     throw new IOException("Not enough fields in CSV file. Found " + parts.size() + ", expected 14");
46 torben 2857 }
47    
48 torben 2874 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 torben 2838
56 torben 2874 String ugedage = parts.get( 7 ).replace("\"", "");
57 torben 2838
58 torben 2874 String laesnr = parts.get( 8 ).replace("\"", "");
59 torben 2838
60 torben 2874 //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 torben 2838
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