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