teichmann@5829: package org.dive4elements.river.importer; sascha@185: teichmann@5829: import org.dive4elements.river.model.Position; sascha@187: sascha@187: import org.hibernate.Session; sascha@187: import org.hibernate.Query; sascha@187: sascha@187: import java.util.List; sascha@187: sascha@185: public class ImportPosition sascha@186: implements Comparable sascha@185: { sascha@185: protected String value; sascha@185: sascha@187: protected Position peer; sascha@187: sascha@185: public ImportPosition() { sascha@185: } sascha@185: sascha@185: public ImportPosition(String value) { sascha@185: this.value = value; sascha@185: } sascha@185: sascha@186: public int compareTo(ImportPosition other) { sascha@186: return value.compareTo(other.value); sascha@186: } sascha@186: sascha@185: public String getValue() { sascha@185: return value; sascha@185: } sascha@185: sascha@185: public void setValue(String value) { sascha@185: this.value = value; sascha@185: } sascha@187: sascha@187: public Position getPeer() { sascha@188: if (peer == null) { sascha@497: Session session = ImporterSession.getInstance().getDatabaseSession(); sascha@187: Query query = session.createQuery("from Position where value=:value"); sascha@187: query.setString("value", value); sascha@187: List positions = query.list(); sascha@187: if (positions.isEmpty()) { sascha@187: peer = new Position(value); sascha@187: session.save(peer); sascha@187: } sascha@187: else { sascha@187: peer = positions.get(0); sascha@187: } sascha@187: } sascha@187: return peer; sascha@187: } sascha@185: } sascha@185: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : sascha@185: