annotate src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java @ 677:de47b7193bdb

Fixed validation rules.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 22 May 2015 15:15:14 +0200
parents 4da01934e46f
children 3118fbbe6292
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
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
3 import java.util.ArrayList;
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.List;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 import javax.inject.Inject;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
8 import org.apache.log4j.Logger;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
9
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import de.intevation.lada.model.land.LMessung;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import de.intevation.lada.model.land.LMesswert;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import de.intevation.lada.model.stamm.MmtMessgroesse;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import de.intevation.lada.util.annotation.RepositoryConfig;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import de.intevation.lada.util.data.QueryBuilder;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.util.data.Repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.util.data.RepositoryType;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.util.rest.Response;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.validation.Violation;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.validation.annotation.ValidationRule;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.validation.rules.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 @ValidationRule("Messung")
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 public class MessgroesseToMessmethode implements Rule {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 @Inject
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
26 private Logger logger;
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
27
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
28 @Inject
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 @RepositoryConfig(type=RepositoryType.RO)
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 private Repository repository;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 @Override
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 public Violation execute(Object object) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 LMessung messung = (LMessung)object;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 String mmt = messung.getMmtId();
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 QueryBuilder<LMesswert> builder =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 new QueryBuilder<LMesswert>(
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 repository.entityManager("land"), LMesswert.class);
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
39 builder.and("messungsId", messung.getId());
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 Response response = repository.filter(builder.getQuery(), "land");
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 List<LMesswert> messwerte = (List<LMesswert>)response.getData();
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 QueryBuilder<MmtMessgroesse> mmtBuilder =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 new QueryBuilder<MmtMessgroesse>(
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 repository.entityManager("stamm"), MmtMessgroesse.class);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 Response results =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 repository.filter(mmtBuilder.getQuery(), "stamm");
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 List<MmtMessgroesse> messgroessen =
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 (List<MmtMessgroesse>)results.getData();
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
51 List<MmtMessgroesse> found = new ArrayList<MmtMessgroesse>();
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
52 for (MmtMessgroesse mg: messgroessen) {
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
53 if (mmt.equals(mg.getMmtMessgroessePK().getMmtId())) {
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
54 logger.debug("found: " + mg.getMmtMessgroessePK().getMmtId() + " for " + mmt);
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
55 found.add(mg);
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
56 }
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
57 }
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 Violation violation = new Violation();
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 for(LMesswert messwert: messwerte) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 boolean hit = false;
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
61 for (MmtMessgroesse messgroesse: found) {
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
62 logger.debug("###### mmt: " + messwert.getMessgroesseId() + " mmtmg: " + messgroesse.getMmtMessgroessePK().getMessgroessengruppeId());
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 if (messwert.getMessgroesseId().equals(
677
de47b7193bdb Fixed validation rules.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 647
diff changeset
64 messgroesse.getMmtMessgroessePK().getMessgroessengruppeId())) {
647
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 hit = true;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 if (!hit) {
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 violation.addWarning("messgroesse", 632);
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 return violation.hasWarnings() ? violation : null;
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 }
4da01934e46f Added new validation rules for messung objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)