package gcom.gui.cadastro.atualizacaocadastralsimplificado;
import gcom.cadastro.atualizacaocadastralsimplificado.AtualizacaoCadastralSimplificado;
import gcom.cadastro.atualizacaocadastralsimplificado.FiltroAtualizacaoCadastralSimplificado;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.Util;
import gcom.util.filtro.ParametroSimples;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
*
* Carrega os dados necess�rios e redireciona para a p�gina que
* exibe os detalhes da importa��o.
*
* [UC0969] Importar arquivo de atualiza��o cadastral simplificado
*
* @author Samuel Valerio
*
* @date 27/10/2009
*
*
*/
public class ExibirDetalhesAtualizacaoCadastralSimplificadoAction extends GcomAction {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionForward retorno = mapping.findForward("exibirDetalhesAtualizacaoCadastralSimplificado");
String idArquivoTxt = request.getParameter("id");
validarSeIdNaoEhNulo(idArquivoTxt);
int idArquivoTxtInt = validarSeIdEhNumerico(idArquivoTxt);
Fachada fachada = Fachada.getInstancia();
AtualizacaoCadastralSimplificado arquivo = buscarArquivoTxt(idArquivoTxt, fachada);
if (arquivo == null)
throw new ActionServletException(
"atencao.arquivo_texto_nao_encontrado_para_o_id_informado", null, idArquivoTxt);
request.setAttribute("arquivo", arquivo);
request.setAttribute("criticas", fachada.pesquisarAtualizacaoCadastralSimplificadoCritica(idArquivoTxtInt));
return retorno;
}
/**
* Busca o arquivo txt no banco de dados.
*
* @param idArquivoTxt Id do arquivo a ser procurado.
* @param fachada Fachada para invocar o m�todo de busca.
* @return O arquivo texto correspondente ao id procurado.
*/
@SuppressWarnings("unchecked")
private AtualizacaoCadastralSimplificado buscarArquivoTxt(String idArquivoTxt,
Fachada fachada) {
FiltroAtualizacaoCadastralSimplificado filtro = new FiltroAtualizacaoCadastralSimplificado();
filtro.adicionarCaminhoParaCarregamentoEntidade("usuario");
filtro.adicionarParametro(new ParametroSimples(
FiltroAtualizacaoCadastralSimplificado.ID, idArquivoTxt));
AtualizacaoCadastralSimplificado arquivo = (AtualizacaoCadastralSimplificado) Util
.retonarObjetoDeColecao(fachada.pesquisar(filtro,
AtualizacaoCadastralSimplificado.class.getName()));
return arquivo;
}
/**
* Valida se o id do arquivo txt passado como par�metro � num�rico.
* Se for, retornar o valor convertido para inteiro. Caso contr�rio,
* lan�a uma exce��o.
*
* @param idArquivoTxt Id do arquivo txt.
* @return O valor convertido para inteiro.
*/
private int validarSeIdEhNumerico(String idArquivoTxt) {
int idArquivoTxtInt = 0;
try {
idArquivoTxtInt = Integer.parseInt(idArquivoTxt);
} catch (NumberFormatException nfe) {
throw new ActionServletException(
"atencao.arquivo_texto_id_deve_ser_numerico", null, idArquivoTxt);
}
return idArquivoTxtInt;
}
/**
* Valida se o id do arquivo txt informado como par�metro n�o � nulo.
* Se for, lan�a uma exce��o.
*
* @param idArquivoTxt Id do arquivo txt a ser validado.
*/
private void validarSeIdNaoEhNulo(String idArquivoTxt) {
if (idArquivoTxt == null)
throw new ActionServletException(
"atencao.arquivo_texto_id_deve_ser_informado");
}
}