/**
   * Carrega coleção de motivo do corte.
   *
   * @author Leonardo Regis
   * @date 23/09/2006
   * @param sessao
   */
  private void getMotivoCorteCollection(HttpSession sessao) {
    // Filtro para o campo Motivo do Corte
    FiltroMotivoCorte filtroMotivoCorteLigacaoAgua = new FiltroMotivoCorte();
    filtroMotivoCorteLigacaoAgua.adicionarParametro(
        new ParametroSimples(
            FiltroMotivoCorte.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO));
    filtroMotivoCorteLigacaoAgua.setCampoOrderBy(FiltroMotivoCorte.DESCRICAO);

    Collection colecaoMotivoCorteLigacaoAgua =
        this.getFachada().pesquisar(filtroMotivoCorteLigacaoAgua, MotivoCorte.class.getName());
    if (colecaoMotivoCorteLigacaoAgua != null && !colecaoMotivoCorteLigacaoAgua.isEmpty()) {
      sessao.setAttribute("colecaoMotivoCorteLigacaoAgua", colecaoMotivoCorteLigacaoAgua);
    } else {
      throw new ActionServletException("atencao.naocadastrado", null, "Motivo do Corte");
    }
  }
  /**
   * Este caso de uso permite a inclusão de um motivo de corte
   *
   * <p>[UC0754] Inserir Motivo de Corte
   *
   * @author Vinícius Medeiros
   * @date 27/03/2008
   * @param actionMapping
   * @param actionForm
   * @param httpServletRequest
   * @param httpServletResponse
   * @return
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

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

    // Mudar isso quando tiver esquema de segurança
    HttpSession sessao = httpServletRequest.getSession(false);

    // Obtém a instância da fachada
    Fachada fachada = Fachada.getInstancia();

    InserirMotivoCorteActionForm inserirMotivoCorteActionForm =
        (InserirMotivoCorteActionForm) actionForm;

    String descricao = inserirMotivoCorteActionForm.getDescricao();

    MotivoCorte motivoCorte = new MotivoCorte();
    Collection colecaoPesquisa = null;

    // Verifica se o campo Descrição está preenchido
    if (!"".equals(inserirMotivoCorteActionForm.getDescricao())) {
      motivoCorte.setDescricao(inserirMotivoCorteActionForm.getDescricao());
    } else {
      throw new ActionServletException("atencao.required", null, "descrição");
    }

    // Ultima alteração
    motivoCorte.setUltimaAlteracao(new Date());

    // Indicador de uso
    Short iu = 1;
    motivoCorte.setIndicadorUso(iu);

    FiltroMotivoCorte filtroMotivoCorte = new FiltroMotivoCorte();

    filtroMotivoCorte.adicionarParametro(
        new ParametroSimples(FiltroMotivoCorte.DESCRICAO, motivoCorte.getDescricao()));

    colecaoPesquisa =
        (Collection) fachada.pesquisar(filtroMotivoCorte, MotivoCorte.class.getName());

    // Caso já haja um Motivo Corte com a descriçao passada
    if (colecaoPesquisa != null && !colecaoPesquisa.isEmpty()) {
      //
      throw new ActionServletException(
          "atencao.motivo_corte_ja_cadastrado", null, motivoCorte.getDescricao());
    } else {
      // Caso não haja, irá inserir
      motivoCorte.setDescricao(descricao);

      Integer idMotivoCorte = (Integer) fachada.inserir(motivoCorte);

      montarPaginaSucesso(
          httpServletRequest,
          "Motivo de Corte de código " + idMotivoCorte + " inserido com sucesso.",
          "Inserir outro Motivo de Corte",
          "exibirInserirMotivoCorteAction.do?menu=sim",
          "exibirAtualizarMotivoCorteAction.do?idRegistroAtualizacao=" + idMotivoCorte,
          "Atualizar Motivo de Corte Inserido");

      sessao.removeAttribute("InserirMotivoCorteActionForm");

      return retorno;
    }
  }