diff src/main/java/de/intevation/lada/data/importer/LAFProducer.java @ 337:cb47c33b119d

Imporved error/warning handling and fixed some bugs in the importer module.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 28 Aug 2013 15:11:50 +0200
parents 5d11428e6a09
children 97aa76c9c2d3
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/data/importer/LAFProducer.java	Wed Aug 28 15:10:19 2013 +0200
+++ b/src/main/java/de/intevation/lada/data/importer/LAFProducer.java	Wed Aug 28 15:11:50 2013 +0200
@@ -9,6 +9,8 @@
 import javax.inject.Inject;
 import javax.inject.Named;
 
+import de.intevation.lada.data.QueryBuilder;
+import de.intevation.lada.data.Repository;
 import de.intevation.lada.model.LKommentarM;
 import de.intevation.lada.model.LKommentarMId;
 import de.intevation.lada.model.LKommentarP;
@@ -19,12 +21,19 @@
 import de.intevation.lada.model.LOrt;
 import de.intevation.lada.model.LProbe;
 import de.intevation.lada.model.LProbe;
+import de.intevation.lada.model.LZusatzWert;
+import de.intevation.lada.model.LZusatzWertId;
+import de.intevation.lada.model.SProbenZusatz;
 
 @Named("lafproducer")
 public class LAFProducer
 implements Producer
 {
 
+    @Inject
+    @Named("readonlyrepository")
+    private Repository sRepository;
+
     private LProbe probe;
     private LMessung messung;
     private LOrt ort;
@@ -34,6 +43,7 @@
     private List<LMessung> messungen;
     private List<LOrt> orte;
     private List<LMesswert> messwerte;
+    private List<LZusatzWert> zusatzwerte;
 
     private List<EntryFormat> probenFormat;
     private List<EntryFormat> messungFormat;
@@ -84,10 +94,42 @@
                 mapper.addAttribute(lKey, values, kommentar));
         }
         else if (lKey.equals("probenzusatzbeschreibung")) {
-            //TODO: implement this!
+            LZusatzWertId zusatzId = new LZusatzWertId();
+            zusatzId.setProbeId(this.probe.getProbeId());
+            LZusatzWert wert = new LZusatzWert();
+            wert.setId(zusatzId);
+            LZusatzWert zusatzWert = mapper.addAttribute(lKey, values, wert);
+            if (zusatzWert != null) {
+                this.zusatzwerte.add(zusatzWert);
+            }
+            else {
+                List<ReportData> err = this.errors.get(probe.getProbeId());
+                if (err == null) {
+                    this.errors.put(probe.getProbeId(), mapper.getErrors());
+                }
+                else {
+                    err.addAll(mapper.getErrors());
+                }
+            }
         }
         else if (lKey.equals("pzb_s")) {
-            //TODO: implement this!
+            LZusatzWertId zusatzId = new LZusatzWertId();
+            zusatzId.setProbeId(this.probe.getProbeId());
+            LZusatzWert wert = new LZusatzWert();
+            wert.setId(zusatzId);
+            LZusatzWert zusatzWert = mapper.addAttributeS(lKey, values, wert);
+            if (zusatzWert != null) {
+                this.zusatzwerte.add(zusatzWert);
+            }
+            else {
+                List<ReportData> err = this.errors.get(probe.getProbeId());
+                if (err == null) {
+                    this.errors.put(probe.getProbeId(), mapper.getErrors());
+                }
+                else {
+                    err.addAll(mapper.getErrors());
+                }
+            }
         }
         else if (lKey.equals("messwert")) {
             LMesswertId id = new LMesswertId();
@@ -101,6 +143,15 @@
             if (wert != null) {
                 this.messwerte.add(wert);
             }
+            else {
+                List<ReportData> err = this.errors.get(probe.getProbeId());
+                if (err == null) {
+                    this.errors.put(probe.getProbeId(), mapper.getErrors());
+                }
+                else {
+                    err.addAll(mapper.getErrors());
+                }
+            }
         }
         else if (isValidMessung(lKey, values.toString())) {
             this.messung = mapper.addAttribute(lKey, values, this.messung);
@@ -181,17 +232,22 @@
     }
 
     @Override
+    public List<LZusatzWert> getZusatzwerte() {
+        return this.zusatzwerte;
+    }
+
+    @Override
     public void reset() {
-        this.errors.clear();
-        this.warnings.clear();
+        this.errors = new HashMap<String, List<ReportData>>();
+        this.warnings = new HashMap<String, List<ReportData>>();
         this.probe = new LProbe();
-        this.messungen.clear();
+        this.messungen = new ArrayList<LMessung>();
         this.messung = null;
-        this.orte.clear();
+        this.orte = new ArrayList<LOrt>();
         this.ort = null;
-        this.messwerte.clear();
-        this.mKommentare.clear();
-        this.pKommentare.clear();
+        this.messwerte = new ArrayList<LMesswert>();
+        this.mKommentare = new ArrayList<LKommentarM>();
+        this.pKommentare = new ArrayList<LKommentarP>();
         mapper.reset();
     }
 
@@ -218,6 +274,16 @@
      * @return the warnings
      */
     public Map<String, List<ReportData>> getWarnings() {
+        if (this.probe == null) {
+            return this.warnings;
+        }
+        List<ReportData> warn = this.warnings.get(probe.getProbeId());
+        if (warn == null) {
+            this.warnings.put(probe.getProbeId(), mapper.getWarnings());
+        }
+        else {
+            warn.addAll(mapper.getWarnings());
+        }
         return this.warnings;
     }
 
@@ -225,6 +291,16 @@
      * @return the errors
      */
     public Map<String, List<ReportData>> getErrors() {
+        if (this.probe == null) {
+            return this.errors;
+        }
+        List<ReportData> err = this.errors.get(this.probe.getProbeId());
+        if (err == null) {
+            this.errors.put(probe.getProbeId(), mapper.getErrors());
+        }
+        else {
+            err.addAll(mapper.getErrors());
+        }
         return this.errors;
     }
 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)