Mercurial > lada > lada-server
comparison src/main/java/de/intevation/lada/validation/rules/ort/HasEntnahmeOrt.java @ 1165:46db98d060ae
Added validation to make sure a probe has only one 'entnahme ort'.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 09 Nov 2016 12:40:42 +0100 |
parents | |
children | 8295d84fe003 |
comparison
equal
deleted
inserted
replaced
1164:84ff77bba9b0 | 1165:46db98d060ae |
---|---|
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz | |
2 * Software engineering by Intevation GmbH | |
3 * | |
4 * This file is Free Software under the GNU GPL (v>=3) | |
5 * and comes with ABSOLUTELY NO WARRANTY! Check out | |
6 * the documentation coming with IMIS-Labordaten-Application for details. | |
7 */ | |
8 package de.intevation.lada.validation.rules.ort; | |
9 | |
10 import java.util.List; | |
11 | |
12 import javax.inject.Inject; | |
13 | |
14 import de.intevation.lada.model.land.Ortszuordnung; | |
15 import de.intevation.lada.util.annotation.RepositoryConfig; | |
16 import de.intevation.lada.util.data.QueryBuilder; | |
17 import de.intevation.lada.util.data.Repository; | |
18 import de.intevation.lada.util.data.RepositoryType; | |
19 import de.intevation.lada.validation.Violation; | |
20 import de.intevation.lada.validation.annotation.ValidationRule; | |
21 import de.intevation.lada.validation.rules.Rule; | |
22 | |
23 @ValidationRule("Ort") | |
24 public class HasEntnahmeOrt implements Rule { | |
25 | |
26 @Inject | |
27 @RepositoryConfig(type=RepositoryType.RO) | |
28 private Repository repository; | |
29 | |
30 @Override | |
31 public Violation execute(Object object) { | |
32 Ortszuordnung ort = (Ortszuordnung)object; | |
33 if (!"E".equals(ort.getOrtszuordnungTyp())) { | |
34 return null; | |
35 } | |
36 | |
37 QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>( | |
38 repository.entityManager("land"), | |
39 Ortszuordnung.class); | |
40 builder.and("probeId", ort.getProbeId()); | |
41 List<Ortszuordnung> orte = repository.filterPlain( | |
42 builder.getQuery(), | |
43 "land"); | |
44 for (Ortszuordnung o : orte) { | |
45 if ("E".equals(o.getOrtszuordnungTyp())) { | |
46 Violation violation = new Violation(); | |
47 violation.addError("ortszuordnungsTyp", 611); | |
48 return violation; | |
49 } | |
50 } | |
51 | |
52 return null; | |
53 } | |
54 } |