View Javadoc

1    package ecar.servlet.relatorio.PPA_OrgaoUnidade;
2   
3   import java.math.BigDecimal;
4   import java.util.ArrayList;
5   import java.util.Collection;
6   import java.util.Iterator;
7   import java.util.List;
8   import java.util.Set;
9   import java.util.TreeSet;
10  
11  import javax.servlet.http.HttpServletRequest;
12  
13  import org.apache.log4j.Logger;
14  
15  import ecar.dao.ExercicioDao;
16  import ecar.dao.ItemEstruturaPrevisaoDao;
17  import ecar.dao.OrgaoDao;
18  import ecar.dao.PoderDao;
19  import ecar.dao.UnidadeOrcamentariaDao;
20  import ecar.exception.ECARException;
21  import ecar.pojo.ExercicioExe;
22  import ecar.pojo.ItemEstruturaIett;
23  import ecar.pojo.OrgaoOrg;
24  import ecar.pojo.PoderPod;
25  import ecar.pojo.UnidadeOrcamentariaUO;
26  import ecar.servlet.relatorio.PPA_Orgao.OrgaoComparatorNome;
27  import ecar.servlet.relatorio.PPA_Orgao.PPA_OrgaoBean;
28  import ecar.servlet.relatorio.PPA_Util.CalcularTotalVisitor;
29  
30  /**
31   * Classe de acoplamento do relatorio PPA por Órgão / Unidade com o sistema E-car
32   * 
33   * <BR/>
34   * Arvore de chamada de Metodos ::
35   * 
36   * RelatorioPPAServlet
37   * 	generatePPA
38   * 	  getDados
39   * <BR/>
40   * @author Gabriel Solana
41   * @since 07/2007
42   */
43  public class RelatorioPPAOrgaoUnidadeService {
44  
45  	/**
46  	 * Log da classe
47  	 */
48  	private Logger logger = Logger.getLogger(this.getClass());
49  	
50  	/**
51  	 * Requisicao
52  	 */
53  	private HttpServletRequest request;
54  	
55  	/**
56  	 * Dados do relatorio
57  	 */
58  	private ArrayList<PPA_OrgaoBean> dados;
59  	
60  	/**
61  	 * Calcula os totais na tabela de resumo do relatorio PPA
62  	 */
63  	private final CalcularTotalVisitor calcularTotal = new CalcularTotalVisitor();
64  	
65  	
66  	// indicador de campo
67  	private final int CONSTANTE_PODER = 1;
68  	private final int CONSTANTE_ORGAO = 2;
69  	private final int CONSTANTE_UNIDADE = 3;
70  	
71  	//  MANTIS # 0012100
72  	private final Long CONSTANTE_MINISTERIO_PUBLICO = Long.valueOf( 3L );
73  	// 103 -
74  	private final Long ORGAO_ADMIN_SEPL = Long.valueOf( 103L ); 
75  	private final Long ORGAO_ADMIN_SEFA = Long.valueOf( 104L );
76  	private final Long CONSTANTE_PODER_LEGISLATIVO = Long.valueOf( 1L );
77  	
78  	
79  	// constante de base de dados - Status ativo / inativo
80  	private final Character CONSTANTE_IND_ATIVO = new Character('S');
81  	
82  	// constante de base de dados - Periodo de 2008 - 2011
83  	private final Long CONSTANTE_PERIODO_EXERCICIO = Long.valueOf(2);
84  
85  	/**
86  	 * Listagem de exercicios do periodo
87  	 */
88  	private List<ExercicioExe> listaExercicios = new ArrayList<ExercicioExe>();
89  	
90  	private BigDecimal totalGeral1 = new BigDecimal(0);
91  	private BigDecimal totalGeral2 = new BigDecimal(0);
92  	private BigDecimal totalGeral3 = new BigDecimal(0);
93  	private BigDecimal totalGeral4 = new BigDecimal(0);		
94  	
95  	/*
96  	 * Impossibilita instanciar objeto de classe externa
97  	 */
98  	private RelatorioPPAOrgaoUnidadeService(){
99  		dados = new ArrayList<PPA_OrgaoBean>();
100 	}
101 	
102 	/**
103 	 * Retorna instancia da classe RelatorioPPAProgramaService com parametro de entrada request
104 	 * @param paramRequest
105 	 * @return
106 	 */
107 	public static RelatorioPPAOrgaoUnidadeService getInstance( HttpServletRequest paramRequest ){
108 		RelatorioPPAOrgaoUnidadeService objeto = new RelatorioPPAOrgaoUnidadeService();
109 		objeto.request  = paramRequest;
110 		return objeto;
111 	}
112 
113 	/**
114 	 * Recupera dados e dispara actions para geracao do relatorio
115 	 * @return Listagem
116 	 */
117 	public ArrayList<PPA_OrgaoBean> generatePPA(){
118 		getDados();
119 		gerarContador();
120 		return dados;
121 	}
122 	
123 	public BigDecimal getTotalGeral1(){
124 		return totalGeral1;
125 	}
126 
127 	public BigDecimal getTotalGeral2(){
128 		return totalGeral2;		
129 	}
130 
131 	public BigDecimal getTotalGeral3(){
132 		return totalGeral3;		
133 	}
134 	
135 	public BigDecimal getTotalGeral4(){
136 		return totalGeral4;		
137 	}	
138 	
139 	public BigDecimal getTotalGeral(){
140 		return new BigDecimal(0).add(totalGeral1).add(totalGeral2).add(totalGeral3).add(totalGeral4);
141 	}		
142 	
143 	/**
144 	 * Reordena Colecao de elementos de acordo com objeto Comparator
145 	 * @param list listagem
146 	 * @return Set de objetos reordenados
147 	 */
148 	private Set reordenarOrgao(Collection list){
149 		TreeSet<OrgaoOrg> novalista = new TreeSet<OrgaoOrg>( new OrgaoComparatorNome() );
150 		for (Iterator iter = list.iterator(); iter.hasNext();) {
151 			OrgaoOrg org = (OrgaoOrg) iter.next();
152 			
153 			if ( CONSTANTE_IND_ATIVO.toString().equalsIgnoreCase( org.getIndAtivoOrg() ) ){
154 				novalista.add(org);	
155 			}
156 			
157 		}			
158 		return novalista;
159 	}		
160 	
161 	
162 	private ArrayList<OrgaoOrg> fixarOrgaos(Set<OrgaoOrg> list){
163 		
164 		OrgaoOrg org_SEPL = null;			
165 		OrgaoOrg org_SEFA = null;
166 		
167 		// 13
168 		final Long ORGAO_SECR_FAZENDA = Long.valueOf( 13L );
169 		
170 		// 1
171 		final Long ORGAO_SECR_PLAN = Long.valueOf( 1L );
172 		
173 		ArrayList<OrgaoOrg> novaLista = new ArrayList<OrgaoOrg>();
174 		
175 		// removendo
176 		for (Iterator iter = list.iterator(); iter.hasNext();) {
177 			OrgaoOrg org = (OrgaoOrg) iter.next();
178 			
179 			if ( org.getCodOrg().equals( ORGAO_ADMIN_SEPL )){
180 				org_SEPL = org; 
181 				iter.remove();
182 			}
183 			
184 			if ( org.getCodOrg().equals( ORGAO_ADMIN_SEFA )){
185 				org_SEFA = org;
186 				iter.remove();
187 			}
188 			
189 			
190 			
191 		}
192 		
193 		for (Iterator iter2 = list.iterator(); iter2.hasNext();) {
194 			OrgaoOrg tmp = (OrgaoOrg) iter2.next();
195 			
196 			if ( tmp.getCodOrg().equals( ORGAO_SECR_FAZENDA )  ){
197 				novaLista.add(tmp);
198 				novaLista.add(org_SEFA);
199 			}
200 
201 			if ( tmp.getCodOrg().equals( ORGAO_SECR_PLAN )  ){
202 				novaLista.add(tmp);
203 				novaLista.add(org_SEPL);
204 			}
205 
206 			
207 			if ( tmp.getCodOrg().equals( ORGAO_SECR_FAZENDA )  ){
208 			}else if (  tmp.getCodOrg().equals( ORGAO_SECR_PLAN )  ){
209 			}else{
210 				novaLista.add(tmp);	
211 					
212 			}
213 			
214 		}
215 		
216 		return novaLista;
217 				
218 	}
219 	
220 	
221 	/**
222 	 * Retorna itens para geracao do relatorio PPA
223 	 * 
224 	 * 	- carrega exercicios de periodicidade 2008-2011
225 	 *  - Carrega poderes de indAtivo <S> e periodicidade 2008-2001
226 	 *  	- para cada poder carrega orgaos
227 	 *  		- para cada orgao carrega unidade orcamentaria
228 	 *  			- para cada Unidade Orcamentaria calcula previsao e totaliza bean.
229 	 * 
230 	 */
231 	private void getDados(){
232 		
233 		final PoderDao poderDao = new PoderDao(request);
234 		final OrgaoDao orgaoDao = new OrgaoDao(request);
235 		final UnidadeOrcamentariaDao unidadeDao = new UnidadeOrcamentariaDao(request);
236 
237 		try{
238 			ArrayList<PoderPod> listPoder = poderDao.getPoderesByPeriodicidade(CONSTANTE_PERIODO_EXERCICIO, CONSTANTE_IND_ATIVO);
239 			
240 			// carrega exercicios do periodo de 2008 / 2011
241 			loadExerciciosValidos();
242 			
243 			for (Iterator iter = listPoder.iterator(); iter.hasNext();) {
244 				PoderPod poder = (PoderPod) iter.next();
245 				
246 				if (poder.getIndAtivoPod().equalsIgnoreCase( CONSTANTE_IND_ATIVO.toString() ) ){
247 					
248 					PPA_OrgaoBean orgaoBeanPod = new PPA_OrgaoBean();
249 					orgaoBeanPod.setNome( poder.getNomePod().toUpperCase() );
250 					orgaoBeanPod.setFlag(CONSTANTE_PODER); // indica que eh campo de poder
251 					
252 					ArrayList<OrgaoOrg> listOrgao = orgaoDao.getOrgaoByPeriodicidade(CONSTANTE_PERIODO_EXERCICIO, poder.getCodPod(), CONSTANTE_IND_ATIVO);  
253 					
254 					listOrgao = fixarOrgaos( reordenarOrgao( listOrgao ) );
255 					
256 					//if ( listOrgao!=null && listOrgao.size()>0 ){
257 						dados.add(orgaoBeanPod);	
258 					//}
259 					
260 					BigDecimal totalOrgaoAno1 = new BigDecimal(0);
261 					BigDecimal totalOrgaoAno2 = new BigDecimal(0);
262 					BigDecimal totalOrgaoAno3 = new BigDecimal(0);
263 					BigDecimal totalOrgaoAno4 = new BigDecimal(0);
264 					for (Iterator iterator = listOrgao.iterator(); iterator
265 							.hasNext();) {
266 					
267 						OrgaoOrg orgao = (OrgaoOrg) iterator.next();
268 					
269 						if ( orgao.getIndAtivoOrg().equalsIgnoreCase(CONSTANTE_IND_ATIVO.toString() ) ){
270 							
271 							PPA_OrgaoBean orgaoBeanOrg = new PPA_OrgaoBean();
272 							orgaoBeanOrg.setNome( orgao.getDescricaoOrg() );
273 							orgaoBeanOrg.setFlag(CONSTANTE_ORGAO); // indica que eh campo de orgao
274 							
275 							ArrayList<UnidadeOrcamentariaUO> unidades =  unidadeDao.getUnidadesByPeriodicidade(CONSTANTE_PERIODO_EXERCICIO, orgao.getCodOrg(), CONSTANTE_IND_ATIVO);
276 							
277 							if ( unidades!=null && unidades.size()>0 ){
278 								int contIndireta = 0;
279 								int contDireta = 0;
280 								for (Iterator itUnid = unidades.iterator(); itUnid.hasNext();) {
281 									UnidadeOrcamentariaUO elemento = (UnidadeOrcamentariaUO) itUnid.next();
282 									if ( elemento.getIndTipoAdministracaoUo().equalsIgnoreCase("I")  ){
283 											contIndireta++;
284 									}else{
285 										contDireta++;
286 									}
287 								}
288 								
289 								if (contIndireta > 0 || contDireta>0){
290 									dados.add(orgaoBeanOrg);	
291 								}
292 	
293 							}							
294 							
295 							BigDecimal totalUnidadeAno1 = new BigDecimal(0);
296 							BigDecimal totalUnidadeAno2 = new BigDecimal(0);
297 							BigDecimal totalUnidadeAno3 = new BigDecimal(0);
298 							BigDecimal totalUnidadeAno4 = new BigDecimal(0);
299 							
300 
301 							if ( ORGAO_ADMIN_SEPL.longValue() != orgao.getCodOrg().longValue() &&
302 									ORGAO_ADMIN_SEFA.longValue() != orgao.getCodOrg().longValue() ){
303 
304 
305 								// agrupamento de tipo administracao Direta
306 								PPA_OrgaoBean adminDiretaBean = agruparDiretas(unidades);
307 								if ( adminDiretaBean != null ){
308 									adminDiretaBean.setNome("Administração Direta");
309 									adminDiretaBean.setFlag(CONSTANTE_UNIDADE);
310 									adminDiretaBean.setTpAdminDireta(Boolean.FALSE);
311 									dados.add(adminDiretaBean);
312 	
313 									totalUnidadeAno1 = totalUnidadeAno1.add( adminDiretaBean.getValor1() );
314 									totalUnidadeAno2 = totalUnidadeAno2.add( adminDiretaBean.getValor2() );
315 									totalUnidadeAno3 = totalUnidadeAno3.add( adminDiretaBean.getValor3() );
316 									totalUnidadeAno4 = totalUnidadeAno4.add( adminDiretaBean.getValor4() );
317 									
318 								}
319 								// agrupamento de tipo administracao Direta							
320 							
321 							}
322 							
323 							for (Iterator itUnidade = unidades.iterator(); itUnidade
324 									.hasNext();) {
325 								UnidadeOrcamentariaUO unidade = (UnidadeOrcamentariaUO) itUnidade.next();
326 
327 								if ( unidade.getIndAtivoUo().equalsIgnoreCase( CONSTANTE_IND_ATIVO.toString() ) ){
328 									
329 									if ( unidade.getIndTipoAdministracaoUo()!=null && unidade.getIndTipoAdministracaoUo().equalsIgnoreCase("I") 
330 											|| unidade.getOrgaoOrg().getCodOrg().equals( ORGAO_ADMIN_SEPL)  
331 											|| unidade.getOrgaoOrg().getCodOrg().equals( ORGAO_ADMIN_SEFA)  
332 									){
333 										
334 										PPA_OrgaoBean orgaoBeanUnidade = new PPA_OrgaoBean();
335 										orgaoBeanUnidade.setNome( unidade.getDescricaoUo() );
336 										orgaoBeanUnidade.setFlag( CONSTANTE_UNIDADE ); // indica que eh campo de unidade
337 										orgaoBeanUnidade.setTpAdminDireta(false);
338 										orgaoBeanOrg.setTpAdminDireta(false);
339 										orgaoBeanPod.setTpAdminDireta(false);
340 										
341 										Set itens = unidade.getItemEstruturaIettsByCodUo();
342 				
343 										for (Iterator itItem = itens.iterator(); itItem.hasNext();) {
344 											ItemEstruturaIett itemOrgao = (ItemEstruturaIett) itItem.next();
345 											
346 											if ( CONSTANTE_IND_ATIVO.toString().equalsIgnoreCase(  itemOrgao.getIndAtivoIett() )  ){
347 												if ( itemOrgao.getNivelIett().equals( Integer.valueOf(3) )){ // itens de nivel de acao
348 													
349 													BigDecimal[] previsto = getPrevisao(itemOrgao); 
350 													totalizarBean( orgaoBeanUnidade, previsto );
351 												}
352 											
353 											}
354 											
355 										}
356 										totalUnidadeAno1 = totalUnidadeAno1.add( orgaoBeanUnidade.getValor1() );
357 										totalUnidadeAno2 = totalUnidadeAno2.add( orgaoBeanUnidade.getValor2() );
358 										totalUnidadeAno3 = totalUnidadeAno3.add( orgaoBeanUnidade.getValor3() );
359 										totalUnidadeAno4 = totalUnidadeAno4.add( orgaoBeanUnidade.getValor4() );
360 										
361 										if ( (!unidade.getOrgaoOrg().getCodOrg().equals( ORGAO_ADMIN_SEPL)) && (!unidade.getOrgaoOrg().getCodOrg().equals( ORGAO_ADMIN_SEFA) ) ){
362 											dados.add(orgaoBeanUnidade);	
363 										}
364 										
365 
366 										
367 									}	
368 									
369 									
370 									
371 								}
372 								
373 							}
374 							orgaoBeanOrg.setValor1( totalUnidadeAno1 );
375 							orgaoBeanOrg.setValor2( totalUnidadeAno2 );
376 							orgaoBeanOrg.setValor3( totalUnidadeAno3 );
377 							orgaoBeanOrg.setValor4( totalUnidadeAno4 );
378 							calcularTotal.visit(orgaoBeanOrg);
379 							
380 							
381 							
382 							totalOrgaoAno1 = totalOrgaoAno1.add( orgaoBeanOrg.getValor1() );
383 							totalOrgaoAno2 = totalOrgaoAno2.add( orgaoBeanOrg.getValor2() );
384 							totalOrgaoAno3 = totalOrgaoAno3.add( orgaoBeanOrg.getValor3() );
385 							totalOrgaoAno4 = totalOrgaoAno4.add( orgaoBeanOrg.getValor4() );						
386 							
387 						}
388 						
389 					}
390 					orgaoBeanPod.setValor1( totalOrgaoAno1 );
391 					orgaoBeanPod.setValor2( totalOrgaoAno2 );
392 					orgaoBeanPod.setValor3( totalOrgaoAno3 );
393 					orgaoBeanPod.setValor4( totalOrgaoAno4 );
394 					calcularTotal.visit(orgaoBeanPod);					
395 					
396 					totalGeral1 = totalGeral1.add( orgaoBeanPod.getValor1() );
397 					totalGeral2 = totalGeral2.add( orgaoBeanPod.getValor2() );
398 					totalGeral3 = totalGeral3.add( orgaoBeanPod.getValor3() );
399 					totalGeral4 = totalGeral4.add( orgaoBeanPod.getValor4() );						
400 					
401 					
402 				}
403 				
404 
405 				
406 			}
407 			
408 			//removeDiretas();
409 			
410 		}catch (Exception e) {
411 			logger.error("Nao foi possivel carregar dados do relatorio", e);
412 			listError();
413 		}
414 		
415 	}
416 		
417 
418 	/**
419 	 * Agrupa todas as unidades Orçamentarias do tipo Administração Direta.
420 	 * @param unidades orçamentarias
421 	 * @return Pojo com os valores previstos somados.
422 	 * @throws ECARException
423 	 */
424 	private PPA_OrgaoBean agruparDiretas(ArrayList unidades) throws ECARException{
425 		
426 		ArrayList<UnidadeOrcamentariaUO> somenteDiretas = new ArrayList<UnidadeOrcamentariaUO>();
427 		PPA_OrgaoBean adminDiretaTmp = new PPA_OrgaoBean();
428 		
429 		// filtra somente tipo administracao Direta
430 		for (Iterator iter = unidades.iterator(); iter.hasNext();) {
431 			UnidadeOrcamentariaUO unidade = (UnidadeOrcamentariaUO) iter.next();
432 		
433 			if ( unidade.getIndTipoAdministracaoUo().equals("D")){
434 				somenteDiretas.add(unidade);
435 			}
436 			
437 		}
438 		
439 		if ( somenteDiretas.isEmpty() ){
440 			return null;			
441 		}
442 		
443 		for (Iterator iter2 = somenteDiretas.iterator(); iter2.hasNext();) {
444 			UnidadeOrcamentariaUO unidTmp = (UnidadeOrcamentariaUO) iter2.next();
445 			
446 			Set itens = unidTmp.getItemEstruturaIettsByCodUo();
447 			
448 			for (Iterator itItem = itens.iterator(); itItem.hasNext();) {
449 				ItemEstruturaIett itemOrgao = (ItemEstruturaIett) itItem.next();
450 				
451 				if ( CONSTANTE_IND_ATIVO.toString().equalsIgnoreCase( itemOrgao.getIndAtivoIett()) ){
452 					if ( itemOrgao.getNivelIett().equals( Integer.valueOf(3) )){ // itens de nivel de acao
453 						
454 						BigDecimal[] previsto = getPrevisao(itemOrgao); 
455 						totalizarBean( adminDiretaTmp , previsto );
456 					}														
457 				
458 				}
459 				
460 			}		
461 			
462 		}
463 		
464 		return adminDiretaTmp;
465 	}
466 	
467 	
468 	/**
469 	 * Indexador da List de dados
470 	 *
471 	 */
472 	private void gerarContador(){
473 		
474 		int cont = 0;
475 		for (Iterator iter = dados.iterator(); iter.hasNext();) {
476 			PPA_OrgaoBean elemento = (PPA_OrgaoBean) iter.next();
477 			elemento.setIndice(cont);
478 			cont++;
479 		}
480 		
481 	}
482 	
483 	/**
484 	 * Soma valores de previsao e atribui ao bean PPA_OrgaoBean
485 	 * @param orgaoBean
486 	 * @param valores
487 	 */
488 	private void totalizarBean(PPA_OrgaoBean orgaoBean, BigDecimal[] valores){
489 		
490 		final BigDecimal ZERO = new BigDecimal(0);
491 		
492 		try {
493 			if( valores!=null && valores.length == 4 ){
494 				
495 				BigDecimal vlr1 = orgaoBean.getValor1();
496 				BigDecimal vlr2 = orgaoBean.getValor2();
497 				BigDecimal vlr3 = orgaoBean.getValor3();
498 				BigDecimal vlr4 = orgaoBean.getValor4();
499 				
500 				orgaoBean.setValor1( vlr1.add( valores[0]==null?ZERO:valores[0] ) );
501 				orgaoBean.setValor2( vlr2.add( valores[1]==null?ZERO:valores[1] ) );
502 				orgaoBean.setValor3( vlr3.add( valores[2]==null?ZERO:valores[2] ) );
503 				orgaoBean.setValor4( vlr4.add( valores[3]==null?ZERO:valores[3] ) );
504 				calcularTotal.visit(orgaoBean);
505 				
506 			}else{
507 				orgaoBean.setValor1( ZERO );
508 				orgaoBean.setValor2( ZERO );
509 				orgaoBean.setValor3( ZERO );
510 				orgaoBean.setValor4( ZERO );
511 				orgaoBean.setTotal( ZERO );
512 			}
513 		} catch (Exception e) {
514 			logger.error("Nao foi possivel totalizar bean: " + orgaoBean.getNome(),  e);
515 		}
516 		
517 		
518 	}
519 	
520 	
521 	/**
522 	 * Carrega valores de previsao - <valor aprovado> para cada exercicio
523 	 */
524 	private BigDecimal[] getPrevisao(final ItemEstruturaIett itemEstrut ) throws ECARException{
525 		
526 		final ExercicioDao exercicioDao = new ExercicioDao(request);
527 		final ItemEstruturaPrevisaoDao prevDao = new ItemEstruturaPrevisaoDao(request);
528 			
529 		ArrayList<BigDecimal> previsao = new ArrayList<BigDecimal>();
530 		BigDecimal previsaoItem = null;
531 		for (Iterator iterExer = listaExercicios.iterator(); iterExer.hasNext();) {
532 			ExercicioExe elementoExerc = (ExercicioExe) iterExer.next();
533 			previsaoItem =  prevDao.previsaoItemAcao( itemEstrut.getCodIett(), elementoExerc.getCodExe() ) ;
534 			previsao.add(previsaoItem);
535 		}
536 		return previsao.toArray(new BigDecimal[previsao.size()]);
537 
538 	}	
539 	
540 	/**
541 	 * Carrega exercicios do periodo de 2008 - 2011
542 	 *
543 	 */
544 	private void loadExerciciosValidos(){
545 		
546 		try {
547 			
548 			final ExercicioDao exercicioDao = new ExercicioDao(request);
549 			
550 			// carrega todos os exercicios do periodo de 2008 / 2011
551 			listaExercicios = exercicioDao.getExercicioByPeriodicidade( CONSTANTE_PERIODO_EXERCICIO );
552 			
553 		} catch (ECARException e) {
554 			logger.error("Nao foi possivel carregar Exercicio", e);
555 		} catch (Exception e) {
556 			logger.error("Nao foi possivel carregar Exercicio", e);			
557 		}				
558 		
559 	}
560 	
561 	/**
562 	 * Popula list com bean vazio
563 	 *
564 	 */
565 	private void listError(){
566 		dados = new ArrayList<PPA_OrgaoBean>();
567 		PPA_OrgaoBean novoBean = new PPA_OrgaoBean();
568 		novoBean.setNome("Vazio");
569 		dados.add(novoBean);
570 	}
571 	
572 }