view flys-backend/src/main/java/de/intevation/flys/importer/ImportWstQRange.java @ 5542:f3b270e5462e

Wst Parser: Another attempt to fix the order of the Q ranges.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 03 Apr 2013 20:16:01 +0200
parents 67fd63e4ef66
children
line wrap: on
line source
package de.intevation.flys.importer;

import java.math.BigDecimal;

import de.intevation.flys.model.WstQRange;
import de.intevation.flys.model.River;
import de.intevation.flys.model.Range;

import org.hibernate.Session;
import org.hibernate.Query;

import java.util.List;

public class ImportWstQRange
{
    protected ImportRange range;
    protected BigDecimal  q;

    protected WstQRange peer;

    public ImportWstQRange() {
    }

    public ImportWstQRange(
        ImportRange range,
        BigDecimal  q
    ) {
        this.range = range;
        this.q     = q;
    }

    public ImportRange getRange() {
        return range;
    }

    public void setRange(ImportRange range) {
        this.range = range;
    }

    public BigDecimal getQ() {
        return q;
    }

    public void setQ(BigDecimal q) {
        this.q = q;
    }

    public void fixRangesOrder() {
        range.fixRangesOrder();
    }

    public WstQRange getPeer(River river) {
        if (peer == null) {
            Range r = range.getPeer(river);
            Session session = ImporterSession.getInstance().getDatabaseSession();
            Query query = session.createQuery(
                "from WstQRange where " +
                "range=:range and q=:q");
            query.setParameter("range", r);
            query.setParameter("q",     q);
            List<WstQRange> wstQRanges = query.list();
            if (wstQRanges.isEmpty()) {
                peer = new WstQRange(r, q);
                session.save(peer);
            }
            else {
                peer = wstQRanges.get(0);
            }
        }
        return peer;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org