/[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 2868 - (hide annotations) (download)
Thu Jan 28 16:12:28 2016 UTC (8 years, 4 months ago) by torben
File size: 3249 byte(s)
Refactor common code from AddressSource* to AbstractAddressSource
1 torben 2838 package dk.daoas.adressevedligehold;
2    
3     import java.io.BufferedReader;
4     import java.io.IOException;
5     import java.io.InputStream;
6     import java.io.InputStreamReader;
7     import java.nio.charset.Charset;
8    
9     import org.apache.commons.fileupload.FileItem;
10    
11     import dk.daoas.adressevedligehold.AddressSourceEntry.EntryType;
12     import dk.daoas.adressevedligehold.util.SafeParsers;
13    
14 torben 2868 public class AddressSourceBK extends AbstractAddressSource {
15 torben 2838
16    
17     public AddressSourceBK(FileItem file) throws Exception {
18 torben 2868 super(file);
19 torben 2838 }
20    
21    
22 torben 2844 @Override
23     public void validate() throws IOException {
24     try (
25     InputStream is1 = file.getInputStream();
26     InputStreamReader isr1 = new InputStreamReader(is1, Charset.forName("ISO-8859-1") );
27     BufferedReader br1 = new BufferedReader(isr1)
28     ) {
29     String line = br1.readLine();
30 torben 2861
31     if (line == null) {
32     throw new IOException("Can't read 1st line - is file empty?");
33     }
34    
35 torben 2844 String[] parts = line.split(";");
36 torben 2861
37     if (parts.length != 13) {
38     throw new IOException("Not enough fields in CSV file. Found " + parts.length + ", expected 13");
39 torben 2844 }
40     }
41    
42    
43     is = file.getInputStream();
44     isr = new InputStreamReader(is, Charset.forName("ISO-8859-1") );
45     br = new BufferedReader(isr);
46     }
47    
48 torben 2838 //TODO: Skal csv parsning klares med Apache Commons CSV ?
49    
50     @Override
51     public AddressSourceEntry getNextEntry() throws IOException {
52     String line = br.readLine();
53     if (line == null) // end of file
54     return null;
55    
56     if (line.trim().equals(""))
57     return null;
58    
59     //System.out.println(line);
60    
61     AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
62     entry.distributor = "BK";
63    
64     String[] parts = line.split(";");
65 torben 2857
66     if (parts.length != 13) {
67     throw new IOException("Not enough fields in CSV file. Found " + parts.length + ", expected 13");
68     }
69    
70 torben 2838 entry.postnr = Short.parseShort( parts[0]);
71     entry.vejnavn = parts[1].replace("\"", "");
72     entry.husnr = Short.parseShort( parts[2] );
73     entry.litra = parts[3].replace("\"", "");
74     entry.vejkode = SafeParsers.parseShort( parts[4] );
75     entry.kommunekode = SafeParsers.parseShort( parts[5] );
76     entry.gadeid = Integer.parseInt( parts[6] );
77    
78     String ugedage = parts[7].replace("\"", "");
79    
80     String laesnr = parts[8].replace("\"", "");
81    
82 torben 2844 //String distnr = parts[9].replace("\"", ""); //Bruges ikke
83 torben 2838 String foede = parts[10].replace("\"", "");
84     String jobnr = parts[11].replace("\"", "");
85     String tklaes = parts[12].replace("\"", "");
86    
87     entry.rute = laesnr;
88     entry.koreliste = "/" + foede + "/" + tklaes + "/" + jobnr;
89    
90     entry.rute = dirigeringsCache.getInstance(entry.rute);
91     entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
92    
93     switch (ugedage) {
94     case "1234000":
95     entry.ugedage = EntryUgedage.MAN_TOR;
96     break;
97     case "0000500":
98     entry.ugedage = EntryUgedage.FRE;
99     break;
100     case "0000060":
101     entry.ugedage = EntryUgedage.LOR;
102     break;
103     case "0000007":
104     entry.ugedage = EntryUgedage.SON;
105     break;
106     default:
107     throw new IOException("Ukendt ugedag:" + ugedage);
108     }
109    
110    
111     lineCount++;
112    
113     return entry;
114     }
115    
116     @Override
117     public String getDistributor() {
118     return "BK";
119     }
120    
121     }

  ViewVC Help
Powered by ViewVC 1.1.20