Mercurial > lada > lada-server
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 } |