Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/validation/rules/ort/CoordinatesInVE.java @ 1291:d48e1636fb0b
Map warning to existing client field and introduce new code.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Wed, 08 Feb 2017 18:32:09 +0100 |
parents | bbfb7c3b5dd8 |
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 |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
16 import org.apache.log4j.Logger; |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
17 |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
810
diff
changeset
|
18 import de.intevation.lada.model.stammdaten.Ort; |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
810
diff
changeset
|
19 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
|
20 import de.intevation.lada.model.stammdaten.Verwaltungsgrenze; |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
21 import de.intevation.lada.util.annotation.RepositoryConfig; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
22 import de.intevation.lada.util.data.QueryBuilder; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
23 import de.intevation.lada.util.data.Repository; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
24 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
|
25 import de.intevation.lada.validation.Violation; |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.lada.validation.annotation.ValidationRule; |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.validation.rules.Rule; |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
28 |
711
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
29 /** |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
30 * Validation rule for ort. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
31 * Validates if the coordinates are in the specified "Verwaltungseinheit". |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
32 * |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
33 * @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
|
34 */ |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
35 @ValidationRule("Ort") |
652
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 public class CoordinatesInVE implements Rule { |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
38 @Inject |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
39 private Logger logger; |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
40 |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
41 @Inject |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
42 @RepositoryConfig(type=RepositoryType.RO) |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
43 private Repository repository; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
44 |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
677
diff
changeset
|
45 @SuppressWarnings("unchecked") |
652
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 @Override |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 public Violation execute(Object object) { |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
48 Ort ort = (Ort)object; |
1219
b3331bc71f30
Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents:
1194
diff
changeset
|
49 |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
50 String gemId = "".equals(ort.getGemId()) |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
51 ? null |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
52 : ort.getGemId(); |
1219
b3331bc71f30
Adapt validation rule to changes in data model.
Tom Gottfried <tom@intevation.de>
parents:
1194
diff
changeset
|
53 |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
54 if (gemId != null) { |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
55 |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
56 QueryBuilder<Verwaltungsgrenze> vg = |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
57 new QueryBuilder<Verwaltungsgrenze>( |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
58 repository.entityManager("stamm"), |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
59 Verwaltungsgrenze.class); |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
60 vg.and("gemId", gemId); |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
61 List<Verwaltungsgrenze> vgs = repository.filterPlain( |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
62 vg.getQuery(), "stamm"); |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
63 if (vgs == null || vgs.isEmpty()) { |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
64 Violation violation = new Violation(); |
1291
d48e1636fb0b
Map warning to existing client field and introduce new code.
Tom Gottfried <tom@intevation.de>
parents:
1279
diff
changeset
|
65 violation.addWarning("gemId", 650); |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
66 return violation; |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
67 } |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
68 |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
69 Point p = ort.getGeom(); |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
70 if (p == null) { |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
71 logger.error("geom is null. " |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
72 + "Probably OrtFactory.transformCoordinates() has not " |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
73 + "been called on this ort."); |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
74 } |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
75 for (Verwaltungsgrenze singlevg : vgs) { |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
76 if(singlevg.getShape().contains(p)) { |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
77 return null; |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
78 } |
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
79 } |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
80 Violation violation = new Violation(); |
1279
bbfb7c3b5dd8
Add warning to existing client-side fields.
Tom Gottfried <tom@intevation.de>
parents:
1251
diff
changeset
|
81 violation.addWarning("koordXExtern", 651); |
bbfb7c3b5dd8
Add warning to existing client-side fields.
Tom Gottfried <tom@intevation.de>
parents:
1251
diff
changeset
|
82 violation.addWarning("koordYExtern", 651); |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
83 return violation; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
652
diff
changeset
|
84 } |
1251
3d0d401b9d9a
Its actually an property of an Ort that is validated here.
Tom Gottfried <tom@intevation.de>
parents:
1224
diff
changeset
|
85 |
652
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 return null; |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 } |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 |
881da3d5377b
Added empty validation rules for ort objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 } |