diff src/main/java/de/intevation/lada/validation/rules/probe/HasEntnahmeOrt.java @ 538:fd927b584c54

Added first validation rules for probe objects.
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 24 Feb 2015 10:58:06 +0100
parents
children de47b7193bdb
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/main/java/de/intevation/lada/validation/rules/probe/HasEntnahmeOrt.java	Tue Feb 24 10:58:06 2015 +0100
@@ -0,0 +1,50 @@
+package de.intevation.lada.validation.rules.probe;
+
+import java.util.List;
+
+import javax.inject.Inject;
+
+import de.intevation.lada.model.land.LOrt;
+import de.intevation.lada.model.land.LProbe;
+import de.intevation.lada.util.annotation.RepositoryConfig;
+import de.intevation.lada.util.data.QueryBuilder;
+import de.intevation.lada.util.data.Repository;
+import de.intevation.lada.util.data.RepositoryType;
+import de.intevation.lada.util.rest.Response;
+import de.intevation.lada.validation.Violation;
+import de.intevation.lada.validation.annotation.ValidationRule;
+import de.intevation.lada.validation.rules.Rule;
+
+@ValidationRule("Probe")
+public class HasEntnahmeOrt implements Rule {
+
+    @Inject
+    @RepositoryConfig(type=RepositoryType.RO)
+    private Repository repo;
+
+    @Override
+    public Violation execute(Object object) {
+        LProbe probe = (LProbe)object;
+        Integer id = probe.getId();
+        if (id == null) {
+            Violation violation = new Violation();
+            violation.addWarning("entnahmeOrt", 631);
+            return violation;
+        }
+        QueryBuilder<LOrt> builder =
+            new QueryBuilder<LOrt>(repo.entityManager("land"), LOrt.class);
+        builder.and("probeId", id);
+        Response response = repo.filter(builder.getQuery(), "land");
+        @SuppressWarnings("unchecked")
+        List<LOrt> orte = (List<LOrt>)response.getData();
+        for (LOrt ort: orte) {
+            if (ort.getOrtsTyp().equals("E")) {
+                return null;
+            }
+        }
+        Violation violation = new Violation();
+        violation.addWarning("entnahmeOrt", 631);
+        return violation;
+    }
+
+}
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)