teichmann@5829: package org.dive4elements.river.importer; ingo@2808: ingo@2809: import java.util.List; ingo@2809: ingo@2809: import org.apache.log4j.Logger; ingo@2809: ingo@2809: import org.hibernate.Session; ingo@2809: import org.hibernate.Query; ingo@2809: teichmann@5829: import org.dive4elements.river.model.LocationSystem; ingo@2808: ingo@2808: ingo@2808: public class ImportLocationSystem { ingo@2808: ingo@2809: private static final Logger log = ingo@2809: Logger.getLogger(ImportLocationSystem.class); ingo@2809: ingo@2809: ingo@2808: protected String name; ingo@2808: protected String description; ingo@2808: ingo@2809: protected LocationSystem peer; ingo@2809: ingo@2808: ingo@2808: public ImportLocationSystem(String name, String description) { ingo@2808: this.name = name; ingo@2808: this.description = description; ingo@2808: } ingo@2809: ingo@2809: public void storeDependencies() { ingo@2809: log.info("store LocationSystem '" + name + "'"); ingo@2809: LocationSystem ls = getPeer(); ingo@2809: ingo@2809: Session session = ImporterSession.getInstance().getDatabaseSession(); ingo@2809: session.flush(); ingo@2809: } ingo@2809: ingo@2809: public LocationSystem getPeer() { ingo@2809: if (peer == null) { ingo@2809: Session session = ImporterSession.getInstance().getDatabaseSession(); ingo@2809: Query query = session.createQuery( ingo@2809: "from LocationSystem where " + ingo@2809: "name=:name and description=:description"); ingo@2809: query.setParameter("name", name); ingo@2809: query.setParameter("description", description); ingo@2809: ingo@2809: List lss = query.list(); ingo@2809: if (lss.isEmpty()) { ingo@2809: peer = new LocationSystem(name, description); ingo@2809: session.save(peer); ingo@2809: } ingo@2809: else { ingo@2809: peer = lss.get(0); ingo@2809: } ingo@2809: } ingo@2809: ingo@2809: return peer; ingo@2809: } ingo@2808: } ingo@2808: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :