Mercurial > lada > lada-server
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 } |