comparison src/main/java/de/intevation/lada/validation/rules/ort/IsUnique.java @ 1227:a0968660a4c5

Use reusable validation rule instead of in-service implementation.
author Tom Gottfried <tom@intevation.de>
date Fri, 09 Dec 2016 16:34:44 +0100
parents
children 86ef81592f67
comparison
equal deleted inserted replaced
1226:85a8221e957a 1227:a0968660a4c5
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
2 * Software engineering by Intevation GmbH
3 *
4 * This file is Free Software under the GNU GPL (v>=3)
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
6 * the documentation coming with IMIS-Labordaten-Application for details.
7 */
8 package de.intevation.lada.validation.rules.ort;
9
10 import javax.inject.Inject;
11
12 import de.intevation.lada.model.stammdaten.Ort;
13 import de.intevation.lada.util.annotation.RepositoryConfig;
14 import de.intevation.lada.util.data.QueryBuilder;
15 import de.intevation.lada.util.data.Repository;
16 import de.intevation.lada.util.data.RepositoryType;
17 import de.intevation.lada.validation.Violation;
18 import de.intevation.lada.validation.annotation.ValidationRule;
19 import de.intevation.lada.validation.rules.Rule;
20
21 @ValidationRule("Ort")
22 public class IsUnique implements Rule {
23
24 @Inject
25 @RepositoryConfig(type=RepositoryType.RO)
26 private Repository repository;
27
28 @Override
29 public Violation execute(Object object) {
30 Ort ort = (Ort)object;
31
32 QueryBuilder<Ort> builder = new QueryBuilder<Ort>(
33 repository.entityManager("stamm"), Ort.class);
34 builder.and("netzbetreiberId", ort.getNetzbetreiberId());
35 builder.and("ortId", ort.getOrtId());
36 if (ort.getId() != null) {
37 // Consider UPDATE
38 builder.andNot("id", ort.getId());
39 }
40 if (!repository.filterPlain(builder.getQuery(), "stamm").isEmpty()) {
41 Violation violation = new Violation();
42 violation.addError("ortId", 672);
43 return violation;
44 }
45
46 return null;
47 }
48 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)