teichmann@5829: package org.dive4elements.river.importer; ingo@2838: ingo@2838: import java.util.List; ingo@2838: ingo@2838: import org.hibernate.Session; ingo@2838: import org.hibernate.Query; ingo@2838: teichmann@5829: import org.dive4elements.river.model.SedimentYield; teichmann@5829: import org.dive4elements.river.model.SedimentYieldValue; ingo@2838: ingo@2838: ingo@2838: public class ImportSedimentYieldValue { ingo@2838: ingo@2838: private Double station; ingo@2838: private Double value; ingo@2838: ingo@2838: private SedimentYieldValue peer; ingo@2838: ingo@2838: ingo@2838: public ImportSedimentYieldValue(Double station, Double value) { ingo@2838: this.station = station; ingo@2838: this.value = value; ingo@2838: } ingo@2838: ingo@2838: ingo@2838: public void storeDependencies(SedimentYield sedimentYield) { ingo@2838: getPeer(sedimentYield); ingo@2838: } ingo@2838: ingo@2838: ingo@2838: public SedimentYieldValue getPeer(SedimentYield sedimentYield) { ingo@2838: if (peer == null) { ingo@2838: Session session = ImporterSession.getInstance().getDatabaseSession(); ingo@2838: Query query = session.createQuery( ingo@2838: "from SedimentYieldValue where " + ingo@2838: " sedimentYield=:sedimentYield and " + ingo@2838: " station=:station and " + ingo@2838: " value=:value" ingo@2838: ); ingo@2838: ingo@2838: query.setParameter("sedimentYield", sedimentYield); ingo@2838: query.setParameter("station", station); ingo@2838: query.setParameter("value", value); ingo@2838: ingo@2838: List values = query.list(); ingo@2838: if (values.isEmpty()) { ingo@2838: peer = new SedimentYieldValue(sedimentYield, station, value); ingo@2838: session.save(peer); ingo@2838: } ingo@2838: else { ingo@2838: peer = values.get(0); ingo@2838: } ingo@2838: } ingo@2838: ingo@2838: return peer; ingo@2838: } ingo@2838: } ingo@2838: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :