annotate src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java @ 647:4da01934e46f

Added new validation rules for messung objects.
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 05 May 2015 14:09:31 +0200
parents
children de47b7193bdb
rev   line source
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.validation.rules.messung;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import java.util.List;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import javax.inject.Inject;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import de.intevation.lada.model.land.LMessung;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import de.intevation.lada.model.land.LMesswert;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import de.intevation.lada.model.stamm.MmtMessgroesse;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import de.intevation.lada.util.annotation.RepositoryConfig;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import de.intevation.lada.util.data.QueryBuilder;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import de.intevation.lada.util.data.Repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import de.intevation.lada.util.data.RepositoryType;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import de.intevation.lada.util.rest.Response;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.validation.Violation;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.validation.annotation.ValidationRule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.validation.rules.Rule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 @ValidationRule("Messung")
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 public class MessgroesseToMessmethode implements Rule {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 @Inject
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 @RepositoryConfig(type=RepositoryType.RO)
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 private Repository repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 @Override
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 public Violation execute(Object object) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 LMessung messung = (LMessung)object;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 String mmt = messung.getMmtId();
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 QueryBuilder<LMesswert> builder =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 new QueryBuilder<LMesswert>(
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 repository.entityManager("land"), LMesswert.class);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 builder.and("messungsId", messung.getId())
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 .and("probeId", messung.getProbeId());
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 Response response = repository.filter(builder.getQuery(), "land");
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 List<LMesswert> messwerte = (List<LMesswert>)response.getData();
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 QueryBuilder<MmtMessgroesse> mmtBuilder =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 new QueryBuilder<MmtMessgroesse>(
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 repository.entityManager("stamm"), MmtMessgroesse.class);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 builder.and("mmtId", mmt);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 Response results =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 repository.filter(mmtBuilder.getQuery(), "stamm");
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 List<MmtMessgroesse> messgroessen =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 (List<MmtMessgroesse>)results.getData();
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 Violation violation = new Violation();
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 for(LMesswert messwert: messwerte) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 boolean hit = false;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 for (MmtMessgroesse messgroesse: messgroessen) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 if (messwert.getMessgroesseId().equals(
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 messgroesse.getMmtMessgroessePK().getMmtId().toString())) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 hit = true;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 if (!hit) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 violation.addWarning("messgroesse", 632);
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 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 return violation.hasWarnings() ? violation : null;
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 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)