package org.appfuse.persistence;

import org.appfuse.model.Template;


/**
 * Template Data Access Object (DAO) interface.
 */
public interface TemplateDAO extends DAO {
   
    /**
     * Get a template based on its primary key.
     * @param id the template's primary key
     * @throws DAOException data access exception (fatal)
     */
    public Template getTemplate(Long id) throws DAOException;

    /**
     * Saves a template to the database.
     * @param template the modified template
     */
    public void saveTemplate(Template template) throws DAOException;
    
    /**
     * Removes a template from the database.
     * @param template the template to delete
     */
    public void removeTemplate(Template template) throws DAOException;
}