Mercurial > lada > lada-server
changeset 1285:b0f73f864486
Updated validation rules to allow messprogramm ortszuordnungen.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Wed, 08 Feb 2017 09:12:17 +0100 |
parents | 736445a05169 |
children | 7da497d142a2 |
files | src/main/java/de/intevation/lada/validation/OrtszuordnungValidator.java src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java |
diffstat | 2 files changed, 49 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/validation/OrtszuordnungValidator.java Fri Feb 03 18:03:23 2017 +0100 +++ b/src/main/java/de/intevation/lada/validation/OrtszuordnungValidator.java Wed Feb 08 09:12:17 2017 +0100 @@ -12,6 +12,7 @@ import javax.inject.Inject; import de.intevation.lada.model.land.Ortszuordnung; +import de.intevation.lada.model.land.OrtszuordnungMp; import de.intevation.lada.validation.annotation.ValidationConfig; import de.intevation.lada.validation.annotation.ValidationRule; import de.intevation.lada.validation.rules.Rule; @@ -35,7 +36,8 @@ @Override public Violation validate(Object object) { Violation violations = new Violation(); - if (!(object instanceof Ortszuordnung)) { + if (!(object instanceof Ortszuordnung) && + !(object instanceof OrtszuordnungMp)) { violations.addError("ortszuordnung", 602); return violations; }
--- a/src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java Fri Feb 03 18:03:23 2017 +0100 +++ b/src/main/java/de/intevation/lada/validation/rules/ortszuordnung/HasEntnahmeOrt.java Wed Feb 08 09:12:17 2017 +0100 @@ -12,6 +12,7 @@ import javax.inject.Inject; import de.intevation.lada.model.land.Ortszuordnung; +import de.intevation.lada.model.land.OrtszuordnungMp; import de.intevation.lada.util.annotation.RepositoryConfig; import de.intevation.lada.util.data.QueryBuilder; import de.intevation.lada.util.data.Repository; @@ -29,28 +30,55 @@ @Override public Violation execute(Object object) { - Ortszuordnung ort = (Ortszuordnung)object; - if (!"E".equals(ort.getOrtszuordnungTyp())) { - return null; - } + Integer id = null; + if (object instanceof Ortszuordnung) { + Ortszuordnung ort = (Ortszuordnung)object; + if (!"E".equals(ort.getOrtszuordnungTyp())) { + return null; + } + id = ort.getProbeId(); + QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>( + repository.entityManager("land"), + Ortszuordnung.class); - QueryBuilder<Ortszuordnung> builder = new QueryBuilder<Ortszuordnung>( - repository.entityManager("land"), - Ortszuordnung.class); - builder.and("probeId", ort.getProbeId()); - List<Ortszuordnung> orte = repository.filterPlain( - builder.getQuery(), - "land"); - for (Ortszuordnung o : orte) { - if ("E".equals(o.getOrtszuordnungTyp()) && - !o.getId().equals(ort.getId()) - ) { - Violation violation = new Violation(); - violation.addError("ortszuordnungTyp", 611); - return violation; + builder.and("probeId", id); + List<Ortszuordnung> orte = repository.filterPlain( + builder.getQuery(), + "land"); + for (Ortszuordnung o : orte) { + if ("E".equals(o.getOrtszuordnungTyp()) && + !o.getId().equals(ort.getId()) + ) { + Violation violation = new Violation(); + violation.addError("ortszuordnungTyp", 611); + return violation; + } } } + else if (object instanceof OrtszuordnungMp) { + OrtszuordnungMp ort = (OrtszuordnungMp)object; + if (!"E".equals(ort.getOrtszuordnungTyp())) { + return null; + } + id = ort.getMessprogrammId(); + QueryBuilder<OrtszuordnungMp> builder = new QueryBuilder<OrtszuordnungMp>( + repository.entityManager("land"), + OrtszuordnungMp.class); + builder.and("messprogrammId", id); + List<OrtszuordnungMp> orte = repository.filterPlain( + builder.getQuery(), + "land"); + for (OrtszuordnungMp o : orte) { + if ("E".equals(o.getOrtszuordnungTyp()) && + !o.getId().equals(ort.getId()) + ) { + Violation violation = new Violation(); + violation.addError("ortszuordnungTyp", 611); + return violation; + } + } + } return null; } }