// Path: api/src/main/java/org/openmrs/module/hl7query/HL7Template.java
// public class HL7Template extends BaseOpenmrsMetadata implements OpenmrsMetadata {
// 	
// 	private Integer hl7TemplateId;
// 
// 	private String hl7Entity;
// 	
// 	private String language = HL7QueryService.LANGUAGE_GROOVY;
// 	
// 	private String template;
// 	
// 	/**
// 	 * @see org.openmrs.OpenmrsObject#getId()
// 	 */
// 	@Override
// 	public Integer getId() {
// 		return getHl7TemplateId();
// 	}
// 	
// 	/**
// 	 * @see org.openmrs.OpenmrsObject#setId(java.lang.Integer)
// 	 */
// 	@Override
// 	public void setId(Integer id) {
// 		setHl7TemplateId(id);
// 	}
// 	
// 	/**
// 	 * @return the hl7TemplateId
// 	 */
// 	public Integer getHl7TemplateId() {
// 		return hl7TemplateId;
// 	}
// 	
// 	/**
// 	 * @param hl7TemplateId the hl7TemplateId to set
// 	 */
// 	public void setHl7TemplateId(Integer hl7TemplateId) {
// 		this.hl7TemplateId = hl7TemplateId;
// 	}
// 		
// 	/**
// 	 * @return the hl7Entity
// 	 */
// 	public String getHl7Entity() {
// 		return hl7Entity;
// 	}
// 	
// 	/**
// 	 * @param hl7Entity the hl7Entity to set
// 	 */
// 	public void setHl7Entity(String hl7Entity) {
// 		this.hl7Entity = hl7Entity;
// 	}
// 	
// 	/**
// 	 * @return the language
// 	 */
// 	public String getLanguage() {
// 		return language;
// 	}
// 	
// 	/**
// 	 * @param language the language to set
// 	 */
// 	public void setLanguage(String language) {
// 		this.language = language;
// 	}
// 	
// 	/**
// 	 * @return the template
// 	 */
// 	public String getTemplate() {
// 		return template;
// 	}
// 	
// 	/**
// 	 * @param template the template to set
// 	 */
// 	public void setTemplate(String template) {
// 		this.template = template;
// 	}
// 	
// }
// 
// Path: api/src/main/java/org/openmrs/module/hl7query/api/db/HL7QueryDAO.java
// public interface HL7QueryDAO {
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7Template(Integer)
// 	 */
// 	HL7Template getHL7Template(Integer id);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplateByUuid(String)
// 	 */
// 	HL7Template getHL7TemplateByUuid(String uuid);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplateByName(String)
// 	 */
// 	HL7Template getHL7TemplateByName(String name);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplatesByName(String)
// 	 */
// 	List<HL7Template> getHL7TemplatesByName(String name);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplatesByEntity(String)
// 	 */
// 	List<HL7Template> getHL7TemplatesByEntity(String entity);
// 	
// 	/**
// 	 * @see HL7QueryService#saveHL7Template(HL7Template)
// 	 */
// 	HL7Template saveHL7Template(HL7Template hl7Template);
// 	
// 	/**
// 	 * @see HL7QueryService#retireHL7Template(HL7Template, String)
// 	 */
// 	HL7Template retireHL7Template(HL7Template hl7Template, String reason);
// 	
// 	/**
// 	 * @see HL7QueryService#unretireHL7Template(HL7Template)
// 	 */
// 	HL7Template unretireHL7Template(HL7Template hl7Template);
// 	
// 	/**
// 	 * @see HL7QueryService#purgeHL7Template(HL7Template)
// 	 */
// 	void purgeHL7Template(HL7Template hl7Template);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7Templates(boolean)
// 	 */
// 	List<HL7Template> getHL7Templates(boolean includeRetired);
// }


import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.openmrs.module.hl7query.HL7Template;
import org.openmrs.module.hl7query.api.db.HL7QueryDAO;
/**
 * The contents of this file are subject to the OpenMRS Public License
 * Version 1.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://license.openmrs.org
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * Copyright (C) OpenMRS, LLC.  All Rights Reserved.
 */
package org.openmrs.module.hl7query.api.db.hibernate;



/**
 * It is a default implementation of {@link HL7QueryDAO}.
 */
public class HibernateHL7QueryDAO implements HL7QueryDAO {
	
	protected final Log log = LogFactory.getLog(this.getClass());
	
	private SessionFactory sessionFactory;
	
	/**
	 * @param sessionFactory the sessionFactory to set
	 */
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
	/**
	 * @return the sessionFactory
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	
	@Override
// Path: api/src/main/java/org/openmrs/module/hl7query/HL7Template.java
// public class HL7Template extends BaseOpenmrsMetadata implements OpenmrsMetadata {
// 	
// 	private Integer hl7TemplateId;
// 
// 	private String hl7Entity;
// 	
// 	private String language = HL7QueryService.LANGUAGE_GROOVY;
// 	
// 	private String template;
// 	
// 	/**
// 	 * @see org.openmrs.OpenmrsObject#getId()
// 	 */
// 	@Override
// 	public Integer getId() {
// 		return getHl7TemplateId();
// 	}
// 	
// 	/**
// 	 * @see org.openmrs.OpenmrsObject#setId(java.lang.Integer)
// 	 */
// 	@Override
// 	public void setId(Integer id) {
// 		setHl7TemplateId(id);
// 	}
// 	
// 	/**
// 	 * @return the hl7TemplateId
// 	 */
// 	public Integer getHl7TemplateId() {
// 		return hl7TemplateId;
// 	}
// 	
// 	/**
// 	 * @param hl7TemplateId the hl7TemplateId to set
// 	 */
// 	public void setHl7TemplateId(Integer hl7TemplateId) {
// 		this.hl7TemplateId = hl7TemplateId;
// 	}
// 		
// 	/**
// 	 * @return the hl7Entity
// 	 */
// 	public String getHl7Entity() {
// 		return hl7Entity;
// 	}
// 	
// 	/**
// 	 * @param hl7Entity the hl7Entity to set
// 	 */
// 	public void setHl7Entity(String hl7Entity) {
// 		this.hl7Entity = hl7Entity;
// 	}
// 	
// 	/**
// 	 * @return the language
// 	 */
// 	public String getLanguage() {
// 		return language;
// 	}
// 	
// 	/**
// 	 * @param language the language to set
// 	 */
// 	public void setLanguage(String language) {
// 		this.language = language;
// 	}
// 	
// 	/**
// 	 * @return the template
// 	 */
// 	public String getTemplate() {
// 		return template;
// 	}
// 	
// 	/**
// 	 * @param template the template to set
// 	 */
// 	public void setTemplate(String template) {
// 		this.template = template;
// 	}
// 	
// }
// 
// Path: api/src/main/java/org/openmrs/module/hl7query/api/db/HL7QueryDAO.java
// public interface HL7QueryDAO {
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7Template(Integer)
// 	 */
// 	HL7Template getHL7Template(Integer id);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplateByUuid(String)
// 	 */
// 	HL7Template getHL7TemplateByUuid(String uuid);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplateByName(String)
// 	 */
// 	HL7Template getHL7TemplateByName(String name);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplatesByName(String)
// 	 */
// 	List<HL7Template> getHL7TemplatesByName(String name);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7TemplatesByEntity(String)
// 	 */
// 	List<HL7Template> getHL7TemplatesByEntity(String entity);
// 	
// 	/**
// 	 * @see HL7QueryService#saveHL7Template(HL7Template)
// 	 */
// 	HL7Template saveHL7Template(HL7Template hl7Template);
// 	
// 	/**
// 	 * @see HL7QueryService#retireHL7Template(HL7Template, String)
// 	 */
// 	HL7Template retireHL7Template(HL7Template hl7Template, String reason);
// 	
// 	/**
// 	 * @see HL7QueryService#unretireHL7Template(HL7Template)
// 	 */
// 	HL7Template unretireHL7Template(HL7Template hl7Template);
// 	
// 	/**
// 	 * @see HL7QueryService#purgeHL7Template(HL7Template)
// 	 */
// 	void purgeHL7Template(HL7Template hl7Template);
// 	
// 	/**
// 	 * @see HL7QueryService#getHL7Templates(boolean)
// 	 */
// 	List<HL7Template> getHL7Templates(boolean includeRetired);
// }


// Path: api/src/main/java/org/openmrs/module/hl7query/api/db/hibernate/HibernateHL7QueryDAO.java
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.openmrs.module.hl7query.HL7Template;
import org.openmrs.module.hl7query.api.db.HL7QueryDAO;

/**
 * The contents of this file are subject to the OpenMRS Public License
 * Version 1.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://license.openmrs.org
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
 * License for the specific language governing rights and limitations
 * under the License.
 *
 * Copyright (C) OpenMRS, LLC.  All Rights Reserved.
 */
package org.openmrs.module.hl7query.api.db.hibernate;



/**
 * It is a default implementation of {@link HL7QueryDAO}.
 */
public class HibernateHL7QueryDAO implements HL7QueryDAO {
	
	protected final Log log = LogFactory.getLog(this.getClass());
	
	private SessionFactory sessionFactory;
	
	/**
	 * @param sessionFactory the sessionFactory to set
	 */
	public void setSessionFactory(SessionFactory sessionFactory) {
		this.sessionFactory = sessionFactory;
	}
	
	/**
	 * @return the sessionFactory
	 */
	public SessionFactory getSessionFactory() {
		return sessionFactory;
	}
	
	@Override
	public HL7Template getHL7Template(Integer id) {