Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/data/importer/LAFParser.java @ 331:5d11428e6a09
Made the importer a little more robust and introduced a better warning/error reporting.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Tue, 27 Aug 2013 15:28:21 +0200 |
parents | 5844d7457dde |
children | cb47c33b119d |
comparison
equal
deleted
inserted
replaced
330:046cdc094c72 | 331:5d11428e6a09 |
---|---|
1 package de.intevation.lada.data.importer; | 1 package de.intevation.lada.data.importer; |
2 | 2 |
3 import java.util.ArrayList; | 3 import java.util.ArrayList; |
4 import java.util.HashMap; | |
5 import java.util.LinkedList; | |
4 import java.util.List; | 6 import java.util.List; |
7 import java.util.Map; | |
5 | 8 |
6 import javax.inject.Inject; | 9 import javax.inject.Inject; |
7 import javax.inject.Named; | 10 import javax.inject.Named; |
8 | 11 |
9 import de.intevation.lada.model.LKommentarM; | 12 import de.intevation.lada.model.LKommentarM; |
30 List<LOrt> orte; | 33 List<LOrt> orte; |
31 List<LMesswert> messwerte; | 34 List<LMesswert> messwerte; |
32 List<LKommentarP> probeKommentare; | 35 List<LKommentarP> probeKommentare; |
33 List<LKommentarM> messungKommentare; | 36 List<LKommentarM> messungKommentare; |
34 | 37 |
38 private Map<String, List<ReportData>> warnings; | |
39 private Map<String, List<ReportData>> errors; | |
40 | |
35 public LAFParser() { | 41 public LAFParser() { |
42 this.warnings = new HashMap<String, List<ReportData>>(); | |
43 this.errors = new HashMap<String, List<ReportData>>(); | |
36 this.setDryRun(false); | 44 this.setDryRun(false); |
37 //this.producer = new LAFProducer(); | 45 //this.producer = new LAFProducer(); |
38 this.proben = new ArrayList<LProbe>(); | 46 this.proben = new ArrayList<LProbe>(); |
39 this.messungen = new ArrayList<LMessung>(); | 47 this.messungen = new ArrayList<LMessung>(); |
40 this.orte = new ArrayList<LOrt>(); | 48 this.orte = new ArrayList<LOrt>(); |
62 int nextPos = laf.indexOf(PROBE_NEXT); | 70 int nextPos = laf.indexOf(PROBE_NEXT); |
63 String single = ""; | 71 String single = ""; |
64 if (nextPos > 0) { | 72 if (nextPos > 0) { |
65 single = laf.substring(0, nextPos + 1); | 73 single = laf.substring(0, nextPos + 1); |
66 laf = laf.substring(nextPos + 1); | 74 laf = laf.substring(nextPos + 1); |
67 readAll(single); | 75 try { |
76 readAll(single); | |
77 } | |
78 catch (LAFParserException lpe) { | |
79 this.errors.putAll(producer.getErrors()); | |
80 this.producer.reset(); | |
81 continue; | |
82 } | |
68 } | 83 } |
69 else { | 84 else { |
70 readAll(laf); | 85 try { |
71 laf = ""; | 86 readAll(laf); |
87 laf = ""; | |
88 } | |
89 catch (LAFParserException lpe) { | |
90 this.errors.putAll(producer.getErrors()); | |
91 laf = ""; | |
92 continue; | |
93 } | |
72 } | 94 } |
73 if (!this.dryRun) { | 95 if (!this.dryRun) { |
74 proben.add(producer.getProbe()); | 96 proben.add(producer.getProbe()); |
75 messungen.addAll(producer.getMessungen()); | 97 messungen.addAll(producer.getMessungen()); |
76 orte.addAll(producer.getOrte()); | 98 orte.addAll(producer.getOrte()); |
233 * @return the messungKommentare | 255 * @return the messungKommentare |
234 */ | 256 */ |
235 public List<LKommentarM> getMessungKommentare() { | 257 public List<LKommentarM> getMessungKommentare() { |
236 return messungKommentare; | 258 return messungKommentare; |
237 } | 259 } |
260 | |
261 /** | |
262 * @return the warnings | |
263 */ | |
264 public Map<String, List<ReportData>> getWarnings() { | |
265 return warnings; | |
266 } | |
267 | |
268 /** | |
269 * @return the errors | |
270 */ | |
271 public Map<String, List<ReportData>> getErrors() { | |
272 return errors; | |
273 } | |
274 | |
275 public void reset() { | |
276 producer.reset(); | |
277 this.errors.clear(); | |
278 this.warnings.clear(); | |
279 } | |
238 } | 280 } |