/[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 2838 - (show 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 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