Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/validation/rules/messung/HasPflichtmessgroessen.java @ 1336:18c789672b14
Made validator messages more verbose for importer.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Thu, 06 Apr 2017 10:10:39 +0200 |
parents | 186d602e031a |
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 */ |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
8 package de.intevation.lada.validation.rules.messung; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
9 |
1336
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
10 import java.util.ArrayList; |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
11 import java.util.List; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
12 |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
13 import javax.inject.Inject; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
14 |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
15 import de.intevation.lada.model.land.Messung; |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
16 import de.intevation.lada.model.land.Messwert; |
1336
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
17 import de.intevation.lada.model.land.Probe; |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
18 import de.intevation.lada.model.stammdaten.Messgroesse; |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
19 import de.intevation.lada.model.stammdaten.PflichtMessgroesse; |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
20 import de.intevation.lada.util.annotation.RepositoryConfig; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
21 import de.intevation.lada.util.data.QueryBuilder; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
22 import de.intevation.lada.util.data.Repository; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
23 import de.intevation.lada.util.data.RepositoryType; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
24 import de.intevation.lada.util.rest.Response; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
25 import de.intevation.lada.validation.Violation; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
26 import de.intevation.lada.validation.annotation.ValidationRule; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
27 import de.intevation.lada.validation.rules.Rule; |
4da01934e46f
Added new validation rules for messung 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 messungen. |
3ec358698b4d
Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
685
diff
changeset
|
31 * Validates if the messung has all "pflichtmessgroessen". |
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 */ |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
35 @ValidationRule("Messung") |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
36 public class HasPflichtmessgroessen implements Rule { |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
37 |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
38 @Inject |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
39 @RepositoryConfig(type=RepositoryType.RO) |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
40 private Repository repository; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
41 |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 @Override |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 public Violation execute(Object object) { |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
44 Messung messung = (Messung)object; |
1336
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
45 Probe probe = repository.getByIdPlain(Probe.class, messung.getProbeId(), "land"); |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
46 |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
47 QueryBuilder<PflichtMessgroesse> builder = |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 new QueryBuilder<PflichtMessgroesse>( |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
49 repository.entityManager("stamm"), |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
50 PflichtMessgroesse.class); |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
51 builder.and("messMethodeId", messung.getMmtId()); |
1336
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
52 builder.and("umwId", probe.getUmwId()); |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
53 Response response = repository.filter(builder.getQuery(), "stamm"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
682
diff
changeset
|
54 @SuppressWarnings("unchecked") |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
55 List<PflichtMessgroesse> pflicht = |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 (List<PflichtMessgroesse>)response.getData(); |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
58 QueryBuilder<Messwert> wertBuilder = |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
59 new QueryBuilder<Messwert>( |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
60 repository.entityManager("land"), Messwert.class); |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
61 wertBuilder.and("messungsId", messung.getId()); |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 Response wertResponse = |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
63 repository.filter(wertBuilder.getQuery(), "land"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
682
diff
changeset
|
64 @SuppressWarnings("unchecked") |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
711
diff
changeset
|
65 List<Messwert> messwerte = (List<Messwert>)wertResponse.getData(); |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
66 Violation violation = new Violation(); |
1336
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
67 List<PflichtMessgroesse> tmp = new ArrayList<PflichtMessgroesse>(); |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
68 for (Messwert wert : messwerte) { |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
69 for (PflichtMessgroesse p : pflicht) { |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
70 if (p.getMessgroesseId().equals(wert.getMessgroesseId())) { |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
71 tmp.add(p); |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
73 } |
682
0015e96a6454
Fixed validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
677
diff
changeset
|
74 } |
1336
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
75 pflicht.removeAll(tmp); |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
76 if (!pflicht.isEmpty()) { |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
77 for (PflichtMessgroesse p : pflicht) { |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
78 Messgroesse mg = repository.getByIdPlain(Messgroesse.class, p.getMessgroesseId(), "stamm"); |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
79 violation.addWarning("pflichtmessgroesse#" + mg.getMessgroesse(), 631); |
18c789672b14
Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
1097
diff
changeset
|
80 } |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
81 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
82 return violation.hasWarnings() ? violation : null; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 } |