annotate src/main/java/de/intevation/lada/validation/rules/probe/DeskriptorToUmwelt.java @ 692:ae33fdecd9e2

Fixed descriptor validation.
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 07 Jul 2015 11:58:46 +0200
parents 3118fbbe6292
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.ArrayList;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import java.util.List;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 import javax.inject.Inject;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import de.intevation.lada.model.land.LProbe;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import de.intevation.lada.model.stamm.DeskriptorUmwelt;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import de.intevation.lada.model.stamm.Deskriptoren;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import de.intevation.lada.util.annotation.RepositoryConfig;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import de.intevation.lada.util.data.QueryBuilder;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import de.intevation.lada.util.data.Repository;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import de.intevation.lada.util.data.RepositoryType;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.util.rest.Response;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.validation.Violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.validation.annotation.ValidationRule;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.validation.rules.Rule;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 @ValidationRule("Probe")
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 public class DeskriptorToUmwelt implements Rule {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 @Inject
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 @RepositoryConfig(type=RepositoryType.RO)
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 private Repository repository;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 @Override
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 public Violation execute(Object object) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 LProbe probe = (LProbe)object;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 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
31 if (mediaDesk.length <= 1) {
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
32 return null;
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 List<Integer> mediaIds = new ArrayList<Integer>();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 boolean zebs = false;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 Integer parent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 Integer hdParent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 Integer ndParent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 if ("01".equals(mediaDesk[1])) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 zebs = true;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 for (int i = 1; i < mediaDesk.length; i++) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 if ("00".equals(mediaDesk[i])) {
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
44 mediaIds.add(-1);
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 continue;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 if (zebs && i < 5) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 parent = hdParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 else if (!zebs && i < 3) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 parent = hdParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 else {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 parent = ndParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>(
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 repository.entityManager("stamm"), Deskriptoren.class);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 if (parent != null) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 builder.and("vorgaenger", parent);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 builder.and("sn", mediaDesk[i]);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 builder.and("ebene", i - 1);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 Response response = repository.filter(builder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 664
diff changeset
64 @SuppressWarnings("unchecked")
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 List<Deskriptoren> data = (List<Deskriptoren>)response.getData();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 if (data.isEmpty()) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 Violation violation = new Violation();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 violation.addWarning("mediaDesk", 633);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 hdParent = data.get(0).getId();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 mediaIds.add(data.get(0).getId());
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 if (i == 2) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 ndParent = data.get(0).getId();
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 }
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
77 Violation violation = validateUmwelt(mediaIds, probe.getUmwId(), zebs, 0);
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
80
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
81 private Violation validateUmwelt(List<Integer> media, String umwId, boolean isZebs, int ndx) {
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 QueryBuilder<DeskriptorUmwelt> builder =
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
83 new QueryBuilder<DeskriptorUmwelt>(
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 repository.entityManager("stamm"), DeskriptorUmwelt.class);
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
85
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
86 if (media.size() == 0) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
87 Violation violation = new Violation();
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
88 violation.addWarning("umwId", 632);
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
89 return violation;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
90 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
91
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
92 int size = 1;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
93 if (isZebs) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
94 size = 2;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
95 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
96 for (int i = size; i >= 0; i--) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
97 if (media.get(i) == -1) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
98 continue;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
99 }
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
100 String field = "s" + (i > 9 ? i : "0" + i);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
101 builder.and(field, media.get(i));
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 Response response = repository.filter(builder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 664
diff changeset
104 @SuppressWarnings("unchecked")
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
105 List<DeskriptorUmwelt> data = (List<DeskriptorUmwelt>)response.getData();
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
106 if (data.isEmpty()) {
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
107 Violation violation = new Violation();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 violation.addWarning("umwId", 632);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 }
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
111
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
112 boolean unique = isUnique(data);
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
113 if (unique && umwId.equals(data.get(0).getUmwId())) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
114 return null;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
115 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
116 else if (unique && !umwId.equals(data.get(0).getUmwId())) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
117 Violation violation = new Violation();
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
118 violation.addWarning("umwId", 632);
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
119 return violation;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
120 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
121 else {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
122 Violation violation = new Violation();
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
123 violation.addWarning("umwId", 632);
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
124 boolean found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
125 for (int i = 0; i < data.size(); i++) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
126 if (!data.get(i).getUmwId().equals(umwId)) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
127 continue;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
128 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
129 for (int j = size + 1; j < 13; j++) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
130 switch(j) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
131 case 2: if (data.get(i).getS02() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
132 data.get(i).getS02().equals(media.get(2)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
133 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
134 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
135 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
136 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
137 case 3: if (data.get(i).getS03() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
138 data.get(i).getS03().equals(media.get(3)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
139 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
140 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
141 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
142 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
143 case 4: if (data.get(i).getS04() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
144 data.get(i).getS04().equals(media.get(4)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
145 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
146 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
147 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
148 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
149 case 5: if (data.get(i).getS05() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
150 data.get(i).getS05().equals(media.get(5)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
151 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
152 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
153 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
154 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
155 case 6: if (data.get(i).getS06() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
156 data.get(i).getS06().equals(media.get(6)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
157 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
158 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
159 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
160 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
161 case 7: if (data.get(i).getS07() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
162 data.get(i).getS07().equals(media.get(7)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
163 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
164 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
165 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
166 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
167 case 8: if (data.get(i).getS08() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
168 data.get(i).getS08().equals(media.get(8)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
169 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
170 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
171 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
172 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
173 case 9: if (data.get(i).getS09() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
174 data.get(i).getS09().equals(media.get(9)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
175 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
176 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
177 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
178 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
179 case 10: if (data.get(i).getS10() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
180 data.get(i).getS10().equals(media.get(10)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
181 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
182 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
183 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
184 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
185 case 11: if (data.get(i).getS11() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
186 data.get(i).getS11().equals(media.get(11)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
187 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
188 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
189 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
190 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
191 case 12: if (data.get(i).getS12() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
192 data.get(i).getS12().equals(media.get(12)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
193 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
194 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
195 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
196 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
197 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
198 if (found) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
199 return null;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
200 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
201 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
202 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
203 return violation;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
204 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
205 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
206
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
207 private boolean isUnique(List<DeskriptorUmwelt> list) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
208 if (list.isEmpty()) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
209 return false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
210 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
211 String element = list.get(0).getUmwId();
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
212 for (int i = 1; i < list.size(); i++) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
213 if (!element.equals(list.get(i))) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
214 return false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
215 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
216 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
217 return true;
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
218 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
219 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)