annotate src/main/java/de/intevation/lada/validation/rules/ort/CoordinatesInVE.java @ 1219:b3331bc71f30

Adapt validation rule to changes in data model.
author Tom Gottfried <tom@intevation.de>
date Fri, 09 Dec 2016 12:08:19 +0100
parents 289edf060550
children
rev   line source
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
2 * Software engineering by Intevation GmbH
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
3 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
7 */
652
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.validation.rules.ort;
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
10 import java.util.List;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
11
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
12 import javax.inject.Inject;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
13
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
14 import com.vividsolutions.jts.geom.Point;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
15
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 810
diff changeset
16 import de.intevation.lada.model.land.Ortszuordnung;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 810
diff changeset
17 import de.intevation.lada.model.stammdaten.Ort;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 810
diff changeset
18 import de.intevation.lada.model.stammdaten.Verwaltungseinheit;
1194
289edf060550 Removed table de_vg and added verwaltungsgrenze.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
19 import de.intevation.lada.model.stammdaten.Verwaltungsgrenze;
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
20 import de.intevation.lada.util.annotation.RepositoryConfig;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
21 import de.intevation.lada.util.data.QueryBuilder;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
22 import de.intevation.lada.util.data.Repository;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
23 import de.intevation.lada.util.data.RepositoryType;
652
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import de.intevation.lada.validation.Violation;
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import de.intevation.lada.validation.annotation.ValidationRule;
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import de.intevation.lada.validation.rules.Rule;
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
28 /**
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
29 * Validation rule for ort.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
30 * Validates if the coordinates are in the specified "Verwaltungseinheit".
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
31 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
32 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
33 */
652
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 @ValidationRule("Ort")
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 public class CoordinatesInVE implements Rule {
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
37 @Inject
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
38 @RepositoryConfig(type=RepositoryType.RO)
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
39 private Repository repository;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
40
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
41 @SuppressWarnings("unchecked")
652
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 @Override
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 public Violation execute(Object object) {
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
44 Ortszuordnung oz = (Ortszuordnung)object;
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
45 if (!"E".equals(oz.getOrtszuordnungTyp())) {
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
46 return null;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
47 }
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
48
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
49 Ort ort = repository.getByIdPlain(Ort.class, oz.getOrtId(), "stamm");
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
50 String gemId = ort.getGemId();
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
51 if (gemId == null) {
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
52 Violation violation = new Violation();
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
53 violation.addWarning("gemId", 631);
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
54 return violation;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
55 }
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
56
1194
289edf060550 Removed table de_vg and added verwaltungsgrenze.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
57 QueryBuilder<Verwaltungsgrenze> vg =
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
58 new QueryBuilder<Verwaltungsgrenze>(
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
59 repository.entityManager("stamm"), Verwaltungsgrenze.class);
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
60 vg.and("gemId", gemId);
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
61 List<Verwaltungsgrenze> vgs = repository.filterPlain(
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
62 vg.getQuery(), "stamm");
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
63 if (vgs == null || vgs.isEmpty()) {
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
64 Violation violation = new Violation();
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
65 violation.addWarning("verwaltungsgrenze", 600);
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
66 return violation;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
67 }
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
68
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
69 Point p = ort.getGeom();
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
70 boolean hit = false;
1194
289edf060550 Removed table de_vg and added verwaltungsgrenze.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
71 for (Verwaltungsgrenze singlevg : vgs) {
289edf060550 Removed table de_vg and added verwaltungsgrenze.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
72 if(singlevg.getShape().contains(p)) {
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
73 hit = true;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
74 }
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
75 }
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
76 if (!hit) {
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
77 Violation violation = new Violation();
1219
b3331bc71f30 Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents: 1194
diff changeset
78 violation.addWarning("verwaltungsgrenze", 651);
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
79 return violation;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 652
diff changeset
80 }
652
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 return null;
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 }
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83
881da3d5377b Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)