/* vim: set ts=2 et sw=2 cindent fo=qroca: */ package com.globant.katari.shindig.domain; import org.apache.commons.lang.Validate; import org.hibernate.Criteria; import org.hibernate.criterion.Restrictions; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** The application repository. * * This repository should probably need to cache the applications. */ public class ApplicationRepository extends HibernateDaoSupport { /** The class logger. */ private static Logger log = LoggerFactory.getLogger(ApplicationRepository.class); /** Find the application by id. * * @param id the id of the application. * * @return the application found or null. */ public Application findApplication(final long id) { log.trace("Entering findApplication with id = {}", Long.valueOf(id)); Application app; app = (Application) getHibernateTemplate().get(Application.class, id); log.trace("Leaving findApplication"); return app; } /** Find the application by url. * * @param url the url of the application. It cannot be null. * * @return the application found or null. */ public Application findApplicationByUrl(final String url) { Validate.notNull(url, "The url cannot be null."); log.trace("Entering findApplicationByUrl('{}')", url); Criteria criteria = getSession().createCriteria(Application.class); criteria.add(Restrictions.eq("url", url)); Application app = (Application) criteria.uniqueResult(); log.trace("Leaving findApplicationByUrl"); return app; } }