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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)