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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)