Mercurial > lada > lada-server
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 } |