package gcom.gui.micromedicao.hidrometro;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.micromedicao.hidrometro.FiltroHidrometro;
import gcom.micromedicao.hidrometro.Hidrometro;
import java.util.Collection;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
* < <Descri��o da Classe>>
*
* @author rodrigo
*/
public class ExibirMovimentarHidrometroAction extends GcomAction {
/**
* < <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 retorno
ActionForward retorno = actionMapping
.findForward("movimentarHidrometro");
//Obt�m a fachada
Fachada fachada = Fachada.getInstancia();
//Obt�m a sess�o
HttpSession sessao = httpServletRequest.getSession(false);
//remove objetos da sess�o vindos do filtro
sessao.removeAttribute("colecaoHidrometroClasseMetrologica");
sessao.removeAttribute("colecaoHidrometroMarca");
sessao.removeAttribute("colecaoHidrometroDiametro");
sessao.removeAttribute("colecaoHidrometroCapacidade");
sessao.removeAttribute("colecaoHidrometroTipo");
sessao.removeAttribute("colecaoHidrometroRelojoaria");
sessao.removeAttribute("ManutencaoRegistroActionForm");
sessao.removeAttribute("ConfirmarMovimentarHidrometroActionForm");
//Obt�m objeto enviado na sess�o
String fixo = (String) sessao.getAttribute("fixo");
//Cria cole��o
Collection colecaoHidrometro = null;
//Verifica se o usu�rio preencheu o filtro pelo fixo e intervalo
if (fixo != null && !fixo.equalsIgnoreCase("")) {
String faixaInicial = (String) sessao.getAttribute("faixaInicial");
String faixaFinal = (String) sessao.getAttribute("faixaFinal");
colecaoHidrometro = fachada.pesquisarNumeroHidrometroFaixa(fixo,
faixaInicial, faixaFinal);
} else {
FiltroHidrometro filtroHidrometro = (FiltroHidrometro) sessao
.getAttribute("filtroHidrometro");
/*FiltroHidrometro filtroHidrometro = (FiltroHidrometro) httpServletRequest
.getAttribute("filtroHidrometro");*/
filtroHidrometro
.adicionarCaminhoParaCarregamentoEntidade("hidrometroMarca");
filtroHidrometro
.adicionarCaminhoParaCarregamentoEntidade("hidrometroCapacidade");
filtroHidrometro
.adicionarCaminhoParaCarregamentoEntidade("hidrometroSituacao");
filtroHidrometro
.adicionarCaminhoParaCarregamentoEntidade("hidrometroLocalArmazenagem");
int totalPesquisa = fachada.totalRegistrosPesquisa(filtroHidrometro,
Hidrometro.class.getName());
if ( totalPesquisa != 0 && totalPesquisa >= 1000 ) {
throw new ActionServletException("atencao.pesquisa_maior_que_permitido", null, "" );
}
colecaoHidrometro = fachada.pesquisar(
filtroHidrometro, Hidrometro.class.getName());
}
//Caso a cole��o seja null
if (colecaoHidrometro == null || colecaoHidrometro.isEmpty()) {
throw new ActionServletException("atencao.naocadastrado", null,
"Hidr�metro");
}
//Envia objeto na sess�o
sessao.setAttribute("colecaoHidrometro", colecaoHidrometro);
//devolve o mapeamento de retorno
return retorno;
}
}