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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2869 - (hide annotations) (download)
Thu Jan 28 16:21:36 2016 UTC (8 years, 4 months ago) by torben
Original Path: dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressSourceBK.java
File size: 2489 byte(s)
More refactoring
1 torben 2838 package dk.daoas.adressevedligehold;
2    
3     import java.io.IOException;
4    
5     import org.apache.commons.fileupload.FileItem;
6    
7     import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;
8     import dk.daoas.adressevedligehold.util.SafeParsers;
9    
10 torben 2868 public class AddressSourceBK extends AbstractAddressSource {
11 torben 2838
12    
13     public AddressSourceBK(FileItem file) throws Exception {
14 torben 2868 super(file);
15 torben 2838 }
16    
17    
18 torben 2844 @Override
19     public void validate() throws IOException {
20 torben 2869 super.validatNoHeaderLine(13, ';');
21 torben 2844 }
22    
23 torben 2838 //TODO: Skal csv parsning klares med Apache Commons CSV ?
24    
25     @Override
26     public AddressSourceEntry getNextEntry() throws IOException {
27     String line = br.readLine();
28     if (line == null) // end of file
29     return null;
30    
31     if (line.trim().equals(""))
32     return null;
33    
34     //System.out.println(line);
35    
36     AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
37     entry.distributor = "BK";
38    
39     String[] parts = line.split(";");
40 torben 2857
41     if (parts.length != 13) {
42     throw new IOException("Not enough fields in CSV file. Found " + parts.length + ", expected 13");
43     }
44    
45 torben 2838 entry.postnr = Short.parseShort( parts[0]);
46     entry.vejnavn = parts[1].replace("\"", "");
47     entry.husnr = Short.parseShort( parts[2] );
48     entry.litra = parts[3].replace("\"", "");
49     entry.vejkode = SafeParsers.parseShort( parts[4] );
50     entry.kommunekode = SafeParsers.parseShort( parts[5] );
51     entry.gadeid = Integer.parseInt( parts[6] );
52    
53     String ugedage = parts[7].replace("\"", "");
54    
55     String laesnr = parts[8].replace("\"", "");
56    
57 torben 2844 //String distnr = parts[9].replace("\"", ""); //Bruges ikke
58 torben 2838 String foede = parts[10].replace("\"", "");
59     String jobnr = parts[11].replace("\"", "");
60     String tklaes = parts[12].replace("\"", "");
61    
62     entry.rute = laesnr;
63     entry.koreliste = "/" + foede + "/" + tklaes + "/" + jobnr;
64    
65     entry.rute = dirigeringsCache.getInstance(entry.rute);
66     entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
67    
68     switch (ugedage) {
69     case "1234000":
70     entry.ugedage = EntryUgedage.MAN_TOR;
71     break;
72     case "0000500":
73     entry.ugedage = EntryUgedage.FRE;
74     break;
75     case "0000060":
76     entry.ugedage = EntryUgedage.LOR;
77     break;
78     case "0000007":
79     entry.ugedage = EntryUgedage.SON;
80     break;
81     default:
82     throw new IOException("Ukendt ugedag:" + ugedage);
83     }
84    
85    
86     lineCount++;
87    
88     return entry;
89     }
90    
91     @Override
92     public String getDistributor() {
93     return "BK";
94     }
95    
96     }

  ViewVC Help
Powered by ViewVC 1.1.20