teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5863: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5863: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.model; ingo@114: ingo@114: import java.util.List; ingo@114: teichmann@5831: import org.dive4elements.river.backend.SessionHolder; teichmann@5831: import org.dive4elements.river.model.River; sascha@132: ingo@312: import org.hibernate.Query; sascha@132: import org.hibernate.Session; ingo@114: ingo@114: /** ingo@114: * @author Ingo Weinzierl ingo@114: */ ingo@114: public class RiverFactory { ingo@114: ingo@114: /** We don't need to instantiate concrete objects of this class. */ ingo@114: private RiverFactory() { ingo@114: } ingo@114: ingo@114: ingo@114: /** ingo@114: * Returns all rivers that were found in the backend. ingo@114: * ingo@114: * @return all rivers. ingo@114: */ ingo@114: public static List getRivers() { sascha@308: Session session = SessionHolder.HOLDER.get(); ingo@1631: ingo@1631: return session.createQuery("from River order by name").list(); ingo@114: } ingo@312: ingo@312: ingo@312: /** ingo@1075: * Returns a River object fetched from database based on its id. ingo@1075: * ingo@1075: * @param river_id The id of the desired river. ingo@1075: * ingo@1075: * @return the river. ingo@1075: */ ingo@1075: public static River getRiver(int river_id) { ingo@1075: Session session = SessionHolder.HOLDER.get(); ingo@1075: ingo@1075: Query query = session.createQuery("from River where id=:river_id"); ingo@1075: query.setParameter("river_id", river_id); ingo@1075: ingo@1075: List rivers = query.list(); ingo@1075: sascha@3143: return rivers.isEmpty() ? null : rivers.get(0); ingo@1075: } ingo@1075: ingo@1075: ingo@1075: /** ingo@312: * Returns a River object fetched from database based on its name. ingo@312: * ingo@312: * @param river The name of a river. ingo@312: * ingo@312: * @return the River object. ingo@312: */ ingo@312: public static River getRiver(String river) { ingo@312: Session session = SessionHolder.HOLDER.get(); ingo@312: ingo@312: Query query = session.createQuery( ingo@312: "from River where name =:name"); ingo@312: query.setParameter("name", river); ingo@312: ingo@312: List rivers = query.list(); ingo@312: sascha@3143: return rivers.isEmpty() ? null : rivers.get(0); ingo@312: } ingo@114: } ingo@114: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :