annotate src/main/java/de/intevation/lada/validation/MesswertValidator.java @ 648:9f22f717719d

Added validator for messwert objects.
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 05 May 2015 14:09:50 +0200
parents
children 3ec358698b4d
rev   line source
648
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.validation;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 import javax.enterprise.context.ApplicationScoped;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 import javax.enterprise.inject.Instance;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 import javax.inject.Inject;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import de.intevation.lada.model.land.LMesswert;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import de.intevation.lada.validation.annotation.ValidationConfig;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9 import de.intevation.lada.validation.annotation.ValidationRule;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import de.intevation.lada.validation.rules.Rule;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 @ValidationConfig(type="Messwert")
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 @ApplicationScoped
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 public class MesswertValidator implements Validator {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
15
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 @Inject
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 @ValidationRule("Messwert")
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 private Instance<Rule> rules;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 @Override
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 public Violation validate(Object object) {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 Violation violations = new Violation();
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23 if (!(object instanceof LMesswert)) {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 violations.addError("messwert", 602);
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25 return violations;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 }
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27 for(Rule rule: rules) {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 Violation result = rule.execute(object);
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 if (result != null) {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 if (result.hasWarnings()) {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 violations.addWarnings(result.getWarnings());
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32 }
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 if (result.hasErrors()) {
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 violations.addErrors(result.getErrors());
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 }
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 }
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 }
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 return violations;
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 }
9f22f717719d Added validator for messwert objects.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)