teichmann@5844: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5844: * Software engineering by Intevation GmbH teichmann@5844: * teichmann@5992: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5844: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5992: * documentation coming with Dive4Elements River for details. teichmann@5844: */ teichmann@5844: teichmann@5829: package org.dive4elements.river.importer; sascha@195: sascha@195: import java.util.List; sascha@195: teichmann@5829: import org.dive4elements.river.model.NamedMainValue; teichmann@5829: import org.dive4elements.river.model.MainValueType; sascha@195: sascha@195: import org.hibernate.Session; sascha@195: import org.hibernate.Query; sascha@195: sascha@195: public class ImportNamedMainValue sascha@195: { sascha@195: protected ImportMainValueType mainValueType; sascha@195: protected String name; sascha@195: sascha@195: protected NamedMainValue peer; sascha@195: sascha@195: public ImportNamedMainValue() { sascha@195: } sascha@195: sascha@195: public ImportNamedMainValue( sascha@195: ImportMainValueType mainValueType, sascha@195: String name sascha@195: ) { sascha@195: this.mainValueType = mainValueType; sascha@195: this.name = name; sascha@195: } sascha@195: sascha@195: public ImportMainValueType getMainValueType() { sascha@195: return mainValueType; sascha@195: } sascha@195: sascha@195: public void setMainValueType(ImportMainValueType mainValueType) { sascha@195: this.mainValueType = mainValueType; sascha@195: } sascha@195: sascha@195: public String getName() { sascha@195: return name; sascha@195: } sascha@195: sascha@195: public void setName(String name) { sascha@195: this.name = name; sascha@195: } sascha@195: sascha@195: public NamedMainValue getPeer() { sascha@195: if (peer == null) { sascha@195: MainValueType type = mainValueType.getPeer(); tom@8856: Session session = ImporterSession.getInstance() tom@8856: .getDatabaseSession(); sascha@195: Query query = session.createQuery( sascha@195: "from NamedMainValue where " + sascha@195: "name=:name and type.id=:id"); sascha@195: query.setString("name", name); sascha@195: query.setParameter("id", type.getId()); sascha@195: List named = query.list(); sascha@195: if (named.isEmpty()) { sascha@195: peer = new NamedMainValue(name, type); sascha@195: session.save(peer); sascha@195: } sascha@195: else { sascha@195: peer = named.get(0); sascha@195: } sascha@195: } sascha@195: return peer; sascha@195: } sascha@195: } sascha@195: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :