teichmann@5844: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5844: * Software engineering by Intevation GmbH teichmann@5844: * teichmann@5844: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5844: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5844: * documentation coming with Dive4Elements River for details. teichmann@5844: */ teichmann@5844: teichmann@5829: package org.dive4elements.river.importer; sascha@196: sascha@201: import java.math.BigDecimal; sascha@201: teichmann@5829: import org.dive4elements.river.model.WstQRange; teichmann@5829: import org.dive4elements.river.model.River; teichmann@5829: import org.dive4elements.river.model.Range; sascha@201: sascha@201: import org.hibernate.Session; sascha@201: import org.hibernate.Query; sascha@201: sascha@201: import java.util.List; sascha@196: sascha@196: public class ImportWstQRange sascha@196: { sascha@201: protected ImportRange range; sascha@201: protected BigDecimal q; sascha@201: sascha@196: protected WstQRange peer; sascha@196: sascha@196: public ImportWstQRange() { sascha@196: } sascha@196: sascha@201: public ImportWstQRange( sascha@201: ImportRange range, sascha@201: BigDecimal q sascha@201: ) { sascha@201: this.range = range; sascha@201: this.q = q; sascha@201: } sascha@201: sascha@201: public ImportRange getRange() { sascha@201: return range; sascha@201: } sascha@201: sascha@201: public void setRange(ImportRange range) { sascha@201: this.range = range; sascha@201: } sascha@201: sascha@201: public BigDecimal getQ() { sascha@201: return q; sascha@201: } sascha@201: sascha@201: public void setQ(BigDecimal q) { sascha@201: this.q = q; sascha@201: } sascha@201: teichmann@5542: public void fixRangesOrder() { teichmann@5542: range.fixRangesOrder(); teichmann@5542: } teichmann@5542: sascha@201: public WstQRange getPeer(River river) { sascha@196: if (peer == null) { sascha@201: Range r = range.getPeer(river); sascha@497: Session session = ImporterSession.getInstance().getDatabaseSession(); sascha@201: Query query = session.createQuery( sascha@201: "from WstQRange where " + sascha@201: "range=:range and q=:q"); sascha@201: query.setParameter("range", r); sascha@201: query.setParameter("q", q); sascha@201: List wstQRanges = query.list(); sascha@201: if (wstQRanges.isEmpty()) { sascha@201: peer = new WstQRange(r, q); sascha@201: session.save(peer); sascha@201: } sascha@201: else { sascha@201: peer = wstQRanges.get(0); sascha@201: } sascha@196: } sascha@196: return peer; sascha@196: } sascha@196: } sascha@196: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :