# HG changeset patch # User Raimund Renkert # Date 1424771886 -3600 # Node ID fd927b584c54ce737e3d74175981439efe117d34 # Parent f44c9e59f08c174a688b7a9039dfd63af49a89e2 Added first validation rules for probe objects. diff -r f44c9e59f08c -r fd927b584c54 src/main/java/de/intevation/lada/validation/rules/probe/HasEntnahmeOrt.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/validation/rules/probe/HasEntnahmeOrt.java Tue Feb 24 10:58:06 2015 +0100 @@ -0,0 +1,50 @@ +package de.intevation.lada.validation.rules.probe; + +import java.util.List; + +import javax.inject.Inject; + +import de.intevation.lada.model.land.LOrt; +import de.intevation.lada.model.land.LProbe; +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("Probe") +public class HasEntnahmeOrt implements Rule { + + @Inject + @RepositoryConfig(type=RepositoryType.RO) + private Repository repo; + + @Override + public Violation execute(Object object) { + LProbe probe = (LProbe)object; + Integer id = probe.getId(); + if (id == null) { + Violation violation = new Violation(); + violation.addWarning("entnahmeOrt", 631); + return violation; + } + QueryBuilder builder = + new QueryBuilder(repo.entityManager("land"), LOrt.class); + builder.and("probeId", id); + Response response = repo.filter(builder.getQuery(), "land"); + @SuppressWarnings("unchecked") + List orte = (List)response.getData(); + for (LOrt ort: orte) { + if (ort.getOrtsTyp().equals("E")) { + return null; + } + } + Violation violation = new Violation(); + violation.addWarning("entnahmeOrt", 631); + return violation; + } + +} diff -r f44c9e59f08c -r fd927b584c54 src/main/java/de/intevation/lada/validation/rules/probe/HasHauptprobenNr.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/validation/rules/probe/HasHauptprobenNr.java Tue Feb 24 10:58:06 2015 +0100 @@ -0,0 +1,22 @@ +package de.intevation.lada.validation.rules.probe; + +import de.intevation.lada.model.land.LProbe; +import de.intevation.lada.validation.Violation; +import de.intevation.lada.validation.annotation.ValidationRule; +import de.intevation.lada.validation.rules.Rule; + +@ValidationRule("Probe") +public class HasHauptprobenNr implements Rule { + + @Override + public Violation execute(Object object) { + LProbe probe = (LProbe)object; + if (probe.getHauptprobenNr() == null || + probe.getHauptprobenNr().equals("")) { + Violation violation = new Violation(); + violation.addError("hauptprobenNr", 631); + return violation; + } + return null; + } +} diff -r f44c9e59f08c -r fd927b584c54 src/main/java/de/intevation/lada/validation/rules/probe/HasProbenahmeBegin.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/validation/rules/probe/HasProbenahmeBegin.java Tue Feb 24 10:58:06 2015 +0100 @@ -0,0 +1,25 @@ +package de.intevation.lada.validation.rules.probe; + +import java.sql.Timestamp; + +import de.intevation.lada.model.land.LProbe; +import de.intevation.lada.validation.Violation; +import de.intevation.lada.validation.annotation.ValidationRule; +import de.intevation.lada.validation.rules.Rule; + +@ValidationRule("Probe") +public class HasProbenahmeBegin implements Rule { + + @Override + public Violation execute(Object object) { + LProbe probe = (LProbe)object; + Timestamp begin = probe.getProbeentnahmeBeginn(); + if (begin == null) { + Violation violation = new Violation(); + violation.addWarning("probeentnahmeBegin", 631); + return violation; + } + return null; + } + +} diff -r f44c9e59f08c -r fd927b584c54 src/main/java/de/intevation/lada/validation/rules/probe/UniqueHauptprobenNr.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/de/intevation/lada/validation/rules/probe/UniqueHauptprobenNr.java Tue Feb 24 10:58:06 2015 +0100 @@ -0,0 +1,46 @@ +package de.intevation.lada.validation.rules.probe; + +import java.util.List; + +import javax.inject.Inject; + +import de.intevation.lada.model.land.LProbe; +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("Probe") +public class UniqueHauptprobenNr implements Rule { + + @Inject + @RepositoryConfig(type=RepositoryType.RO) + private Repository repo; + + @SuppressWarnings("unchecked") + @Override + public Violation execute(Object object) { + LProbe probe = (LProbe)object; + QueryBuilder builder = new QueryBuilder( + repo.entityManager("land"), + LProbe.class); + builder.and("hauptprobenNr", probe.getHauptprobenNr()); + Response response = repo.filter(builder.getQuery(), "land"); + if (!((List)response.getData()).isEmpty()) { + LProbe found = ((List)response.getData()).get(0); + // The probe found in the db equals the new probe. (Update) + if (probe.getId() != null && probe.getId() == found.getId()) { + return null; + } + Violation violation = new Violation(); + violation.addError("hauptprobenNr", 611); + return violation; + } + return null; + } + +}