/**
   * < <Descrição do método>>
   *
   * @param actionMapping Descrição do parâmetro
   * @param actionForm Descrição do parâmetro
   * @param httpServletRequest Descrição do parâmetro
   * @param httpServletResponse Descrição do parâmetro
   * @return Descrição do retorno
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    // Seta o mapeamento de retorno
    ActionForward retorno = actionMapping.findForward("retornarFiltroTabelaAuxiliarTipo");

    DynaValidatorForm pesquisarActionForm = (DynaValidatorForm) actionForm;

    // Obtém a instância da sessão
    HttpSession sessao = httpServletRequest.getSession(false);

    // pega na sessão o nome do tipo do objeto mandado pelo
    // ExibirManterTabelaAuxiliarTipoAction
    String tipoObjeto = (String) sessao.getAttribute("tipo");

    // Recupera os parâmetros do form
    String id = (String) pesquisarActionForm.get("id");
    String descricao = (String) pesquisarActionForm.get("descricao");
    Integer tipo = (Integer) pesquisarActionForm.get("tipo");

    // cria o filtro para Tabela Auxiliar
    FiltroTabelaAuxiliarTipo filtroTabelaAuxiliarTipo = new FiltroTabelaAuxiliarTipo();

    // Insere os parâmetros informados no filtro
    if (id != null && !id.trim().equalsIgnoreCase("")) {
      filtroTabelaAuxiliarTipo.adicionarParametro(
          new ParametroSimples(FiltroTabelaAuxiliarTipo.ID, id));
    }
    if (descricao != null && !descricao.trim().equalsIgnoreCase("")) {
      filtroTabelaAuxiliarTipo.adicionarParametro(
          new ComparacaoTexto(FiltroTabelaAuxiliarTipo.DESCRICAO, descricao));
    }

    if (tipo != null && tipo.intValue() != ConstantesSistema.NUMERO_NAO_INFORMADO) {
      filtroTabelaAuxiliarTipo.adicionarParametro(new ParametroSimples(tipoObjeto, tipo));
    }

    // Manda o filtro pelo request para o ExibirManterTabelaAuxiliar
    httpServletRequest.setAttribute("filtroTabelaAuxiliarTipo", filtroTabelaAuxiliarTipo);
    httpServletRequest.setAttribute("tipo", tipo);
    sessao.removeAttribute("tipo");

    // Devolve o mapeamento de retorno
    return retorno;
  }
  /**
   * < <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);
    }
  }