Mercurial > dive4elements > river
view flys-backend/src/main/java/de/intevation/flys/importer/ImportCrossSection.java @ 4135:ac93f397018d
Importer: Ignore historical discharge tables.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Mon, 15 Oct 2012 14:03:47 +0200 |
parents | 5f1506fc7636 |
children | 3199dbc20e22 |
line wrap: on
line source
package de.intevation.flys.importer; import de.intevation.flys.model.River; import de.intevation.flys.model.CrossSection; import de.intevation.flys.model.TimeInterval; import org.hibernate.Session; import org.hibernate.Query; import java.util.List; import org.apache.log4j.Logger; public class ImportCrossSection { private static Logger log = Logger.getLogger(ImportRiver.class); protected ImportRiver river; protected String description; protected ImportTimeInterval timeInterval; protected List<ImportCrossSectionLine> lines; protected CrossSection peer; public ImportCrossSection() { } public ImportCrossSection( ImportRiver river, String description, ImportTimeInterval timeInterval, List<ImportCrossSectionLine> lines ) { this.river = river; this.description = description; this.timeInterval = timeInterval; this.lines = lines; wireWithLines(); } public void wireWithLines() { for (ImportCrossSectionLine line: lines) { line.setCrossSection(this); } } public ImportRiver getRiver() { return river; } public void setRiver(ImportRiver river) { this.river = river; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public ImportTimeInterval getTimeInterval() { return timeInterval; } public void setTimeInterval(ImportTimeInterval timeInterval) { this.timeInterval = timeInterval; } public void storeDependencies() { log.info("store cross section '" + description + "'"); getPeer(); int i = 1, N = lines.size(); for (ImportCrossSectionLine line: lines) { line.storeDependencies(); log.info(" stored " + i + " lines. remaining: " + (N-i)); ++i; } } public CrossSection getPeer() { if (peer == null) { River r = river.getPeer(); TimeInterval t = timeInterval != null ? timeInterval.getPeer() : null; Session session = ImporterSession.getInstance().getDatabaseSession(); Query query = session.createQuery( "from CrossSection where " + "river=:r and " + "timeInterval=:t and " + "description=:d"); query.setParameter("r", r); query.setParameter("t", t); query.setParameter("d", description); List<CrossSection> crossSections = query.list(); if (crossSections.isEmpty()) { peer = new CrossSection(r, t, description); session.save(peer); } else { peer = crossSections.get(0); } } return peer; } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :