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