package gcom.gui.micromedicao; import gcom.fachada.Fachada; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import java.util.Collection; import java.util.Iterator; import java.util.Map; 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; /** * @author Hugo Leonardo * @date 15/03/2010 * */ public class AtualizarMedidorEnergiaRotaAction 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("telaSucesso"); // Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); // Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); Map<String, String[]> requestMap = httpServletRequest.getParameterMap(); // Recupera o ponto de coleta da sess�o Collection colecao = (Collection) sessao.getAttribute("colecaoColetaMedidorEnergia"); ColetaMedidorEnergiaHelper helper = null; String numeroMedidor = null; String matricula = null; if(colecao != null && !colecao.isEmpty()){ Iterator iteratorColecaoMedidor = colecao.iterator(); int valor = 0; // Atualiza os valores do helper while (iteratorColecaoMedidor.hasNext()) { helper = (ColetaMedidorEnergiaHelper) iteratorColecaoMedidor.next(); // teste para ver se existe na p�gina alguma categoria valor++; if (requestMap.get("medidor"+ helper.getImovel()) != null) { numeroMedidor = (requestMap.get("medidor" + helper.getImovel()))[0]; if(numeroMedidor != null && !numeroMedidor.trim().equals("")){ helper.setMedidorEnergia(numeroMedidor); } } } iteratorColecaoMedidor = colecao.iterator(); //Atualiza os novos valores na base while (iteratorColecaoMedidor.hasNext()) { helper = (ColetaMedidorEnergiaHelper) iteratorColecaoMedidor.next(); matricula = helper.getImovel(); numeroMedidor = helper.getMedidorEnergia(); // Atualiza os dados fachada.atualizarNumeroMedidorEnergiaImovel(matricula, numeroMedidor); } } else { // Caso a pesquisa n�o retorne nenhum objeto comunica ao usu�rio; throw new ActionServletException("atencao.pesquisa.nenhumresultado"); } // Monta a p�gina de sucesso if (retorno.getName().equalsIgnoreCase("telaSucesso")) { sessao.removeAttribute("colecaoColetaMedidorEnergia"); montarPaginaSucesso( httpServletRequest,"Medidor de energia atualizado com sucesso.", "Realizar outra Atualiza��o de Medidor de energia.", "exibirInformarMedidorEnergiaRotaAction.do?menu=sim"); } // devolve o mapeamento de retorno return retorno; } }