Mercurial > dive4elements > river
diff flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java @ 201:3169b559ca3c
Build models for wsts, wst columns and q ranges and store them in the backend.
flys-backend/trunk@1549 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 23 Mar 2011 15:22:32 +0000 |
parents | a33c065b95eb |
children | c8c09e31cdb8 |
line wrap: on
line diff
--- a/flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java Wed Mar 23 10:46:58 2011 +0000 +++ b/flys-backend/src/main/java/de/intevation/flys/importer/ImportWst.java Wed Mar 23 15:22:32 2011 +0000 @@ -1,17 +1,74 @@ package de.intevation.flys.importer; import de.intevation.flys.model.Wst; +import de.intevation.flys.model.River; + +import org.hibernate.Session; +import org.hibernate.Query; + +import java.util.List; +import java.util.Map; +import java.util.HashMap; public class ImportWst { + protected String description; + + protected Map<String, ImportWstColumn> columns; + protected Wst peer; public ImportWst() { + columns = new HashMap<String, ImportWstColumn>(); } - public Wst getPeer() { + public ImportWst(String description) { + this(); + this.description = description; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ImportWstColumn getColumn(String name) { + ImportWstColumn column = columns.get(name); + if (column == null) { + column = new ImportWstColumn(this, name, null); + columns.put(name, column); + } + return column; + } + + public void storeDependencies(River river) { + Wst wst = getPeer(river); + + for (ImportWstColumn column: columns.values()) { + column.storeDependencies(river); + } + } + + public Wst getPeer(River river) { if (peer == null) { - // TODO: Implement me! + Session session = Importer.sessionHolder.get(); + Query query = session.createQuery( + "from Wst where " + + "river=:river and description=:description"); + query.setParameter("river", river); + query.setParameter("description", description); + List<Wst> wsts = query.list(); + if (wsts.isEmpty()) { + peer = new Wst(river, description); + session.save(peer); + } + else { + peer = wsts.get(0); + } + } return peer; }