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 gcom.util.ConstantesSistema; 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; public class FiltrarHidrometroMovimentacaoAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o retorno ActionForward retorno = actionMapping .findForward("filtrarHidrometroMovimentacao"); //Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); //HidrometroActionForm HidrometroActionForm = (HidrometroActionForm) actionForm; FiltroHidrometro filtroHidrometro = new FiltroHidrometro(); // Local para recebimento dos par�metros da pesquisa //boolean peloMenosUmParametroInformado = false; boolean peloMenosUmParametroInformado = true; // Local para adicionar os parametros recebidos no objeto filtro //Erro caso o usu�rio mandou filtrar sem nenhum par�metro if (!peloMenosUmParametroInformado) { throw new ActionServletException( "atencao.filtro.nenhum_parametro_informado"); } //Retorna Hidrometro Collection colecaoPesquisa = fachada.pesquisar(filtroHidrometro, Hidrometro.class.getName()); if (colecaoPesquisa == null || colecaoPesquisa.isEmpty()) { //Hidrometro nao encontrado throw new ActionServletException( "atencao.pesquisa.nenhumresultado", null, "Hidr�metro"); } else { if (colecaoPesquisa.size() > ConstantesSistema.NUMERO_MAXIMO_REGISTROS_PESQUISA) { //O limite de registros foi ultrapassado throw new ActionServletException( "atencao.pesquisa.muitosregistros"); } else { sessao.setAttribute("colecaoHidrometro", colecaoPesquisa); } } //devolve o mapeamento de retorno return retorno; } }