diff src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java @ 1285:b0f73f864486

Updated validation rules to allow messprogramm ortszuordnungen.
author Raimund Renkert <raimund.renkert@intevation.de>
date Wed, 08 Feb 2017 09:12:17 +0100
parents 201cc62a1c57
children
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java	Fri Feb 03 18:03:23 2017 +0100
+++ b/src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java	Wed Feb 08 09:12:17 2017 +0100
@@ -12,6 +12,7 @@
 import javax.inject.Inject;
 
 import de.intevation.lada.model.land.Ortszuordnung;
+import de.intevation.lada.model.land.OrtszuordnungMp;
 import de.intevation.lada.util.annotation.RepositoryConfig;
 import de.intevation.lada.util.data.QueryBuilder;
 import de.intevation.lada.util.data.Repository;
@@ -29,28 +30,55 @@
 
     @Override
     public Violation execute(Object object) {
-        Ortszuordnung ort = (Ortszuordnung)object;
-        if (!"E".equals(ort.getOrtszuordnungTyp())) {
-            return null;
-        }
+        Integer id = null;
+        if (object instanceof Ortszuordnung) {
+            Ortszuordnung ort = (Ortszuordnung)object;
+            if (!"E".equals(ort.getOrtszuordnungTyp())) {
+                return null;
+            }
+            id = ort.getProbeId();
+            QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>(
+                repository.entityManager("land"),
+                Ortszuordnung.class);
 
-        QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>(
-            repository.entityManager("land"),
-            Ortszuordnung.class);
-        builder.and("probeId", ort.getProbeId());
-        List<Ortszuordnung> orte = repository.filterPlain(
-            builder.getQuery(),
-            "land");
-        for (Ortszuordnung o : orte) {
-            if ("E".equals(o.getOrtszuordnungTyp()) &&
-                !o.getId().equals(ort.getId())
-            ) {
-                Violation violation = new Violation();
-                violation.addError("ortszuordnungTyp", 611);
-                return violation;
+            builder.and("probeId", id);
+            List<Ortszuordnung> orte = repository.filterPlain(
+                builder.getQuery(),
+                "land");
+            for (Ortszuordnung o : orte) {
+                if ("E".equals(o.getOrtszuordnungTyp()) &&
+                    !o.getId().equals(ort.getId())
+                ) {
+                    Violation violation = new Violation();
+                    violation.addError("ortszuordnungTyp", 611);
+                    return violation;
+                }
             }
         }
+        else if (object instanceof OrtszuordnungMp) {
+            OrtszuordnungMp ort = (OrtszuordnungMp)object;
+            if (!"E".equals(ort.getOrtszuordnungTyp())) {
+                return null;
+            }
+            id = ort.getMessprogrammId();
+            QueryBuilder<OrtszuordnungMp> builder = new QueryBuilder<OrtszuordnungMp>(
+                repository.entityManager("land"),
+                OrtszuordnungMp.class);
 
+            builder.and("messprogrammId", id);
+            List<OrtszuordnungMp> orte = repository.filterPlain(
+                builder.getQuery(),
+                "land");
+            for (OrtszuordnungMp o : orte) {
+                if ("E".equals(o.getOrtszuordnungTyp()) &&
+                    !o.getId().equals(ort.getId())
+                ) {
+                    Violation violation = new Violation();
+                    violation.addError("ortszuordnungTyp", 611);
+                    return violation;
+                }
+            }
+        }
         return null;
     }
 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)