sascha@1218: package de.intevation.flys.importer; sascha@1218: sascha@1218: import de.intevation.flys.model.HYKFormation; sascha@1218: import de.intevation.flys.model.HYKFlowZone; sascha@1218: import de.intevation.flys.model.HYKFlowZoneType; sascha@1218: sascha@1218: import org.hibernate.Session; sascha@1218: import org.hibernate.Query; sascha@1218: sascha@1218: import java.util.List; sascha@1218: sascha@1218: import java.math.BigDecimal; sascha@1218: sascha@1218: public class ImportHYKFlowZone sascha@1218: { sascha@1218: protected ImportHYKFormation formation; sascha@1218: protected ImportHYKFlowZoneType type; sascha@1218: protected BigDecimal a; sascha@1218: protected BigDecimal b; sascha@1218: sascha@1218: protected HYKFlowZone peer; sascha@1218: sascha@1218: public ImportHYKFlowZone() { sascha@1218: } sascha@1218: sascha@1218: public ImportHYKFlowZone( sascha@1218: ImportHYKFormation formation, sascha@1218: ImportHYKFlowZoneType type, sascha@1218: BigDecimal a, sascha@1218: BigDecimal b sascha@1218: ) { sascha@1218: this.formation = formation; sascha@1218: this.type = type; sascha@1218: this.a = a; sascha@1218: this.b = b; sascha@1218: } sascha@1218: sascha@1218: public ImportHYKFormation getFormation() { sascha@1218: return formation; sascha@1218: } sascha@1218: sascha@1218: public void setFormation(ImportHYKFormation formation) { sascha@1218: this.formation = formation; sascha@1218: } sascha@1218: sascha@1218: public HYKFlowZone getPeer() { sascha@1218: if (peer == null) { sascha@1218: HYKFormation f = formation.getPeer(); sascha@1218: HYKFlowZoneType t = type.getPeer(); sascha@1218: Session session = ImporterSession.getInstance() sascha@1218: .getDatabaseSession(); sascha@1218: Query query = session.createQuery( sascha@1218: "from HYKFlowZone where formation=:formation " + sascha@1218: "and type=:type and a=:a and b=:b"); sascha@1218: query.setParameter("formation", f); sascha@1218: query.setParameter("type", t); sascha@1218: query.setParameter("a", a); sascha@1218: query.setParameter("b", b); sascha@1218: List zones = query.list(); sascha@1218: if (zones.isEmpty()) { sascha@1218: peer = new HYKFlowZone(f, t, a, b); sascha@1218: session.save(peer); sascha@1218: } sascha@1218: else { sascha@1218: peer = zones.get(0); sascha@1218: } sascha@1218: sascha@1218: } sascha@1218: return peer; sascha@1218: } sascha@1218: } sascha@1218: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :