package gcom.gui.cadastro.imovel; import gcom.cadastro.cliente.ClienteImovel; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; 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 ExibirManterImovelAction extends GcomAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { HttpSession sessao = httpServletRequest.getSession(false); Fachada fachada = Fachada.getInstancia(); sessao.removeAttribute("imoveisFiltrados"); ImovelParams imovelParams = new ImovelParams(sessao); int totalRegistros = getTotalRegistros(fachada, imovelParams); ActionForward retorno = actionMapping.findForward("manterImovel"); retorno = this.controlarPaginacao(httpServletRequest, retorno, totalRegistros); Collection<ClienteImovel> imoveis = getImoveis(httpServletRequest, fachada, imovelParams); if (imoveis != null && !imoveis.isEmpty()) { Collection<ClienteImovel> imoveisLista = carregaListaImoveis(imoveis); if (httpServletRequest.getAttribute("atualizar") != null && imoveisLista.size() == 1) { retorno = configuraRetornoImovelUnico(actionMapping, httpServletRequest, imoveisLista); } else { sessao.setAttribute("imoveisFiltrados", imoveisLista); } } else { throw new ActionServletException("atencao.pesquisa.nenhumresultado", null, "Im�vel"); } return retorno; } private ActionForward configuraRetornoImovelUnico(ActionMapping actionMapping, HttpServletRequest httpServletRequest, Collection<ClienteImovel> imoveisLista) { ActionForward retorno = actionMapping.findForward("atualizarImovel"); ClienteImovel imovelUnico = (ClienteImovel) imoveisLista.iterator().next(); httpServletRequest.setAttribute("idRegistroAtualizacao", imovelUnico.getImovel().getId().toString()); httpServletRequest.setAttribute("atualizar","atualizar"); return retorno; } private Collection<ClienteImovel> carregaListaImoveis(Collection<ClienteImovel> imoveis) { Iterator<ClienteImovel> iteratorImoveis = imoveis.iterator(); Collection<ClienteImovel> imoveisLista = new ArrayList<ClienteImovel>(); while (iteratorImoveis.hasNext()) { imoveisLista.add(iteratorImoveis.next()); } return imoveisLista; } private Collection<ClienteImovel> getImoveis(HttpServletRequest httpServletRequest, Fachada fachada, ImovelParams imovelParams) { @SuppressWarnings("unchecked") Collection<ClienteImovel> imoveis = fachada.pesquisarImovel(imovelParams.idImovel, imovelParams.idLocalidade, imovelParams.codigoSetorComercial, imovelParams.numeroQuadra, imovelParams.lote, imovelParams.subLote, imovelParams.codigoCliente, imovelParams.idMunicipio, imovelParams.cep, imovelParams.idBairro, imovelParams.idLogradouro, imovelParams.numeroImovelInicial, imovelParams.numeroImovelFinal, false, false, ((Integer) httpServletRequest.getAttribute("numeroPaginasPesquisa"))); return imoveis; } private int getTotalRegistros(Fachada fachada, ImovelParams imovelParams) { int totalRegistros = fachada.pesquisarQuantidadeImovel(imovelParams.idImovel, imovelParams.idLocalidade, imovelParams.codigoSetorComercial, imovelParams.numeroQuadra, imovelParams.lote, imovelParams.subLote, imovelParams.codigoCliente, imovelParams.idMunicipio, imovelParams.cep, imovelParams.idBairro, imovelParams.idLogradouro, imovelParams.numeroImovelInicial, imovelParams.numeroImovelFinal, false, false).intValue(); return totalRegistros; } private class ImovelParams{ public String idLocalidade; public String codigoSetorComercial; public String numeroQuadra; public String lote; public String subLote; public String codigoCliente; public String idMunicipio; public String cep; public String idBairro; public String idLogradouro; public String idImovel; public String numeroImovelInicial; public String numeroImovelFinal; public ImovelParams(HttpSession sessao){ idLocalidade = (String) sessao.getAttribute("idLocalidade"); codigoSetorComercial = (String) sessao.getAttribute("idSetorComercial"); numeroQuadra = (String) sessao.getAttribute("idQuadra"); lote = (String) sessao.getAttribute("lote"); subLote = (String) sessao.getAttribute("subLote"); codigoCliente = (String) sessao.getAttribute("codigoCliente"); idMunicipio = (String) sessao.getAttribute("idMunicipio"); cep = (String) sessao.getAttribute("cep"); idBairro = (String) sessao.getAttribute("idBairro"); idLogradouro = (String) sessao.getAttribute("idLogradouro"); idImovel = (String) sessao.getAttribute("idImovel"); numeroImovelInicial = (String) sessao.getAttribute("numeroImovelInicial"); numeroImovelFinal = (String) sessao.getAttribute("numeroImovelFinal"); } } }