package gcom.util.tabelaauxiliar;
import gcom.util.AtualizacaoInvalidaException;
import gcom.util.ControladorException;
import gcom.util.ErroRepositorioException;
import gcom.util.IRepositorioUtil;
import gcom.util.RepositorioUtilHBM;
import gcom.util.filtro.Filtro;
import gcom.util.filtro.ParametroSimples;
import gcom.util.tabelaauxiliar.abreviada.FiltroTabelaAuxiliarAbreviada;
import gcom.util.tabelaauxiliar.abreviada.TabelaAuxiliarAbreviada;
import gcom.util.tabelaauxiliar.faixa.FiltroTabelaAuxiliarFaixa;
import gcom.util.tabelaauxiliar.faixa.TabelaAuxiliarFaixa;
import gcom.util.tabelaauxiliar.tipo.FiltroTabelaAuxiliarTipo;
import gcom.util.tabelaauxiliar.tipo.TabelaAuxiliarTipo;
import java.util.Collection;
import java.util.Date;
import javax.ejb.CreateException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
/**
* < <Descri��o da Classe>>
*
* @author Administrador
*/
public class ControladorTabelaAuxiliarSEJB implements SessionBean {
private static final long serialVersionUID = 1L;
SessionContext sessionContext;
private IRepositorioUtil repositorioUtil = null;
/**
* < <Descri��o do m�todo>>
*
* @exception CreateException
* Descri��o da exce��o
*/
public void ejbCreate() throws CreateException {
repositorioUtil = RepositorioUtilHBM.getInstancia();
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbRemove() {
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbActivate() {
}
/**
* < <Descri��o do m�todo>>
*/
public void ejbPassivate() {
}
/**
* Seta o valor de sessionContext
*
* @param sessionContext
* O novo valor de sessionContext
*/
public void setSessionContext(SessionContext sessionContext) {
this.sessionContext = sessionContext;
}
/**
* < <Descri��o do m�todo>>
*
* @param tabelaAuxiliarAbstrata
* Descri��o do par�metro
* @throws ControladorException
*/
public void atualizarTabelaAuxiliar(
TabelaAuxiliarAbstrata tabelaAuxiliarAbstrata)
throws ControladorException {
try {
// -----VALIDA��O DOS TIMESTAMP PARA ATUALIZA��O DE CADASTRO
// Valida��o para Tabela Auxiliar
if (tabelaAuxiliarAbstrata instanceof TabelaAuxiliar) {
// Cria o objeto
TabelaAuxiliar tabelaAuxiliar = null;
// Faz o casting
tabelaAuxiliar = (TabelaAuxiliar) tabelaAuxiliarAbstrata;
// Cria o filtro
FiltroTabelaAuxiliar filtroTabelaAuxiliar = new FiltroTabelaAuxiliar();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = tabelaAuxiliar.getClass().getName();
// Seta os parametros do filtro
filtroTabelaAuxiliar.adicionarParametro(new ParametroSimples(
FiltroTabelaAuxiliar.ID, tabelaAuxiliar.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection tabelasAuxiliares = repositorioUtil.pesquisar(
filtroTabelaAuxiliar, nomePacoteObjeto);
TabelaAuxiliar tabelaAuxiliarNaBase = (TabelaAuxiliar) tabelasAuxiliares
.iterator().next();
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((tabelaAuxiliarNaBase.getUltimaAlteracao()
.after(tabelaAuxiliar.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.atualizacao.timestamp");
}
// Faz uma referencia ao objeto
tabelaAuxiliarAbstrata = tabelaAuxiliar;
}
// Valida��o para Tabela Auxiliar Abreviada
if (tabelaAuxiliarAbstrata instanceof TabelaAuxiliarAbreviada) {
// Cria o objeto
TabelaAuxiliarAbreviada tabelaAuxiliarAbreviada = null;
// Faz o casting
tabelaAuxiliarAbreviada = (TabelaAuxiliarAbreviada) tabelaAuxiliarAbstrata;
// Cria o filtro
FiltroTabelaAuxiliarAbreviada filtroTabelaAuxiliarAbreviada = new FiltroTabelaAuxiliarAbreviada();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = tabelaAuxiliarAbreviada.getClass()
.getName();
// Seta os parametros do filtro
filtroTabelaAuxiliarAbreviada
.adicionarParametro(new ParametroSimples(
FiltroTabelaAuxiliarAbreviada.ID,
tabelaAuxiliarAbreviada.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection tabelasAuxiliaresAbreviadas = repositorioUtil
.pesquisar(filtroTabelaAuxiliarAbreviada,
nomePacoteObjeto);
TabelaAuxiliar tabelaAuxiliarAbreviadaNaBase = (TabelaAuxiliar) tabelasAuxiliaresAbreviadas
.iterator().next();
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((tabelaAuxiliarAbreviadaNaBase.getUltimaAlteracao()
.after(tabelaAuxiliarAbreviada.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.atualizacao.timestamp");
}
// Faz uma referencia ao objeto
tabelaAuxiliarAbstrata = tabelaAuxiliarAbreviada;
}
// Valida��o para Tabela Auxiliar Faixa
if (tabelaAuxiliarAbstrata instanceof TabelaAuxiliarFaixa) {
// Cria o objeto
TabelaAuxiliarFaixa tabelaAuxiliarFaixa = null;
// Faz o casting
tabelaAuxiliarFaixa = (TabelaAuxiliarFaixa) tabelaAuxiliarAbstrata;
// Cria o filtro
FiltroTabelaAuxiliarFaixa filtroTabelaAuxiliarFaixa = new FiltroTabelaAuxiliarFaixa();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = tabelaAuxiliarFaixa.getClass()
.getName();
// Seta os parametros do filtro
filtroTabelaAuxiliarFaixa
.adicionarParametro(new ParametroSimples(
FiltroTabelaAuxiliarFaixa.ID,
tabelaAuxiliarFaixa.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection tabelasAuxiliaresFaixas = repositorioUtil.pesquisar(
filtroTabelaAuxiliarFaixa, nomePacoteObjeto);
TabelaAuxiliarFaixa tabelaAuxiliarFaixaNaBase = (TabelaAuxiliarFaixa) tabelasAuxiliaresFaixas
.iterator().next();
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((tabelaAuxiliarFaixaNaBase.getUltimaAlteracao()
.after(tabelaAuxiliarFaixa.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new AtualizacaoInvalidaException();
}
// Faz uma referencia ao objeto
tabelaAuxiliarAbstrata = tabelaAuxiliarFaixa;
}
// Valida��o para Tabela Auxiliar
if (tabelaAuxiliarAbstrata instanceof TabelaAuxiliarTipo) {
// Cria o objeto
TabelaAuxiliarTipo tabelaAuxiliarTipo = null;
// Faz o casting
tabelaAuxiliarTipo = (TabelaAuxiliarTipo) tabelaAuxiliarAbstrata;
// Cria o filtro
FiltroTabelaAuxiliarTipo filtroTabelaAuxiliarTipo = new FiltroTabelaAuxiliarTipo();
// Pega o nome do pacote do objeto
String nomePacoteObjeto = tabelaAuxiliarTipo.getClass()
.getName();
// Seta os parametros do filtro
filtroTabelaAuxiliarTipo
.adicionarParametro(new ParametroSimples(
FiltroTabelaAuxiliarTipo.ID, tabelaAuxiliarTipo
.getId()));
// Pesquisa a cole��o de acordo com o filtro passado
Collection tabelasAuxiliaresTipos = repositorioUtil.pesquisar(
filtroTabelaAuxiliarTipo, nomePacoteObjeto);
TabelaAuxiliarTipo tabelaAuxiliarTipoNaBase = (TabelaAuxiliarTipo) tabelasAuxiliaresTipos
.iterator().next();
// Verifica se a data de altera��o do objeto gravado na base �
// maior que a na instancia
if ((tabelaAuxiliarTipoNaBase.getUltimaAlteracao()
.after(tabelaAuxiliarTipo.getUltimaAlteracao()))) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.atualizacao.timestamp");
}
// Faz uma referencia ao objeto
tabelaAuxiliarAbstrata = tabelaAuxiliarTipo;
}
// Seta a data/hora
tabelaAuxiliarAbstrata.setUltimaAlteracao(new Date());
// Atualiza objeto
repositorioUtil.atualizar(tabelaAuxiliarAbstrata);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* < <Descri��o do m�todo>>
*
* @param objetoTeste
* Descri��o do par�metro
* @return Descri��o do retorno
* @throws ControladorException
*/
public Object inserirTeste(Object objetoTeste) throws ControladorException {
try {
return repositorioUtil.inserir(objetoTeste);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
/**
* < <Descri��o do m�todo>>
*
* @param filtroTeste
* Descri��o do par�metro
* @param nomePacoteObjeto
* Descri��o do par�metro
* @return Descri��o do retorno
* @throws ControladorException
*/
public Collection pesquisarTeste(Filtro filtroTeste, String nomePacoteObjeto)
throws ControladorException {
try {
return repositorioUtil.pesquisar(filtroTeste, nomePacoteObjeto);
} catch (ErroRepositorioException ex) {
sessionContext.setRollbackOnly();
throw new ControladorException("erro.sistema", ex);
}
}
}