ingo@2843: package de.intevation.flys.importer; ingo@2843: ingo@2843: import java.util.List; ingo@2843: ingo@2843: import org.hibernate.Session; ingo@2843: import org.hibernate.Query; ingo@2843: ingo@2843: import de.intevation.flys.model.WaterlevelQRange; ingo@2843: import de.intevation.flys.model.WaterlevelValue; ingo@2843: ingo@2843: ingo@2843: public class ImportWaterlevelValue { ingo@2843: ingo@2843: private Double station; ingo@2843: private Double w; ingo@2843: ingo@2843: private WaterlevelValue peer; ingo@2843: ingo@2843: ingo@2843: public ImportWaterlevelValue(Double station, Double w) { ingo@2843: this.station = station; ingo@2843: this.w = w; ingo@2843: } ingo@2843: ingo@2843: ingo@2843: public void storeDependencies(WaterlevelQRange qRange) { ingo@2843: getPeer(qRange); ingo@2843: } ingo@2843: ingo@2843: ingo@2843: public WaterlevelValue getPeer(WaterlevelQRange qRange) { ingo@2843: if (peer == null) { ingo@2843: Session session = ImporterSession.getInstance().getDatabaseSession(); ingo@2843: Query query = session.createQuery( ingo@2843: "from WaterlevelValue where " + ingo@2843: " qRange=:qRange and " + ingo@2843: " station=:station and " + ingo@2843: " w=:w" ingo@2843: ); ingo@2843: ingo@2843: query.setParameter("qRange", qRange); ingo@2843: query.setParameter("station", station); ingo@2843: query.setParameter("w", w); ingo@2843: ingo@2843: List values = query.list(); ingo@2843: ingo@2843: if (values.isEmpty()) { ingo@2843: peer = new WaterlevelValue(qRange, station, w); ingo@2843: session.save(peer); ingo@2843: } ingo@2843: else { ingo@2843: peer = values.get(0); ingo@2843: } ingo@2843: } ingo@2843: ingo@2843: return peer; ingo@2843: } ingo@2843: } ingo@2843: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :