comparison src/main/java/de/intevation/lada/data/importer/LAFProducer.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;
34 37
35 private List<EntryFormat> probenFormat; 38 private List<EntryFormat> probenFormat;
36 private List<EntryFormat> messungFormat; 39 private List<EntryFormat> messungFormat;
37 private List<EntryFormat> ortFormat; 40 private List<EntryFormat> ortFormat;
38 41
42 private Map<String, List<ReportData>> warnings;
43 private Map<String, List<ReportData>> errors;
44
39 @Inject 45 @Inject
40 private AttributeMapper mapper; 46 private AttributeMapper mapper;
41 47
42 public LAFProducer() { 48 public LAFProducer() {
49 this.warnings = new HashMap<String, List<ReportData>>();
50 this.errors = new HashMap<String, List<ReportData>>();
43 this.probe = new LProbe(); 51 this.probe = new LProbe();
44 this.pKommentare = new ArrayList<LKommentarP>(); 52 this.pKommentare = new ArrayList<LKommentarP>();
45 this.mKommentare = new ArrayList<LKommentarM>(); 53 this.mKommentare = new ArrayList<LKommentarM>();
46 this.messungen = new ArrayList<LMessung>(); 54 this.messungen = new ArrayList<LMessung>();
47 this.orte = new ArrayList<LOrt>(); 55 this.orte = new ArrayList<LOrt>();
53 messungFormat = format.getFormat("messung"); 61 messungFormat = format.getFormat("messung");
54 ortFormat = format.getFormat("ort"); 62 ortFormat = format.getFormat("ort");
55 } 63 }
56 64
57 @Override 65 @Override
58 public void addData(String key, Object values) { 66 public void addData(String key, Object values)
67 throws LAFParserException {
59 String lKey = key.toLowerCase(); 68 String lKey = key.toLowerCase();
60 if(lKey.equals("probenkommentar")) { 69 if(lKey.equals("probenkommentar")) {
61 LKommentarP kommentar = new LKommentarP(); 70 LKommentarP kommentar = new LKommentarP();
62 kommentar.setProbeId(this.probe.getProbeId()); 71 kommentar.setProbeId(this.probe.getProbeId());
63 this.pKommentare.add( 72 this.pKommentare.add(
96 else if (isValidMessung(lKey, values.toString())) { 105 else if (isValidMessung(lKey, values.toString())) {
97 this.messung = mapper.addAttribute(lKey, values, this.messung); 106 this.messung = mapper.addAttribute(lKey, values, this.messung);
98 } 107 }
99 else if (isValidProbe(lKey, values.toString())) { 108 else if (isValidProbe(lKey, values.toString())) {
100 this.probe = mapper.addAttribute(lKey, values, this.probe); 109 this.probe = mapper.addAttribute(lKey, values, this.probe);
110 if (this.probe == null) {
111 this.errors.put(values.toString(), mapper.getErrors());
112 throw new LAFParserException(values.toString() + " exists");
113 }
101 } 114 }
102 else if (isValidOrt(lKey, values.toString())) { 115 else if (isValidOrt(lKey, values.toString())) {
103 this.ort = mapper.addAttribute(lKey, values, this.ort); 116 this.ort = mapper.addAttribute(lKey, values, this.ort);
104 } 117 }
105 } 118 }
167 return this.messwerte; 180 return this.messwerte;
168 } 181 }
169 182
170 @Override 183 @Override
171 public void reset() { 184 public void reset() {
185 this.errors.clear();
186 this.warnings.clear();
172 this.probe = new LProbe(); 187 this.probe = new LProbe();
173 this.messungen.clear(); 188 this.messungen.clear();
174 this.messung = null; 189 this.messung = null;
175 this.orte.clear(); 190 this.orte.clear();
176 this.ort = null; 191 this.ort = null;
177 this.messwerte.clear(); 192 this.messwerte.clear();
178 this.mKommentare.clear(); 193 this.mKommentare.clear();
179 this.pKommentare.clear(); 194 this.pKommentare.clear();
195 mapper.reset();
180 } 196 }
181 197
182 public void newMessung() { 198 public void newMessung() {
183 if (this.messung != null) { 199 if (this.messung != null) {
184 this.messungen.add(this.messung); 200 this.messungen.add(this.messung);
195 this.orte.add(this.ort); 211 this.orte.add(this.ort);
196 } 212 }
197 this.ort = new LOrt(); 213 this.ort = new LOrt();
198 this.ort.setProbeId(this.probe.getProbeId()); 214 this.ort.setProbeId(this.probe.getProbeId());
199 } 215 }
216
217 /**
218 * @return the warnings
219 */
220 public Map<String, List<ReportData>> getWarnings() {
221 return this.warnings;
222 }
223
224 /**
225 * @return the errors
226 */
227 public Map<String, List<ReportData>> getErrors() {
228 return this.errors;
229 }
200 } 230 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)