annotate src/main/java/de/intevation/lada/validation/rules/messung/Date.java @ 1316:2c4a20e0bc92 release-2.5

Respect in validation rule that Messzeitpunkt might be null.
author Tom Gottfried <tom@intevation.de>
date Mon, 20 Mar 2017 15:17:20 +0100
parents 186d602e031a
children 18c789672b14
rev   line source
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
2 * Software engineering by Intevation GmbH
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
3 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
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: 677
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
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
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import java.util.HashMap;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import java.util.Map;
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.Probe;
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.util.annotation.RepositoryConfig;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.util.data.Repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.util.data.RepositoryType;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.util.rest.Response;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.validation.Violation;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import de.intevation.lada.validation.annotation.ValidationRule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import de.intevation.lada.validation.rules.Rule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
25 /**
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
26 * Validation rule for messungen.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
27 * Validates if the "messzeitpunkt" is before or after the
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
28 * "probeentnahmebeginn"
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
29 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
30 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 677
diff changeset
31 */
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 @ValidationRule("Messung")
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 public class Date implements Rule {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 @Inject
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 @RepositoryConfig(type=RepositoryType.RO)
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 private Repository repository;
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 @Override
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 public Violation execute(Object object) {
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
41 Messung messung = (Messung)object;
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 Integer probeId = messung.getProbeId();
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
43 Response response = repository.getById(Probe.class, probeId, "land");
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 711
diff changeset
44 Probe probe = (Probe) response.getData();
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
45 if (probe == null) {
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 Map<String, Integer> errors = new HashMap<String, Integer>();
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 errors.put("lprobe", 604);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 }
1316
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
49 if (messung.getMesszeitpunkt() != null) {
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
50 if (probe.getProbeentnahmeEnde() == null ||
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
51 probe.getProbeentnahmeEnde().after(messung.getMesszeitpunkt())) {
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
52 Violation violation = new Violation();
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
53 violation.addWarning("messzeitpunkt", 632);
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
54 return violation;
2c4a20e0bc92 Respect in validation rule that Messzeitpunkt might be null.
Tom Gottfried <tom@intevation.de>
parents: 1097
diff changeset
55 }
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 return null;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)