sascha@1218: package de.intevation.flys.importer; sascha@1218: sascha@1218: import de.intevation.flys.model.HYKEntry; sascha@1218: import de.intevation.flys.model.HYK; sascha@1218: sascha@1218: import java.util.Date; sascha@1218: import java.util.List; sascha@1218: import java.util.ArrayList; sascha@1218: sascha@1218: import java.math.BigDecimal; sascha@1218: sascha@1218: import org.hibernate.Session; sascha@1218: import org.hibernate.Query; sascha@1218: sascha@1218: public class ImportHYKEntry sascha@1218: { sascha@1218: protected ImportHYK hyk; sascha@1218: protected BigDecimal km; sascha@1218: protected Date measure; sascha@1218: sascha@1218: protected List formations; sascha@1218: sascha@1218: protected HYKEntry peer; sascha@1218: sascha@1218: public ImportHYKEntry() { sascha@1218: formations = new ArrayList(); sascha@1218: } sascha@1218: sascha@1218: public ImportHYKEntry( sascha@1218: ImportHYK hyk, sascha@1218: BigDecimal km, sascha@1218: Date measure sascha@1218: ) { sascha@1224: this(); sascha@1218: this.hyk = hyk; sascha@1218: this.km = km; sascha@1218: this.measure = measure; sascha@1218: } sascha@1218: sascha@1218: public ImportHYK getHYK() { sascha@1218: return hyk; sascha@1218: } sascha@1218: sascha@1218: public void setHYK(ImportHYK hyk) { sascha@1218: this.hyk = hyk; sascha@1218: } sascha@1218: sascha@1224: public BigDecimal getKm() { sascha@1224: return km; sascha@1224: } sascha@1224: sascha@1224: public void setKm(BigDecimal km) { sascha@1224: this.km = km; sascha@1224: } sascha@1224: sascha@1218: public void addFormation(ImportHYKFormation formation) { sascha@1218: int numFormation = formations.size(); sascha@1218: formations.add(formation); sascha@1218: formation.setFormationNum(numFormation); sascha@1218: formation.setEntry(this); sascha@1218: } sascha@1218: sascha@1221: public void storeDependencies() { sascha@1221: getPeer(); sascha@1221: for (ImportHYKFormation formation: formations) { sascha@1221: formation.storeDependencies(); sascha@1221: } sascha@1221: } sascha@1221: sascha@1218: public HYKEntry getPeer() { sascha@1218: if (peer == null) { sascha@1218: HYK h = hyk.getPeer(); sascha@1218: Session session = ImporterSession.getInstance() sascha@1218: .getDatabaseSession(); sascha@1218: Query query = session.createQuery( sascha@1224: "from HYKEntry where HYK=:hyk " + sascha@1218: "and km=:km and measure=:measure"); sascha@1218: query.setParameter("hyk", h); sascha@1218: query.setParameter("km", km); sascha@1218: query.setParameter("measure", measure); sascha@1218: List entries = query.list(); sascha@1218: if (entries.isEmpty()) { sascha@1218: peer = new HYKEntry(h, km, measure); sascha@1218: session.save(peer); sascha@1218: } sascha@1218: else { sascha@1218: peer = entries.get(0); 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 :