teichmann@5829: package org.dive4elements.river.importer; ingo@2813: ingo@2813: import java.math.BigDecimal; ingo@2813: ingo@2817: import java.util.List; ingo@2817: ingo@2813: import org.apache.log4j.Logger; ingo@2813: ingo@2817: import org.hibernate.Session; ingo@2817: import org.hibernate.Query; ingo@2817: teichmann@5829: import org.dive4elements.river.model.Depth; ingo@2813: ingo@2813: ingo@2813: public class ImportDepth { ingo@2813: ingo@2813: private static Logger log = Logger.getLogger(ImportDepth.class); ingo@2813: ingo@2813: ingo@2813: protected Depth peer; ingo@2813: ingo@2813: protected BigDecimal lower; ingo@2813: protected BigDecimal upper; ingo@2813: ingo@2813: tom@5441: public ImportDepth(BigDecimal lower, BigDecimal upper) { ingo@2813: this.lower = lower; ingo@2813: this.upper = upper; ingo@2813: } ingo@2813: ingo@2813: ingo@2813: public void storeDependencies() { ingo@2813: log.info("store dependencies"); ingo@2817: ingo@2817: getPeer(); ingo@2813: } ingo@2813: ingo@2813: ingo@2813: public Depth getPeer() { ingo@2813: log.info("get peer"); ingo@2813: ingo@2817: if (peer == null) { ingo@2817: Session session = ImporterSession.getInstance().getDatabaseSession(); ingo@2817: ingo@2817: Query query = session.createQuery( ingo@2817: "from Depth where " + ingo@2817: " lower=:lower and " + tom@5441: " upper=:upper"); ingo@2817: ingo@2817: query.setParameter("lower", lower); ingo@2817: query.setParameter("upper", upper); ingo@2817: ingo@2817: List depths = query.list(); ingo@2817: ingo@2817: if (depths.isEmpty()) { ingo@2817: log.debug("Create new Depth DB instance."); ingo@2817: tom@5441: peer = new Depth(lower, upper); ingo@2817: ingo@2817: session.save(peer); ingo@2817: } ingo@2817: else { ingo@2817: peer = depths.get(0); ingo@2817: } ingo@2817: } ingo@2817: ingo@2817: return peer; ingo@2813: } ingo@2813: } ingo@2813: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :