teichmann@8025: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@8025: * Software engineering by Intevation GmbH teichmann@8025: * teichmann@8025: * This file is Free Software under the GNU AGPL (>=v3) teichmann@8025: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@8025: * documentation coming with Dive4Elements River for details. teichmann@8025: */ teichmann@8025: teichmann@8025: package org.dive4elements.river.importer; teichmann@8025: teichmann@8025: import java.util.List; teichmann@8025: teichmann@8025: import org.hibernate.Session; teichmann@8025: import org.hibernate.Query; teichmann@8025: teichmann@8025: import org.dive4elements.river.model.SedimentLoadLS; teichmann@8025: import org.dive4elements.river.model.SedimentLoadLSValue; teichmann@8025: teichmann@8025: teichmann@8025: public class ImportSedimentLoadLSValue { teichmann@8025: teichmann@8025: private Double station; teichmann@8025: private Double value; teichmann@8025: teichmann@8025: private SedimentLoadLSValue peer; teichmann@8025: teichmann@8025: teichmann@8025: public ImportSedimentLoadLSValue(Double station, Double value) { teichmann@8025: this.station = station; teichmann@8025: this.value = value; teichmann@8025: } teichmann@8025: teichmann@8025: teichmann@8025: public void storeDependencies(SedimentLoadLS sedimentYield) { teichmann@8025: getPeer(sedimentYield); teichmann@8025: } teichmann@8025: teichmann@8025: teichmann@8025: public SedimentLoadLSValue getPeer(SedimentLoadLS sedimentYield) { teichmann@8025: if (peer == null) { teichmann@8025: Session session = ImporterSession.getInstance().getDatabaseSession(); teichmann@8025: Query query = session.createQuery( teichmann@8025: "from SedimentYieldValue where " + teichmann@8025: " sedimentYield=:sedimentYield and " + teichmann@8025: " station=:station and " + teichmann@8025: " value=:value" teichmann@8025: ); teichmann@8025: teichmann@8025: query.setParameter("sedimentYield", sedimentYield); teichmann@8025: query.setParameter("station", station); teichmann@8025: query.setParameter("value", value); teichmann@8025: teichmann@8025: List values = query.list(); teichmann@8025: if (values.isEmpty()) { teichmann@8025: peer = new SedimentLoadLSValue(sedimentYield, station, value); teichmann@8025: session.save(peer); teichmann@8025: } teichmann@8025: else { teichmann@8025: peer = values.get(0); teichmann@8025: } teichmann@8025: } teichmann@8025: teichmann@8025: return peer; teichmann@8025: } teichmann@8025: } teichmann@8025: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :