Mercurial > dive4elements > river
view backend/src/main/java/org/dive4elements/river/importer/sinfo/importitem/DailyDischargeDayLineImport.java @ 9658:d86c7cb68b41
Importer (s/u-info) extensions: daily discharge: detecting, logging and skipping lines with missing date or q, or duplicate date,
detecting wrong column titles and cancelling the import,
specific error message if gauge not found
author | mschaefer |
---|---|
date | Mon, 23 Mar 2020 15:33:40 +0100 |
parents | 50416a0df385 |
children |
line wrap: on
line source
/* Copyright (C) 2017 by Bundesanstalt für Gewässerkunde * Software engineering by * Björnsen Beratende Ingenieure GmbH * Dr. Schumacher Ingenieurbüro für Wasser und Umwelt * * This file is Free Software under the GNU AGPL (>=v3) * and comes with ABSOLUTELY NO WARRANTY! Check out the * documentation coming with Dive4Elements River for details. */ package org.dive4elements.river.importer.sinfo.importitem; import java.util.Date; import java.util.List; import org.dive4elements.river.importer.common.AbstractKmLineImport; import org.dive4elements.river.model.sinfo.DailyDischarge; import org.dive4elements.river.model.sinfo.DailyDischargeValue; import org.hibernate.Query; import org.hibernate.Session; /** * Imported daily discharge of a gauge. * * @author Matthias Schäfer * */ public class DailyDischargeDayLineImport extends AbstractKmLineImport<DailyDischarge, DailyDischargeValue> { /***** FIELDS *****/ private final Date day; private final Double discharge; /***** CONSTRUCTOR *****/ public DailyDischargeDayLineImport(final Date day, final Double discharge) { super(Double.NaN); this.day = day; this.discharge = discharge; } /***** METHODS *****/ @Override protected DailyDischargeValue queryValueItem(final Session session, final DailyDischarge parent) { final Query query = session.createQuery("FROM DailyDischargeValue WHERE (dailyDischarge=:parent) AND (day=:day)"); query.setParameter("parent", parent); query.setParameter("day", this.day); final List rows = query.list(); if (!rows.isEmpty()) return (DailyDischargeValue) rows.get(0); else return null; } @Override protected DailyDischargeValue createValueItem(final DailyDischarge parent) { return new DailyDischargeValue(parent, this.day, this.discharge); } }