sascha@196: package de.intevation.flys.importer; sascha@196: sascha@196: import de.intevation.flys.model.WstColumnValue; sascha@202: import de.intevation.flys.model.WstColumn; sascha@202: import de.intevation.flys.model.River; sascha@202: sascha@202: import java.math.BigDecimal; sascha@202: sascha@202: import org.hibernate.Session; sascha@202: import org.hibernate.Query; sascha@202: sascha@202: import java.util.List; sascha@196: sascha@196: public class ImportWstColumnValue sascha@196: { sascha@202: protected BigDecimal position; sascha@202: protected BigDecimal w; sascha@202: protected ImportWstColumn wstColumn; sascha@202: sascha@202: protected WstColumnValue peer; sascha@196: sascha@196: public ImportWstColumnValue() { sascha@196: } sascha@196: sascha@202: public ImportWstColumnValue( sascha@202: ImportWstColumn wstColumn, sascha@202: BigDecimal position, sascha@202: BigDecimal w sascha@202: ) { sascha@202: this.wstColumn = wstColumn; sascha@202: this.position = position; sascha@202: this.w = w; sascha@202: } sascha@202: sascha@202: public BigDecimal getPosition() { sascha@202: return position; sascha@202: } sascha@202: sascha@202: public void setPosition(BigDecimal position) { sascha@202: this.position = position; sascha@202: } sascha@202: sascha@202: public BigDecimal getW() { sascha@202: return w; sascha@202: } sascha@202: sascha@202: public void setW(BigDecimal w) { sascha@202: this.w = w; sascha@202: } sascha@202: sascha@202: public ImportWstColumn getWstColumn() { sascha@202: return wstColumn; sascha@202: } sascha@202: sascha@202: public void setWstColumn(ImportWstColumn wstColumn) { sascha@202: this.wstColumn = wstColumn; sascha@202: } sascha@202: sascha@202: public WstColumnValue getPeer(River river) { sascha@196: if (peer == null) { sascha@202: WstColumn c = wstColumn.getPeer(river); sascha@202: Session session = Importer.sessionHolder.get(); sascha@202: Query query = session.createQuery( sascha@202: "from WstColumnValue where " + sascha@202: "wstColumn=:c and position=:p and w=:w"); sascha@202: query.setParameter("c", c); sascha@202: query.setParameter("p", position); sascha@202: query.setParameter("w", w); sascha@202: List values = query.list(); sascha@202: if (values.isEmpty()) { sascha@202: peer = new WstColumnValue(c, position, w); sascha@202: session.save(peer); sascha@202: } sascha@202: else { sascha@202: peer = values.get(0); sascha@202: } sascha@196: } sascha@196: return peer; sascha@196: } sascha@196: } sascha@196: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :