teichmann@5844: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5844: * Software engineering by Intevation GmbH teichmann@5844: * teichmann@5844: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5844: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5844: * documentation coming with Dive4Elements River for details. teichmann@5844: */ teichmann@5844: teichmann@5829: package org.dive4elements.river.importer; sascha@189: teichmann@5829: import org.dive4elements.river.model.MainValueType; sascha@189: sascha@189: import org.hibernate.Session; sascha@189: import org.hibernate.Query; sascha@189: sascha@189: import java.util.List; sascha@189: sascha@189: public class ImportMainValueType sascha@189: implements Comparable sascha@189: { sascha@195: protected String name; sascha@189: sascha@189: protected MainValueType peer; sascha@189: sascha@189: public ImportMainValueType() { sascha@189: } sascha@189: sascha@195: public ImportMainValueType(String name) { sascha@195: this.name = name; sascha@189: } sascha@189: sascha@195: public String getName() { sascha@195: return name; sascha@189: } sascha@189: sascha@195: public void setName(String name) { sascha@195: this.name = name; sascha@189: } sascha@189: sascha@189: public int compareTo(ImportMainValueType other) { sascha@195: return name.compareTo(other.name); sascha@189: } sascha@189: sascha@189: @Override sascha@189: public boolean equals(Object other) { sascha@189: if (other == this) return true; sascha@189: if (!(other instanceof ImportMainValueType)) return false; sascha@195: return name.equals(((ImportMainValueType)other).name); sascha@189: } sascha@189: sascha@189: @Override sascha@189: public int hashCode() { sascha@195: return name.hashCode(); sascha@189: } sascha@189: sascha@189: public MainValueType getPeer() { sascha@189: if (peer == null) { sascha@497: Session session = ImporterSession.getInstance().getDatabaseSession(); sascha@195: Query query = session.createQuery("from MainValueType where name=:name"); sascha@195: query.setString("name", name); sascha@189: List values = query.list(); sascha@189: if (values.isEmpty()) { sascha@195: peer = new MainValueType(name); sascha@189: session.save(peer); sascha@189: } sascha@189: else { sascha@189: peer = values.get(0); sascha@189: } sascha@189: } sascha@189: return peer; sascha@189: } sascha@189: } sascha@189: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :