ingo@198: package de.intevation.flys.importer; ingo@198: ingo@198: import java.util.ArrayList; ingo@198: import java.util.List; ingo@198: ingo@198: import org.hibernate.Session; ingo@198: import org.hibernate.Query; ingo@198: ingo@198: import de.intevation.flys.model.DischargeTable; ingo@198: import de.intevation.flys.model.Gauge; ingo@198: ingo@198: ingo@198: public class ImportDischargeTable ingo@198: { ingo@198: protected DischargeTable peer; ingo@198: sascha@467: protected Integer kind; sascha@467: ingo@198: protected List dischargeTableValues; ingo@198: ingo@198: ingo@198: public ImportDischargeTable() { sascha@467: kind = 0; ingo@198: dischargeTableValues = new ArrayList(); ingo@198: } ingo@198: ingo@198: ingo@198: public void addDischargeTableValue(ImportDischargeTableValue value) { ingo@198: dischargeTableValues.add(value); ingo@198: } ingo@198: ingo@198: ingo@198: public void setDischargeTableValues(List values){ ingo@198: this.dischargeTableValues = values; ingo@198: } ingo@198: ingo@198: ingo@198: public List getDischargeTableValues() { ingo@198: return dischargeTableValues; ingo@198: } ingo@198: ingo@198: ingo@198: public DischargeTable getPeer(Gauge gauge) { ingo@198: if (peer == null) { ingo@198: Session session = Importer.sessionHolder.get(); ingo@198: ingo@198: Query query = session.createQuery( sascha@473: "from DischargeTable where gauge.id=:gauge and kind=:kind"); ingo@198: query.setParameter("gauge", gauge.getId()); sascha@467: query.setParameter("kind", kind); ingo@198: ingo@198: List dischargeTables = query.list(); ingo@198: if (dischargeTables.isEmpty()) { sascha@467: peer = new DischargeTable(gauge, kind); ingo@198: session.save(peer); ingo@198: } ingo@198: else { ingo@198: peer = dischargeTables.get(0); ingo@198: } ingo@198: } ingo@198: ingo@198: return peer; ingo@198: } ingo@198: ingo@198: ingo@198: public void storeDependencies(Gauge gauge) { ingo@198: storeDischargeTableValues(gauge); ingo@198: } ingo@198: ingo@198: ingo@198: public void storeDischargeTableValues(Gauge gauge) { ingo@198: DischargeTable dischargeTable = getPeer(gauge); ingo@198: ingo@198: for (ImportDischargeTableValue value: dischargeTableValues) { ingo@198: value.getPeer(dischargeTable); ingo@198: } ingo@198: } ingo@198: } ingo@198: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :