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

  ViewVC Help
Powered by ViewVC 1.1.20