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