Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/data/importer/AttributeMapper.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.text.DateFormat; | 3 import java.text.DateFormat; |
4 import java.text.ParseException; | 4 import java.text.ParseException; |
5 import java.text.SimpleDateFormat; | 5 import java.text.SimpleDateFormat; |
6 import java.util.ArrayList; | |
6 import java.util.Date; | 7 import java.util.Date; |
8 import java.util.HashMap; | |
9 import java.util.LinkedList; | |
7 import java.util.List; | 10 import java.util.List; |
11 import java.util.Map; | |
8 import java.util.regex.Matcher; | 12 import java.util.regex.Matcher; |
9 import java.util.regex.Pattern; | 13 import java.util.regex.Pattern; |
10 | 14 |
11 import javax.ejb.Stateless; | 15 import javax.ejb.Stateless; |
12 import javax.inject.Inject; | 16 import javax.inject.Inject; |
19 import de.intevation.lada.model.LMessung; | 23 import de.intevation.lada.model.LMessung; |
20 import de.intevation.lada.model.LMessungId; | 24 import de.intevation.lada.model.LMessungId; |
21 import de.intevation.lada.model.LMesswert; | 25 import de.intevation.lada.model.LMesswert; |
22 import de.intevation.lada.model.LOrt; | 26 import de.intevation.lada.model.LOrt; |
23 import de.intevation.lada.model.LProbe; | 27 import de.intevation.lada.model.LProbe; |
28 import de.intevation.lada.model.LProbeInfo; | |
24 import de.intevation.lada.model.SMessEinheit; | 29 import de.intevation.lada.model.SMessEinheit; |
25 import de.intevation.lada.model.SMessgroesse; | 30 import de.intevation.lada.model.SMessgroesse; |
26 import de.intevation.lada.rest.Response; | 31 import de.intevation.lada.rest.Response; |
27 | 32 |
28 @Stateless | 33 @Stateless |
30 { | 35 { |
31 @Inject | 36 @Inject |
32 private EntityManager em; | 37 private EntityManager em; |
33 | 38 |
34 @Inject | 39 @Inject |
40 @Named("lproberepository") | |
41 private Repository probeRepo; | |
42 | |
43 @Inject | |
35 @Named("readonlyrepository") | 44 @Named("readonlyrepository") |
36 private Repository sRepository; | 45 private Repository sRepository; |
37 | 46 |
47 private List<ReportData> warnings; | |
48 private List<ReportData> errors; | |
49 | |
50 public AttributeMapper() { | |
51 this.warnings = new ArrayList<ReportData>(); | |
52 this.errors = new ArrayList<ReportData>(); | |
53 } | |
38 public LProbe addAttribute(String key, Object value, LProbe probe) { | 54 public LProbe addAttribute(String key, Object value, LProbe probe) { |
39 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); | 55 DateFormat format = new SimpleDateFormat("yyyyMMdd HHmm"); |
40 if ("datenbasis_s".equals(key)) { | 56 if ("datenbasis_s".equals(key)) { |
41 Integer v = Integer.valueOf(value.toString()); | 57 Integer v = Integer.valueOf(value.toString()); |
42 probe.setDatenbasisId(v); | 58 probe.setDatenbasisId(v); |
43 } | 59 } |
44 else if ("probe_id".equals(key)) { | 60 else if ("probe_id".equals(key)) { |
61 if (probeRepo.findById(LProbeInfo.class, value.toString()) != null) { | |
62 errors.add(new ReportData("probe_id", value.toString(), 662)); | |
63 return null; | |
64 } | |
45 probe.setProbeId(value.toString()); | 65 probe.setProbeId(value.toString()); |
46 } | 66 } |
47 else if ("hauptprobennummer".equals(key)) { | 67 else if ("hauptprobennummer".equals(key)) { |
48 probe.setHauptprobenNr(value.toString()); | 68 probe.setHauptprobenNr(value.toString()); |
49 } | 69 } |
279 else if ("ort_typ".equals(key)) { | 299 else if ("ort_typ".equals(key)) { |
280 ort.setOrtsTyp(values.toString()); | 300 ort.setOrtsTyp(values.toString()); |
281 } | 301 } |
282 return ort; | 302 return ort; |
283 } | 303 } |
304 | |
305 /** | |
306 * @return the warnings | |
307 */ | |
308 public List<ReportData> getWarnings() { | |
309 return warnings; | |
310 } | |
311 | |
312 /** | |
313 * @return the errors | |
314 */ | |
315 public List<ReportData> getErrors() { | |
316 return errors; | |
317 } | |
318 | |
319 public void reset() { | |
320 errors.clear(); | |
321 warnings.clear(); | |
322 } | |
284 } | 323 } |