package gcom.cadastro.cliente; import gcom.util.ErroRepositorioException; import gcom.util.HibernateUtil; import gcom.util.filtro.GeradorHQLCondicional; import java.util.ArrayList; import java.util.Collection; import java.util.concurrent.CopyOnWriteArraySet; import org.hibernate.HibernateException; import org.hibernate.Session; /** * O reposit�rio faz a comunica��o com a base de dados atrav�s do hibernate. O * cliente usa o reposit�rio como fonte de dados. * * @author S�vio Luiz * @created 25 de Abril de 2005 */ public class RepositorioClienteTipoHBM implements IRepositorioClienteTipo { private static IRepositorioClienteTipo instancia; /** * Constructor for the RepositorioClienteTipoHBM object */ public RepositorioClienteTipoHBM() { } /** * Retorna o valor de instancia * * @return O valor de instancia */ public static IRepositorioClienteTipo getInstancia() { if (instancia == null) { instancia = new RepositorioClienteTipoHBM(); } return instancia; } /** * pesquisa uma cole��o de cliente(s) de acordo com crit�rios existentes no * filtro * * @param filtroClienteTipo * Description of the Parameter * @return Description of the Return Value * @exception ErroRepositorioException * Description of the Exception */ public Collection pesquisarClienteTipo(FiltroClienteTipo filtroClienteTipo) throws ErroRepositorioException { Collection retorno = null; Session session = HibernateUtil.getSession(); try { retorno = new ArrayList(new CopyOnWriteArraySet(GeradorHQLCondicional.gerarCondicionalQuery( filtroClienteTipo, "clienteTipo", "from gcom.cadastro.cliente.ClienteTipo as clienteTipo", session).list())); } catch (HibernateException e) { throw new ErroRepositorioException("Erro no Hibernate"); } finally { HibernateUtil.closeSession(session); } return retorno; } }