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