/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressSourceNS.java
ViewVC logotype

Annotation of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/coveragefileupload/AddressSourceNS.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2954 - (hide annotations) (download)
Tue Feb 16 13:15:25 2016 UTC (8 years, 3 months ago) by torben
Original Path: dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressSourceNS.java
File size: 3522 byte(s)
When done - schedule a incremental distance calculation
1 torben 2947 package dk.daoas.adressevedligehold.fileupload;
2 torben 2851
3     import java.io.IOException;
4 torben 2933 import java.util.List;
5 torben 2851
6     import org.apache.commons.fileupload.FileItem;
7    
8 torben 2933 import com.google.common.base.CharMatcher;
9     import com.google.common.base.Splitter;
10    
11 torben 2947 import dk.daoas.adressevedligehold.fileupload.AddressSourceEntry.EntryType;
12 torben 2851
13 torben 2868 public class AddressSourceNS extends AbstractAddressSource {
14 torben 2851
15     enum NextUgedag {
16     MANDAG,TIRSDAG,ONSDAG,TORSDAG,FREDAG,LORDAG,SONDAG
17     }
18 torben 2868
19 torben 2851
20 torben 2933 final Splitter splitter = Splitter.on(',')
21     .trimResults( CharMatcher.is('"') );
22 torben 2851
23 torben 2933 List<String> parts;
24    
25    
26 torben 2851 NextUgedag nextUgedag = NextUgedag.MANDAG;
27    
28     public AddressSourceNS(FileItem file) throws Exception {
29 torben 2868 super(file);
30 torben 2851 }
31    
32    
33     @Override
34     public void validate() throws IOException {
35 torben 2869 super.validatNoHeaderLine(22, ',');
36 torben 2851 }
37    
38    
39     @Override
40     public AddressSourceEntry getNextEntry() throws IOException {
41     if (nextUgedag == NextUgedag.MANDAG) {
42     String line = br.readLine();
43     if (line == null) // end of file
44     return null;
45    
46     if (line.trim().equals(""))
47     return null;
48 torben 2933 parts = splitter.splitToList(line);
49 torben 2851
50 torben 2933 if (parts.size() != 22) {
51 torben 2851 throw new IOException("Not enough fields in line " + line);
52     }
53     }
54    
55    
56    
57    
58     AddressSourceEntry entry = new AddressSourceEntry( EntryType.TypeAddressRange );
59     entry.distributor = "NS";
60    
61    
62 torben 2933 entry.gadeid = Integer.parseInt( parts.get(0) );
63     entry.vejnavn = parts.get(1);
64     //stednavn = parts.get(2);
65     //ukendtt = parts.get(3);
66     entry.postnr = Short.parseShort( parts.get(4) );
67 torben 2935 entry.rute = parts.get(5);
68 torben 2933 entry.husnr = Short.parseShort( parts.get(6) );
69     entry.litra = parts.get(7);
70     entry.tilHusnr = Short.parseShort( parts.get(8) );
71     entry.tilLitra = parts.get(9);
72     //sekvens = parts.get(10)
73     //fradato = parts.get(11)
74     //tildato = parts.get(12)
75     //distributor = parts.get(13)
76     //inspektorkode = parts.get(21)
77 torben 2851
78 torben 2934 if (entry.tilLitra.equals("")) {
79     entry.tilLitra = "Z"; // hvis der ikke er angivet en slut litra, så dækker de alle litra kombinationer
80     }
81    
82 torben 2851 switch (nextUgedag) {
83     case MANDAG:
84 torben 2935 entry.koreliste = parts.get(14);
85 torben 2851 entry.ugedage = EntryUgedage.MAN;
86     nextUgedag = NextUgedag.TIRSDAG;
87     break;
88     case TIRSDAG:
89 torben 2935 entry.koreliste = parts.get(15);
90 torben 2851 entry.ugedage = EntryUgedage.TIR;
91     nextUgedag = NextUgedag.ONSDAG;
92     break;
93     case ONSDAG:
94 torben 2935 entry.koreliste = parts.get(16);
95 torben 2851 entry.ugedage = EntryUgedage.ONS;
96     nextUgedag = NextUgedag.TORSDAG;
97     break;
98     case TORSDAG:
99 torben 2935 entry.koreliste = parts.get(17);
100 torben 2851 entry.ugedage = EntryUgedage.TOR;
101     nextUgedag = NextUgedag.FREDAG;
102     break;
103     case FREDAG:
104 torben 2935 entry.koreliste = parts.get(18);
105 torben 2851 entry.ugedage = EntryUgedage.FRE;
106     nextUgedag = NextUgedag.LORDAG;
107     break;
108     case LORDAG:
109 torben 2935 entry.koreliste = parts.get(19);
110 torben 2851 entry.ugedage = EntryUgedage.LOR;
111     nextUgedag = NextUgedag.SONDAG;
112     break;
113     case SONDAG:
114 torben 2935 entry.koreliste = parts.get(20);
115 torben 2851 entry.ugedage = EntryUgedage.SON;
116     nextUgedag = NextUgedag.MANDAG;
117     break;
118     default:
119     throw new IOException("Ukendt ugedag:" + nextUgedag);
120     }
121 torben 2935
122     entry.rute = dirigeringsCache.getInstance(entry.rute);
123     entry.koreliste = dirigeringsCache.getInstance(entry.koreliste);
124 torben 2851
125    
126     lineCount++;
127    
128     return entry;
129     }
130    
131     @Override
132     public String getDistributor() {
133     return "NS";
134     }
135 torben 2954
136     @Override
137     public boolean calculateDistances() {
138     return false; //NS skal IKKE beregne afstande
139     }
140 torben 2851
141     }

  ViewVC Help
Powered by ViewVC 1.1.20