annotate src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.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 462226615381
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;
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
19 import de.intevation.lada.model.stammdaten.Messgroesse;
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
20 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
21 import de.intevation.lada.util.annotation.RepositoryConfig;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import de.intevation.lada.util.data.QueryBuilder;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import de.intevation.lada.util.data.Repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import de.intevation.lada.util.data.RepositoryType;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import de.intevation.lada.util.rest.Response;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 import de.intevation.lada.validation.Violation;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 import de.intevation.lada.validation.annotation.ValidationRule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 import de.intevation.lada.validation.rules.Rule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
30 /**
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
31 * Validation rule for messungen.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
32 * Validates if the "messgroesse" fits the "messmethode".
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
33 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
34 * @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
35 */
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 @ValidationRule("Messung")
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 public class MessgroesseToMessmethode implements Rule {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 @Inject
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
40 private Logger logger;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
41
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
42 @Inject
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 @RepositoryConfig(type=RepositoryType.RO)
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 private Repository repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 @Override
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 public Violation execute(Object object) {
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
48 Messung messung = (Messung)object;
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 String mmt = messung.getMmtId();
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
50 QueryBuilder<Messwert> builder =
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
51 new QueryBuilder<Messwert>(
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
52 repository.entityManager("land"), Messwert.class);
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
53 builder.and("messungsId", messung.getId());
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 Response response = repository.filter(builder.getQuery(), "land");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
55 @SuppressWarnings("unchecked")
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
56 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
57
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 QueryBuilder<MmtMessgroesse> mmtBuilder =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 new QueryBuilder<MmtMessgroesse>(
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 repository.entityManager("stamm"), MmtMessgroesse.class);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 Response results =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 repository.filter(mmtBuilder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
64 @SuppressWarnings("unchecked")
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 List<MmtMessgroesse> messgroessen =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 (List<MmtMessgroesse>)results.getData();
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
67 List<MmtMessgroesse> found = new ArrayList<MmtMessgroesse>();
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
68 for (MmtMessgroesse mg: messgroessen) {
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
69 if (mg.getMmtId().equals(mmt)) {
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
70 found.add(mg);
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
71 }
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
72 }
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 Violation violation = new Violation();
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 887
diff changeset
74 for(Messwert messwert: messwerte) {
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 boolean hit = false;
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
76 for (MmtMessgroesse messgroesse: found) {
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 if (messwert.getMessgroesseId().equals(
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
78 messgroesse.getMessgroesseId())) {
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 hit = true;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80 }
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 if (!hit) {
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
83 Messgroesse mg = repository.getByIdPlain(
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
84 Messgroesse.class,
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
85 messwert.getMessgroesseId(),
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
86 "stamm");
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
87 violation.addWarning("messgroesse#" + mg.getMessgroesse(), 632);
647
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 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 return violation.hasWarnings() ? violation : null;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)