annotate src/main/java/de/intevation/lada/validation/rules/probe/DeskriptorToUmwelt.java @ 1336:18c789672b14

Made validator messages more verbose for importer.
author Raimund Renkert <raimund.renkert@intevation.de>
date Thu, 06 Apr 2017 10:10:39 +0200
parents 186d602e031a
children
rev   line source
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
2 * Software engineering by Intevation GmbH
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
3 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
7 */
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.validation.rules.probe;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import java.util.ArrayList;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11 import java.util.List;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import javax.inject.Inject;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 735
diff changeset
15 import de.intevation.lada.model.land.Probe;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 735
diff changeset
16 import de.intevation.lada.model.stammdaten.DeskriptorUmwelt;
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 735
diff changeset
17 import de.intevation.lada.model.stammdaten.Deskriptoren;
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.util.annotation.RepositoryConfig;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.util.data.QueryBuilder;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.util.data.Repository;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.util.data.RepositoryType;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import de.intevation.lada.util.rest.Response;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 import de.intevation.lada.validation.Violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import de.intevation.lada.validation.annotation.ValidationRule;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 import de.intevation.lada.validation.rules.Rule;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26
711
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
27 /**
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
28 * Validation rule for probe.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
29 * Validates if the umwelt id fits the deskriptor string.
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
30 *
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
31 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
3ec358698b4d Code style and documentation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 701
diff changeset
32 */
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 @ValidationRule("Probe")
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 public class DeskriptorToUmwelt implements Rule {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 @Inject
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 @RepositoryConfig(type=RepositoryType.RO)
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 private Repository repository;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 @Override
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 public Violation execute(Object object) {
1097
186d602e031a Merged branch schema-update into default.
Tom Gottfried <tom@intevation.de>
parents: 735
diff changeset
42 Probe probe = (Probe)object;
701
cb344bc264d9 Fixed deskriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 692
diff changeset
43 if (probe.getMediaDesk() == null || probe.getMediaDesk().equals("")) {
cb344bc264d9 Fixed deskriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 692
diff changeset
44 return null;
cb344bc264d9 Fixed deskriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 692
diff changeset
45 }
712
f02862b1862d Fixed NPE in probe validation rule.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 711
diff changeset
46 if (probe.getUmwId() == null) {
f02862b1862d Fixed NPE in probe validation rule.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 711
diff changeset
47 return null;
f02862b1862d Fixed NPE in probe validation rule.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 711
diff changeset
48 }
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 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
50 if (mediaDesk.length <= 1) {
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
51 return null;
0002475bc23d Fixed Index out of Bounds exception in validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 661
diff changeset
52 }
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 List<Integer> mediaIds = new ArrayList<Integer>();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 boolean zebs = false;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 Integer parent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 Integer hdParent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 Integer ndParent = null;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 if ("01".equals(mediaDesk[1])) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 zebs = true;
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 for (int i = 1; i < mediaDesk.length; i++) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 if ("00".equals(mediaDesk[i])) {
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
63 mediaIds.add(-1);
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 continue;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 if (zebs && i < 5) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67 parent = hdParent;
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 else if (!zebs && i < 3) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 parent = hdParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 else {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 parent = ndParent;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 QueryBuilder<Deskriptoren> builder = new QueryBuilder<Deskriptoren>(
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 repository.entityManager("stamm"), Deskriptoren.class);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 if (parent != null) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 builder.and("vorgaenger", parent);
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 builder.and("sn", mediaDesk[i]);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
81 builder.and("ebene", i - 1);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
82 Response response = repository.filter(builder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 664
diff changeset
83 @SuppressWarnings("unchecked")
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 List<Deskriptoren> data = (List<Deskriptoren>)response.getData();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 if (data.isEmpty()) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 Violation violation = new Violation();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 violation.addWarning("mediaDesk", 633);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 hdParent = data.get(0).getId();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 mediaIds.add(data.get(0).getId());
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 if (i == 2) {
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 ndParent = data.get(0).getId();
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 }
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
96 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
97 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
99
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
100 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
101 QueryBuilder<DeskriptorUmwelt> builder =
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
102 new QueryBuilder<DeskriptorUmwelt>(
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
103 repository.entityManager("stamm"), DeskriptorUmwelt.class);
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
104
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
105 if (media.size() == 0) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
106 Violation violation = new Violation();
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
107 violation.addWarning("umwId#" + umwId, 632);
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
108 return violation;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
109 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
110
735
bcaf30a871ef Set fixed size for first deskriptoren request.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 732
diff changeset
111 int size = 1;
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
112 for (int i = size; i >= 0; i--) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
113 if (media.get(i) == -1) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
114 continue;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
115 }
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 String field = "s" + (i > 9 ? i : "0" + i);
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 builder.and(field, media.get(i));
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 Response response = repository.filter(builder.getQuery(), "stamm");
685
3118fbbe6292 Fixed or supressed warnings.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 664
diff changeset
120 @SuppressWarnings("unchecked")
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 List<DeskriptorUmwelt> data = (List<DeskriptorUmwelt>)response.getData();
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
122 if (data.isEmpty()) {
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 Violation violation = new Violation();
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
124 violation.addWarning("umwId#" + umwId, 632);
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 return violation;
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 }
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
127
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
128 boolean unique = isUnique(data);
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
129 if (unique && umwId.equals(data.get(0).getUmwId())) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
130 return null;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
131 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
132 else if (unique && !umwId.equals(data.get(0).getUmwId())) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
133 Violation violation = new Violation();
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
134 violation.addWarning("umwId#" + umwId, 632);
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
135 return violation;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
136 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
137 else {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
138 Violation violation = new Violation();
1336
18c789672b14 Made validator messages more verbose for importer.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 1097
diff changeset
139 violation.addWarning("umwId#" + umwId, 632);
692
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
140 boolean found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
141 for (int i = 0; i < data.size(); i++) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
142 if (!data.get(i).getUmwId().equals(umwId)) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
143 continue;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
144 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
145 for (int j = size + 1; j < 13; j++) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
146 switch(j) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
147 case 2: if (data.get(i).getS02() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
148 data.get(i).getS02().equals(media.get(2)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
149 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
150 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
151 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
152 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
153 case 3: if (data.get(i).getS03() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
154 data.get(i).getS03().equals(media.get(3)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
155 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
156 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
157 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
158 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
159 case 4: if (data.get(i).getS04() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
160 data.get(i).getS04().equals(media.get(4)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
161 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
162 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
163 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
164 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
165 case 5: if (data.get(i).getS05() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
166 data.get(i).getS05().equals(media.get(5)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
167 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
168 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
169 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
170 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
171 case 6: if (data.get(i).getS06() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
172 data.get(i).getS06().equals(media.get(6)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
173 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
174 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
175 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
176 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
177 case 7: if (data.get(i).getS07() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
178 data.get(i).getS07().equals(media.get(7)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
179 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
180 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
181 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
182 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
183 case 8: if (data.get(i).getS08() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
184 data.get(i).getS08().equals(media.get(8)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
185 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
186 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
187 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
188 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
189 case 9: if (data.get(i).getS09() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
190 data.get(i).getS09().equals(media.get(9)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
191 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
192 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
193 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
194 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
195 case 10: if (data.get(i).getS10() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
196 data.get(i).getS10().equals(media.get(10)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
197 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
198 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
199 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
200 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
201 case 11: if (data.get(i).getS11() == null ||
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
202 data.get(i).getS11().equals(media.get(11)))
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
203 found = true;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
204 else
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
205 found = false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
206 break;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
207 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
208 if (found) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
209 return null;
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 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
212 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
213 return violation;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
214 }
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 private boolean isUnique(List<DeskriptorUmwelt> list) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
218 if (list.isEmpty()) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
219 return false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
220 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
221 String element = list.get(0).getUmwId();
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
222 for (int i = 1; i < list.size(); i++) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
223 if (!element.equals(list.get(i))) {
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
224 return false;
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
225 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
226 }
ae33fdecd9e2 Fixed descriptor validation.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 685
diff changeset
227 return true;
661
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
228 }
fa149968e60d Added validation rules for probe deskriptor.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
229 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)