/[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 2838 - (hide annotations) (download)
Sun Jan 24 21:48:55 2016 UTC (8 years, 4 months ago) by torben
File size: 3176 byte(s)
Add first working edition
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.DeduplicateHelper;
13     import dk.daoas.adressevedligehold.util.SafeParsers;
14    
15     public class AddressSourceBK implements AddressSource {
16    
17     DeduplicateHelper<String> dirigeringsCache = new DeduplicateHelper<String>();
18    
19     FileItem file;
20    
21     InputStream is;
22     InputStreamReader isr;
23     BufferedReader br;
24    
25     int lineCount = 0;
26    
27     public AddressSourceBK(FileItem file) throws Exception {
28     this.file = file;
29    
30    
31     is = file.getInputStream();
32     isr = new InputStreamReader(is, Charset.forName("ISO-8859-1") );
33     br = new BufferedReader(isr);
34    
35     }
36    
37     @Override
38     public String getFilename() {
39     return file.getName();
40     }
41    
42     //TODO: Skal csv parsning klares med Apache Commons CSV ?
43    
44     @Override
45     public AddressSourceEntry getNextEntry() throws IOException {
46     String line = br.readLine();
47     if (line == null) // end of file
48     return null;
49    
50     if (line.trim().equals(""))
51     return null;
52    
53     //System.out.println(line);
54    
55     AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
56     entry.distributor = "BK";
57    
58     String[] parts = line.split(";");
59     entry.postnr = Short.parseShort( parts[0]);
60     entry.vejnavn = parts[1].replace("\"", "");
61     entry.husnr = Short.parseShort( parts[2] );
62     entry.litra = parts[3].replace("\"", "");
63     entry.vejkode = SafeParsers.parseShort( parts[4] );
64     entry.kommunekode = SafeParsers.parseShort( parts[5] );
65     entry.gadeid = Integer.parseInt( parts[6] );
66    
67     String ugedage = parts[7].replace("\"", "");
68    
69     String laesnr = parts[8].replace("\"", "");
70    
71     @SuppressWarnings("unused") String distnr = parts[9].replace("\"", "");
72     String foede = parts[10].replace("\"", "");
73     String jobnr = parts[11].replace("\"", "");
74     String tklaes = parts[12].replace("\"", "");
75    
76     entry.rute = laesnr;
77     entry.koreliste = "/" + foede + "/" + tklaes + "/" + jobnr;
78    
79     entry.rute = dirigeringsCache.getInstance(entry.rute);
80     entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
81    
82     switch (ugedage) {
83     case "1234000":
84     entry.ugedage = EntryUgedage.MAN_TOR;
85     break;
86     case "0000500":
87     entry.ugedage = EntryUgedage.FRE;
88     break;
89     case "0000060":
90     entry.ugedage = EntryUgedage.LOR;
91     break;
92     case "0000007":
93     entry.ugedage = EntryUgedage.SON;
94     break;
95     default:
96     throw new IOException("Ukendt ugedag:" + ugedage);
97     }
98    
99    
100     lineCount++;
101    
102     return entry;
103     }
104    
105     @Override
106     public String getDistributor() {
107     return "BK";
108     }
109    
110     @Override //AutoCloseable
111     public void close() throws Exception {
112     System.out.println("Closing BK after lines " + lineCount);
113     try {
114     br.close();
115     isr.close();
116     is.close();
117    
118     file.delete();
119    
120     } catch (Exception e) {
121     System.out.println("Error on closing " + e.getMessage() );
122     }
123    
124    
125     }
126    
127     }

  ViewVC Help
Powered by ViewVC 1.1.20