package br.com.centralit.citcorpore.negocio; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import br.com.centralit.citcorpore.bean.CategoriaMudancaDTO; import br.com.centralit.citcorpore.integracao.CategoriaMudancaDao; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.CrudServiceImpl; public class CategoriaMudancaServiceEjb extends CrudServiceImpl implements CategoriaMudancaService { private CategoriaMudancaDao dao; @Override protected CategoriaMudancaDao getDao() { if (dao == null) { dao = new CategoriaMudancaDao(); } return dao; } @Override @SuppressWarnings("rawtypes") public Collection findByIdCategoriaMudanca(final Integer parm) throws Exception { try { return this.getDao().findByIdCategoriaMudanca(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByIdCategoriaMudanca(final Integer parm) throws Exception { try { this.getDao().deleteByIdCategoriaMudanca(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override @SuppressWarnings("rawtypes") public Collection findByIdCategoriaMudancaPai(final Integer parm) throws Exception { try { return this.getDao().findByIdCategoriaMudancaPai(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByIdCategoriaMudancaPai(final Integer parm) throws Exception { try { this.getDao().deleteByIdCategoriaMudancaPai(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override @SuppressWarnings("rawtypes") public Collection findByNomeCategoria(final Integer parm) throws Exception { try { return this.getDao().findByNomeCategoria(parm); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void deleteByNomeCategoria(final Integer parm) throws Exception { try { this.getDao().deleteByNomeCategoria(parm); } catch (final Exception e) { throw new ServiceException(e); } } // //// @Override @SuppressWarnings("rawtypes") public Collection listHierarquia() throws Exception { final Collection colFinal = new ArrayList(); try { final Collection col = this.getDao().findCategoriaMudancaSemPai(); if (col != null) { for (final Iterator it = col.iterator(); it.hasNext();) { final CategoriaMudancaDTO categoriaMudancaDto = (CategoriaMudancaDTO) it.next(); categoriaMudancaDto.setNivel(0); colFinal.add(categoriaMudancaDto); final Collection colAux = this.getCollectionHierarquia(categoriaMudancaDto, 0); if (colAux != null && colAux.size() > 0) { colFinal.addAll(colAux); } } } return colFinal; } catch (final Exception e) { throw new ServiceException(e); } } private Collection getCollectionHierarquia(final CategoriaMudancaDTO idCategoriaMudanca, final Integer nivel) throws Exception { final Collection col = this.getDao().findByIdCategoriaMudancaPai(idCategoriaMudanca.getIdCategoriaMudancaPai()); final Collection colFinal = new ArrayList(); if (col != null) { for (final Iterator it = col.iterator(); it.hasNext();) { final CategoriaMudancaDTO categoriaMudancaDto = (CategoriaMudancaDTO) it.next(); categoriaMudancaDto.setNivel(nivel + 1); colFinal.add(categoriaMudancaDto); final Collection colAux = this.getCollectionHierarquia(categoriaMudancaDto, categoriaMudancaDto.getNivel()); if (colAux != null && colAux.size() > 0) { colFinal.addAll(colAux); } } } return colFinal; } @Override public Collection findCategoriaAtivos() { // TODO Auto-generated method stub return null; } }