annotate src/main/java/de/intevation/lada/validation/OrtValidator.java @ 651:0086dc4ac72e

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