Mercurial > dive4elements > river
view backend/src/main/java/org/dive4elements/river/importer/uinfo/importitem/VegetationZoneImport.java @ 9038:4c5eeaff554c
Database column "comment" renamed to "notes" (restrictions in Oracle)
author | mschaefer |
---|---|
date | Wed, 02 May 2018 06:56:21 +0200 |
parents | 201817aa7b1c |
children | 361de818f76e |
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.uinfo.importitem; import java.util.List; import org.apache.log4j.Logger; import org.dive4elements.river.importer.common.AbstractKmLineImport; import org.dive4elements.river.model.uinfo.Vegetation; import org.dive4elements.river.model.uinfo.VegetationType; import org.dive4elements.river.model.uinfo.VegetationZone; import org.hibernate.Query; import org.hibernate.Session; /** * Imported vegetation values of a river station. * * @author Matthias Schäfer * */ public class VegetationZoneImport extends AbstractKmLineImport<Vegetation, VegetationZone> { /***** FIELDS *****/ private static Logger log = Logger.getLogger(VegetationZoneImport.class); private final VegetationTypeImport vegetationType; private final Integer minOverflowDays; private final Integer maxOverflowDays; /***** CONSTRUCTOR *****/ public VegetationZoneImport(final int vegetationTypeId, final Integer minOverflowDays, final Integer maxOverflowDays) { super(Double.NaN); this.vegetationType = new VegetationTypeImport(vegetationTypeId); this.minOverflowDays = minOverflowDays; this.maxOverflowDays = maxOverflowDays; } /***** METHODS *****/ @Override public VegetationZone queryValueItem(final Session session, final Vegetation parent) { final Query query = session.createQuery("FROM VegetationZone WHERE (vegetation=:parent)" + " AND (vegetationType=:type)"); query.setParameter("parent", parent); query.setParameter("type", this.vegetationType); final List rows = query.list(); if (!rows.isEmpty()) return (VegetationZone) rows.get(0); else return null; } @Override public VegetationZone createValueItem(final Vegetation parent) { final VegetationType type = this.vegetationType.getPeer(); if (type == null) { log.error("Unknown vegetation zone class " + this.vegetationType.getId()); return null; } return new VegetationZone(parent, type, this.minOverflowDays, this.maxOverflowDays); } }