Mercurial > lada > lada-server
diff src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java @ 677:de47b7193bdb
Fixed validation rules.
author | Raimund Renkert <raimund.renkert@intevation.de> |
---|---|
date | Fri, 22 May 2015 15:15:14 +0200 |
parents | 4da01934e46f |
children | 3118fbbe6292 |
line wrap: on
line diff
--- a/src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java Fri May 22 15:14:54 2015 +0200 +++ b/src/main/java/de/intevation/lada/validation/rules/messung/MessgroesseToMessmethode.java Fri May 22 15:15:14 2015 +0200 @@ -1,9 +1,12 @@ package de.intevation.lada.validation.rules.messung; +import java.util.ArrayList; import java.util.List; import javax.inject.Inject; +import org.apache.log4j.Logger; + import de.intevation.lada.model.land.LMessung; import de.intevation.lada.model.land.LMesswert; import de.intevation.lada.model.stamm.MmtMessgroesse; @@ -20,6 +23,9 @@ public class MessgroesseToMessmethode implements Rule { @Inject + private Logger logger; + + @Inject @RepositoryConfig(type=RepositoryType.RO) private Repository repository; @@ -30,26 +36,32 @@ QueryBuilder<LMesswert> builder = new QueryBuilder<LMesswert>( repository.entityManager("land"), LMesswert.class); - builder.and("messungsId", messung.getId()) - .and("probeId", messung.getProbeId()); + builder.and("messungsId", messung.getId()); Response response = repository.filter(builder.getQuery(), "land"); List<LMesswert> messwerte = (List<LMesswert>)response.getData(); QueryBuilder<MmtMessgroesse> mmtBuilder = new QueryBuilder<MmtMessgroesse>( repository.entityManager("stamm"), MmtMessgroesse.class); - builder.and("mmtId", mmt); Response results = repository.filter(mmtBuilder.getQuery(), "stamm"); List<MmtMessgroesse> messgroessen = (List<MmtMessgroesse>)results.getData(); + List<MmtMessgroesse> found = new ArrayList<MmtMessgroesse>(); + for (MmtMessgroesse mg: messgroessen) { + if (mmt.equals(mg.getMmtMessgroessePK().getMmtId())) { + logger.debug("found: " + mg.getMmtMessgroessePK().getMmtId() + " for " + mmt); + found.add(mg); + } + } Violation violation = new Violation(); for(LMesswert messwert: messwerte) { boolean hit = false; - for (MmtMessgroesse messgroesse: messgroessen) { + for (MmtMessgroesse messgroesse: found) { + logger.debug("###### mmt: " + messwert.getMessgroesseId() + " mmtmg: " + messgroesse.getMmtMessgroessePK().getMessgroessengruppeId()); if (messwert.getMessgroesseId().equals( - messgroesse.getMmtMessgroessePK().getMmtId().toString())) { + messgroesse.getMmtMessgroessePK().getMessgroessengruppeId())) { hit = true; } }