View Javadoc

1   package ecar.email;
2   
3   
4   import java.io.IOException;
5   import java.util.ArrayList;
6   import java.util.Iterator;
7   import java.util.List;
8   
9   import javax.servlet.Filter;
10  import javax.servlet.FilterChain;
11  import javax.servlet.FilterConfig;
12  import javax.servlet.ServletException;
13  import javax.servlet.ServletRequest;
14  import javax.servlet.ServletResponse;
15  import javax.servlet.http.HttpServletRequest;
16  
17  import comum.util.Data;
18  
19  import ecar.dao.ConfiguracaoDao;
20  import ecar.dao.UsuarioDao;
21  import ecar.pojo.ConfiguracaoCfg;
22  import ecar.pojo.UsuarioUsu;
23  
24  /**
25   * Filtro que fecha a sessao corrente do hibernate cada vez que o Web Container processa
26   * uma pagina. O filtro e configurado no web.xml.<br>
27   * 
28   * @author steinmacher
29   */
30  public class AtualizadorEmail implements Filter {
31  
32  	
33      /**
34       * Construtor.<br>
35       * 
36       * @author N/C
37       * @since N/C
38       * @version N/C
39       */
40      public AtualizadorEmail() {
41          super();
42      }
43  
44      /* (non-Javadoc)
45       * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
46       */
47      /**
48       * Inicializador.<br>
49       * 
50       * @author N/C
51       * @since N/C
52       * @version N/C
53       * @param FilterConfig arg0
54       * @throws ServletException
55       */
56      public void init(FilterConfig arg0) throws ServletException {
57      }
58  
59      /* (non-Javadoc)
60       * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
61       */
62      /**
63       * Esse filtro atualiza os mails dos Usuarios.<br>
64       * 
65       * @author N/C
66       * @since N/C
67       * @version N/C
68       * @param ServletRequest request
69       * @param ServletResponse response
70       * @param FilterChain chain
71       * @throws IOException
72       * @throws ServletException
73       */
74      public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
75     		try {
76     	        chain.doFilter(request, response);
77  //			TODO: Criar os campos na tabela configuracaoCfg (hbm+pojo+dao) e ativar as linhas abaixo
78     	        HttpServletRequest httpRequest = (HttpServletRequest) request;
79     			ConfiguracaoDao configDao = new ConfiguracaoDao(httpRequest);
80   	    	ConfiguracaoCfg configuracao =  configDao.getConfiguracao();
81   	    	if (Data.getDataAtual().after(Data.addDias(configuracao.getIntervaloAtualizacaoEmail().intValue() ,configuracao.getUltimaAtualizacaoEmail())))
82   	    	{
83  		    	UsuarioDao usuDao = new UsuarioDao((HttpServletRequest)request);
84  		    	UsuarioUsu usuario = null;
85  		    	Iterator listaIds = usuDao.getListaIdDominio().iterator();
86  		    	List listaUsu = new ArrayList();
87  		    	while (listaIds.hasNext()) 
88  		    	{
89  		    		String idAtual = (String) listaIds.next();
90  		    		usuario = usuDao.getUsuarioByIdDominio(idAtual);
91  		    		if ((!"".equals(usuario.getEmail1UsuSent())) || (!(UsuarioDao.INFORMACAO_NAO_LOCALIZADA_SENTINELA).equals(usuario.getNomeUsu())))
92  		    		{
93  		    			usuario.setEmail1Usu(usuario.getEmail1UsuSent());
94  		    			usuario.setNomeUsu(usuario.getNomeUsuSent());
95  		    			listaUsu.add(usuario);
96  		    		}
97  		    	}
98  		    	if (listaUsu.size() > 0)
99  		    		usuDao.salvarOuAlterar(listaUsu);    	
100 
101 		    	//Após alterar os usuários, guarda a data da atualização em ConfiguracaoCfg
102 		    	String fullUrl;
103 		    	fullUrl = httpRequest.getScheme() + "://" + httpRequest.getServerName();
104 				if (httpRequest.getServerPort() != 80) {
105 					fullUrl += ":" + httpRequest.getServerPort();
106 				}
107 				fullUrl += httpRequest.getContextPath();
108 				
109 				
110 		    	configuracao.setContextPath(fullUrl);
111 		    	configuracao.setUltimaAtualizacaoEmail(Data.getDataAtual());
112    				configDao.salvarOuAlterar(configuracao);
113  	    	}
114 	    } catch (Exception e) {
115 			org.apache.log4j.Logger.getLogger(this.getClass()).error(e);
116 	    }
117     }
118 
119     /* (non-Javadoc)
120      * @see javax.servlet.Filter#destroy()
121      */
122     /**
123      * Destrutor.<br>
124      * 
125      * @author N/C
126      * @since N/C
127      * @version N/C
128      */
129     public void destroy() {
130     }
131 
132 }