changeset 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 736445a05169
children 7da497d142a2
files src/main/java/de/intevation/lada/validation/OrtszuordnungValidator.java src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java
diffstat 2 files changed, 49 insertions(+), 19 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/validation/OrtszuordnungValidator.java	Fri Feb 03 18:03:23 2017 +0100
+++ b/src/main/java/de/intevation/lada/validation/OrtszuordnungValidator.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.validation.annotation.ValidationConfig;
 import de.intevation.lada.validation.annotation.ValidationRule;
 import de.intevation.lada.validation.rules.Rule;
@@ -35,7 +36,8 @@
     @Override
     public Violation validate(Object object) {
         Violation violations = new Violation();
-        if (!(object instanceof Ortszuordnung)) {
+        if (!(object instanceof Ortszuordnung) &&
+            !(object instanceof OrtszuordnungMp)) {
             violations.addError("ortszuordnung", 602);
             return violations;
         }
--- 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)