annotate src/main/java/de/intevation/lada/validation/rules/probe/Deskriptor.java @ 685:3118fbbe6292

Fixed or supressed warnings.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 29 May 2015 13:10:30 +0200
parents 0002475bc23d
children cb344bc264d9
rev   line source
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.validation.rules.probe;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import java.util.List;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import javax.inject.Inject;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import de.intevation.lada.model.land.LProbe;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import de.intevation.lada.model.stamm.Deskriptoren;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import de.intevation.lada.util.annotation.RepositoryConfig;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import de.intevation.lada.util.data.QueryBuilder;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import de.intevation.lada.util.data.Repository;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import de.intevation.lada.util.data.RepositoryType;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import de.intevation.lada.util.rest.Response;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import de.intevation.lada.validation.Violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.validation.annotation.ValidationRule;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.validation.rules.Rule;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 @ValidationRule("Probe")
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 public class Deskriptor implements Rule {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 @Inject
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 @RepositoryConfig(type=RepositoryType.RO)
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 private Repository repository;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 @Override
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 public Violation execute(Object object) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 LProbe probe = (LProbe)object;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 String[] mediaDesk = probe.getMediaDesk().split(" ");
664
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
29 if (mediaDesk.length <= 1) {
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
30 Violation violation = new Violation();
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
31 violation.addWarning("mediaDesk", 631);
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
32 return violation;
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
33 }
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 boolean zebs = false;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 Integer parent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 Integer hdParent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 Integer ndParent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 if ("01".equals(mediaDesk[1])) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 zebs = true;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 for (int i = 1; i < mediaDesk.length; i++) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 if ("00".equals(mediaDesk[i])) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 continue;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 if (zebs && i < 5) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 parent = hdParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 else if (!zebs && i < 3) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 parent = hdParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 else {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 parent = ndParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>(
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 repository.entityManager("stamm"), Deskriptoren.class);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 if (parent != null) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 builder.and("vorgaenger", parent);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 builder.and("sn", mediaDesk[i]);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 builder.and("ebene", i - 1);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 Response response = repository.filter(builder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 664
diff changeset
62 @SuppressWarnings("unchecked")
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 List<Deskriptoren> data = (List<Deskriptoren>)response.getData();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 if (data.isEmpty()) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 Violation violation = new Violation();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 violation.addWarning("mediaDesk", 633);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 hdParent = data.get(0).getId();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 if (i == 2) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 ndParent = data.get(0).getId();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 return null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)