package org.appfuse.service;

import java.util.Date;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.appfuse.model.Template;
import org.appfuse.persistence.TemplateDAO;


/**
 * Business Delegate (Proxy) Interface to handle communication between web and
 * persistence layer<p/>
 * 
 * <p>
 * <a href="TemplateManagerImpl.java.html"><i>View Source</i></a>
 * </p>
 *
 * @author <a href="mailto:matt@raibledesigns.com">Matt Raible</a>
 * @version $Revision: 1.1 $ $Date: 2004/03/31 13:04:17 $
 */
public class TemplateManagerImpl extends BaseManager implements TemplateManager {
    private Log log = LogFactory.getLog(TemplateManagerImpl.class);
    private TemplateDAO dao;

    public void setTemplateDAO(TemplateDAO dao) {
        this.dao = dao;
    }

    /**
     * @see org.appfuse.service.TemplateManager#getTemplate(java.lang.String)
     */
    public Object getTemplate(String templateId) throws Exception {
        return dao.getTemplate(Long.valueOf(templateId));
        //Object form = convert(template);
        //return convertDates(template, form);
    }
    
    /**
     * @see org.appfuse.service.TemplateManager#saveTemplate(java.lang.Object)
     */
    public Object saveTemplate(Object obj) throws Exception {
        Template template = (Template) obj;

        // set the lastModified time to now
        template.setLastModified(new Date());
        dao.saveTemplate(template);

        return getTemplate(template.getId().toString());
    }

    /**
     * @see org.appfuse.service.TemplateManager#removeTemplate(java.lang.Object)
     */
    public void removeTemplate(Object obj) throws Exception {
        Template template = (Template) obj;
        dao.removeTemplate(template);
    }
}