Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/validation/rules/messung/HasMesswert.java @ 565:f3f8b8a26afa
Added messung validator and rules.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 13 Mar 2015 16:50:20 +0100 |
parents | |
children | 3ec358698b4d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/validation/rules/messung/HasMesswert.java Fri Mar 13 16:50:20 2015 +0100 @@ -0,0 +1,42 @@ +package de.intevation.lada.validation.rules.messung; + +import java.util.List; + +import javax.inject.Inject; + +import de.intevation.lada.model.land.LMessung; +import de.intevation.lada.model.land.LMesswert; +import de.intevation.lada.util.annotation.RepositoryConfig; +import de.intevation.lada.util.data.QueryBuilder; +import de.intevation.lada.util.data.Repository; +import de.intevation.lada.util.data.RepositoryType; +import de.intevation.lada.util.rest.Response; +import de.intevation.lada.validation.Violation; +import de.intevation.lada.validation.annotation.ValidationRule; +import de.intevation.lada.validation.rules.Rule; + +@ValidationRule("Messung") +public class HasMesswert implements Rule { + + @Inject + @RepositoryConfig(type=RepositoryType.RO) + private Repository repo; + + @Override + public Violation execute(Object object) { + LMessung messung = (LMessung)object; + QueryBuilder<LMesswert> builder = + new QueryBuilder<LMesswert>( + repo.entityManager("land"), LMesswert.class); + builder.and("messungsId", messung.getId()); + Response response = repo.filter(builder.getQuery(), "land"); + @SuppressWarnings("unchecked") + List<LMesswert> messwerte = (List<LMesswert>)response.getData(); + if (messwerte == null || messwerte.isEmpty()) { + Violation violation = new Violation(); + violation.addWarning("messwert", 631); + return violation; + } + return null; + } +}