annotate src/main/java/de/intevation/lada/validation/rules/ort/OrtTypExists.java @ 1277:15700d7c00eb

According to database schema, ort.ort_typ is allowed to be NULL.
author Tom Gottfried <tom@intevation.de>
date Thu, 02 Feb 2017 15:41:05 +0100
parents efa50b39c7cc
children
rev   line source
1276
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
3 *
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
7 */
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.validation.rules.ort;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
9
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
10 import java.util.List;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
11
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
12 import javax.inject.Inject;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
13
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
14 import de.intevation.lada.model.stammdaten.Ort;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
15 import de.intevation.lada.model.stammdaten.OrtTyp;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
16 import de.intevation.lada.util.annotation.RepositoryConfig;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
17 import de.intevation.lada.util.data.QueryBuilder;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.util.data.Repository;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.util.data.RepositoryType;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.validation.Violation;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.validation.annotation.ValidationRule;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
22 import de.intevation.lada.validation.rules.Rule;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
23
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
24 /**
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
25 * Validation rule for ort.
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
26 * Validates if the a given OrtTyp exists.
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
27 *
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
28 */
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
29 @ValidationRule("Ort")
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
30 public class OrtTypExists implements Rule {
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
31
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
32 @Inject
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
33 @RepositoryConfig(type=RepositoryType.RO)
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
34 private Repository repository;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
35
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
36 @Override
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
37 public Violation execute(Object object) {
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
38 Ort ort = (Ort)object;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
39
1277
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
40 if (ort.getOrtTyp() != null) {
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
41 QueryBuilder<OrtTyp> builder =
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
42 new QueryBuilder<OrtTyp>(
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
43 repository.entityManager("stamm"),
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
44 OrtTyp.class);
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
45 builder.and("id", ort.getOrtTyp());
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
46 List<OrtTyp> ots = repository.filterPlain(
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
47 builder.getQuery(), "stamm");
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
48 if (ots == null || ots.isEmpty()) {
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
49 Violation violation = new Violation();
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
50 violation.addError("ortTyp", 612);
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
51 return violation;
15700d7c00eb According to database schema, ort.ort_typ is allowed to be NULL.
Tom Gottfried <tom@intevation.de>
parents: 1276
diff changeset
52 }
1276
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
53 }
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
54
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
55 return null;
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
56 }
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
57
efa50b39c7cc Validate type of an Ort object.
Tom Gottfried <tom@intevation.de>
parents:
diff changeset
58 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)