Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java @ 1097:186d602e031a
Merged branch schema-update into default.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Fri, 14 Oct 2016 18:17:42 +0200 |
parents | 305f138982eb |
children | 18c789672b14 |
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 |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
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 |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
15 import org.apache.log4j.Logger; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
16 |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
17 import de.intevation.lada.model.land.Messung; |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
18 import de.intevation.lada.model.land.Messwert; |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
19 import de.intevation.lada.model.stammdaten.MmtMessgroesse; |
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 "messgroesse" fits the "messmethode". |
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 MessgroesseToMessmethode 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 |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
39 private Logger logger; |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
40 |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
41 @Inject |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
42 @RepositoryConfig(type=RepositoryType.RO) |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
43 private Repository repository; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
44 |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
45 @Override |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
46 public Violation execute(Object object) { |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
47 Messung messung = (Messung)object; |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
48 String mmt = messung.getMmtId(); |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
49 QueryBuilder<Messwert> builder = |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
50 new QueryBuilder<Messwert>( |
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
51 repository.entityManager("land"), Messwert.class); |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
52 builder.and("messungsId", messung.getId()); |
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(), "land"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
677
diff
changeset
|
54 @SuppressWarnings("unchecked") |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
55 List<Messwert> messwerte = (List<Messwert>)response.getData(); |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
56 |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
57 QueryBuilder<MmtMessgroesse> mmtBuilder = |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
58 new QueryBuilder<MmtMessgroesse>( |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
59 repository.entityManager("stamm"), MmtMessgroesse.class); |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
60 |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
61 Response results = |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
62 repository.filter(mmtBuilder.getQuery(), "stamm"); |
685
3118fbbe6292
Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
677
diff
changeset
|
63 @SuppressWarnings("unchecked") |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
64 List<MmtMessgroesse> messgroessen = |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
65 (List<MmtMessgroesse>)results.getData(); |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
66 List<MmtMessgroesse> found = new ArrayList<MmtMessgroesse>(); |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
67 for (MmtMessgroesse mg: messgroessen) { |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
68 if (mg.getMmtId().equals(mmt)) { |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
69 found.add(mg); |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
70 } |
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
71 } |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
72 Violation violation = new Violation(); |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
73 for(Messwert messwert: messwerte) { |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
74 boolean hit = false; |
677
de47b7193bdb
Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
647
diff
changeset
|
75 for (MmtMessgroesse messgroesse: found) { |
887
305f138982eb
Move auto-setting 'fertig' to correct block.
Tom Gottfried <tom@intevation.de>
parents:
714
diff
changeset
|
76 logger.trace("###### mmt: " + messwert.getMessgroesseId() |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
77 + " mmtmg: " + messgroesse.getMmtId()); |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
78 if (messwert.getMessgroesseId().equals( |
1097
186d602e031a
Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents:
887
diff
changeset
|
79 messgroesse.getMmtId())) { |
647
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
80 hit = true; |
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 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
83 if (!hit) { |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
84 violation.addWarning("messgroesse", 632); |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
85 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
86 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
87 return violation.hasWarnings() ? violation : null; |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
88 } |
4da01934e46f
Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff
changeset
|
89 } |