/[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 3016 - (hide annotations) (download)
Mon Apr 25 07:52:53 2016 UTC (8 years, 1 month ago) by torben
File size: 2824 byte(s)
Tilret til nyt BK layout
1 torben 2947 package dk.daoas.adressevedligehold.fileupload;
2 torben 2838
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 2875 import com.google.common.base.CharMatcher;
9 torben 2874 import com.google.common.base.Splitter;
10    
11 torben 2947 import dk.daoas.adressevedligehold.fileupload.AddressSourceEntry.EntryType;
12 torben 2838 import dk.daoas.adressevedligehold.util.SafeParsers;
13    
14 torben 2868 public class AddressSourceBK extends AbstractAddressSource {
15 torben 2838
16 torben 2875 Splitter splitter = Splitter.on(';').trimResults( CharMatcher.is('"') );
17 torben 2838
18     public AddressSourceBK(FileItem file) throws Exception {
19 torben 2868 super(file);
20 torben 2838 }
21    
22    
23 torben 2844 @Override
24     public void validate() throws IOException {
25 torben 2964 super.validatNoHeaderLine(15, ';');
26 torben 2844 }
27    
28 torben 2838
29     @Override
30     public AddressSourceEntry getNextEntry() throws IOException {
31     String line = br.readLine();
32     if (line == null) // end of file
33     return null;
34    
35     if (line.trim().equals(""))
36     return null;
37    
38    
39     AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeSingleAddress);
40     entry.distributor = "BK";
41    
42 torben 2875 List<String> parts = splitter.splitToList(line);
43 torben 2857
44 torben 2964 if (parts.size() != 15) {
45     throw new IOException("Wrong number of fields in CSV file. Found " + parts.size() + ", expected 15");
46 torben 2857 }
47    
48 torben 2874 entry.postnr = Short.parseShort( parts.get(0) );
49 torben 2875 entry.vejnavn = parts.get( 1 );
50 torben 2874 entry.husnr = Short.parseShort( parts.get( 2 ) );
51 torben 2875 entry.litra = parts.get( 3 );
52 torben 2874 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 2875 String ugedage = parts.get( 7 );
57 torben 2838
58 torben 2875 String laesnr = parts.get( 8 );
59 torben 2838
60 torben 2875 //String distnr = parts.get( 9 ); //Bruges ikke
61     String foede = parts.get( 10 );
62     String jobnr = parts.get( 11 );
63     String tklaes = parts.get( 12 );
64 torben 2964 //String pris = parts.get( 13 );//bruges ikke
65     //String blank = parts.get(14); //Bruges slet ikke - bk afslutter deres linier med en ;
66 torben 2838
67 torben 3016 entry.rute = jobnr;
68     entry.koreliste = laesnr + "/" + tklaes + "/" + foede ; // isv<nr>/tk<nr>/<lokale>
69 torben 2838
70     entry.rute = dirigeringsCache.getInstance(entry.rute);
71     entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
72    
73     switch (ugedage) {
74     case "1234000":
75     entry.ugedage = EntryUgedage.MAN_TOR;
76     break;
77     case "0000500":
78     entry.ugedage = EntryUgedage.FRE;
79     break;
80     case "0000060":
81     entry.ugedage = EntryUgedage.LOR;
82     break;
83     case "0000007":
84     entry.ugedage = EntryUgedage.SON;
85     break;
86     default:
87     throw new IOException("Ukendt ugedag:" + ugedage);
88     }
89    
90    
91     lineCount++;
92    
93     return entry;
94     }
95    
96     @Override
97     public String getDistributor() {
98     return "BK";
99     }
100    
101 torben 2954
102     @Override
103     public boolean calculateDistances() {
104     return true; //BK skal beregne afstande
105     }
106    
107 torben 2838 }

  ViewVC Help
Powered by ViewVC 1.1.20