annotate src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java @ 1230:f48be4a5c6a0

Correct package.
author Tom Gottfried <tom@intevation.de>
date Fri, 09 Dec 2016 18:15:42 +0100
parents 73ad827faa81
children 201cc62a1c57
rev   line source
1165
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 *
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 */
1230
f48be4a5c6a0 Correct package.
Tom Gottfried <tom@intevation.de>
parents: 1224
diff changeset
8 package de.intevation.lada.validation.rules.ortszuordnung;
1165
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import java.util.List;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import javax.inject.Inject;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import de.intevation.lada.model.land.Ortszuordnung;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.util.annotation.RepositoryConfig;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.util.data.QueryBuilder;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.util.data.Repository;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.util.data.RepositoryType;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.validation.Violation;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.validation.annotation.ValidationRule;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.validation.rules.Rule;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
1224
73ad827faa81 Rename validation of Ortszuordnung.
Tom Gottfried <tom@intevation.de>
parents: 1167
diff changeset
23 @ValidationRule("Ortszuordnung")
1165
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 public class HasEntnahmeOrt implements Rule {
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 @Inject
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 @RepositoryConfig(type=RepositoryType.RO)
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 private Repository repository;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 @Override
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 public Violation execute(Object object) {
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 Ortszuordnung ort = (Ortszuordnung)object;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 if (!"E".equals(ort.getOrtszuordnungTyp())) {
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 return null;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 }
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>(
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 repository.entityManager("land"),
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 Ortszuordnung.class);
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 builder.and("probeId", ort.getProbeId());
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 List<Ortszuordnung> orte = repository.filterPlain(
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 builder.getQuery(),
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 "land");
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 for (Ortszuordnung o : orte) {
1166
8295d84fe003 Allow update of "entnahme ort" in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1165
diff changeset
45 if ("E".equals(o.getOrtszuordnungTyp()) &&
1167
7d3adb0834f5 Fixed rule to allow update of 'entnahmeOrt'.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1166
diff changeset
46 !o.getId().equals(ort.getId())
1166
8295d84fe003 Allow update of "entnahme ort" in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1165
diff changeset
47 ) {
1165
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 Violation violation = new Violation();
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 violation.addError("ortszuordnungsTyp", 611);
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 return violation;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 }
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 }
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 return null;
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 }
46db98d060ae Added validation to make sure a probe has only one 'entnahme ort'.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)