package org.appfuse.persistence.hibernate;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.model.Template;
import org.appfuse.persistence.DAOException;
import org.appfuse.persistence.TemplateDAO;
import org.springframework.orm.hibernate.support.HibernateDaoSupport;


public class TemplateDAOHibernate extends HibernateDaoSupport
    implements TemplateDAO {
    private Log log = LogFactory.getLog(TemplateDAOHibernate.class);

    /**
     * @see org.appfuse.persistence.TemplateDAO#getTemplate(Long)
     */
    public Template getTemplate(Long id) throws DAOException {
        Template t = (Template) getHibernateTemplate().get(Template.class, id);

        if (t == null) {
            throw new DAOException("No Template found with Id '" + id + "'");
        }

        return t;
    }

    /**
     * @see org.appfuse.persistence.TemplateDAO#saveTemplate(Template)
     */
    public void saveTemplate(Template template) throws DAOException {
        getHibernateTemplate().saveOrUpdate(template);
    }

    /**
     * @see org.appfuse.persistence.TemplateDAO#removeTemplate(Template)
     */
    public void removeTemplate(Template template) throws DAOException {
        getHibernateTemplate().delete(template);
    }
}