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

  ViewVC Help
Powered by ViewVC 1.1.20