package br.com.centralit.citcorpore.negocio; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import br.com.centralit.citcorpore.bean.GrupoItemConfiguracaoDTO; import br.com.centralit.citcorpore.integracao.GrupoItemConfiguracaoDAO; import br.com.citframework.dto.IDto; import br.com.citframework.excecao.PersistenceException; import br.com.citframework.excecao.ServiceException; import br.com.citframework.service.CrudServiceImpl; import br.com.citframework.util.UtilDatas; public class GrupoItemConfiguracaoServiceEjb extends CrudServiceImpl implements GrupoItemConfiguracaoService { private GrupoItemConfiguracaoDAO dao; @Override protected GrupoItemConfiguracaoDAO getDao() { if (dao == null) { dao = new GrupoItemConfiguracaoDAO(); } return dao; } @Override public boolean VerificaSeCadastrado(final GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO) throws PersistenceException { return this.getDao().VerificaSeCadastrado(grupoItemConfiguracaoDTO); } @Override public Collection<GrupoItemConfiguracaoDTO> listByEvento(final Integer idEvento) throws ServiceException { try { return this.getDao().listByEvento(idEvento); } catch (final Exception e) { throw new ServiceException(e); } } @Override public void updateNotNull(final IDto dto) { try { this.validaUpdate(dto); this.getDao().updateNotNull(dto); } catch (final ServiceException e) { e.printStackTrace(); } catch (final Exception e) { e.printStackTrace(); } } @Override public boolean verificaICRelacionados(final GrupoItemConfiguracaoDTO grupoItemConfiguracao) throws Exception { try { return this.getDao().verificaICRelacionados(grupoItemConfiguracao); } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracaoPai(final Integer idGrupoItemConfiguracaoPai) throws Exception { try { return this.getDao().listByIdGrupoItemConfiguracaoPai(idGrupoItemConfiguracaoPai); } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracaoDesenvolvimento(final Integer idGrupoItemConfiguracaoPai) throws Exception { try { return this.getDao().listByIdGrupoItemConfiguracaoDesenvolvimento(idGrupoItemConfiguracaoPai); } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection<GrupoItemConfiguracaoDTO> listByIdGrupoItemConfiguracao(final Integer idGrupoItemConfiguracaoPai) throws Exception { try { return this.getDao().listByIdGrupoItemConfiguracao(idGrupoItemConfiguracaoPai); } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection listHierarquiaGruposByIdGrupo(final Integer idGrupo, GrupoItemConfiguracaoDAO dao) throws Exception { try { if (dao == null) { dao = this.getDao(); } final Collection col = dao.listByIdGrupoItemConfiguracaoPai(idGrupo); if (col != null && col.size() > 0) { Iterator it = col.iterator(); final Collection colTratada = new ArrayList(); for (; it.hasNext();) { final GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) it.next(); colTratada.add(grupoItemConfiguracaoDTO); } it = colTratada.iterator(); for (; it.hasNext();) { final GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) it.next(); final Collection col2 = this.listHierarquiaGruposByIdGrupo(grupoItemConfiguracaoDTO.getIdGrupoItemConfiguracao(), dao); if (col2 != null && col2.size() > 0) { col.addAll(col2); } } } return col; } catch (final Exception e) { throw new ServiceException(e); } } @Override public Collection listHierarquiaGrupoPaiNull() throws Exception { try { final Collection col = this.getDao().listByIdGrupoItemConfiguracaoPaiNull(); if (col != null && col.size() > 0) { for (final Iterator it = col.iterator(); it.hasNext();) { final GrupoItemConfiguracaoDTO grupoItemConfiguracaoDTO = (GrupoItemConfiguracaoDTO) it.next(); final Collection col2 = this.listHierarquiaGruposByIdGrupo(grupoItemConfiguracaoDTO.getIdGrupoItemConfiguracao(), this.getDao()); if (col2 != null && col2.size() > 0) { col.addAll(col2); } } } return col; } catch (final Exception e) { throw new ServiceException(e); } } @Override public void autenticaGrupoPadrao(final int id, final int idPai, final String nome) throws Exception { final GrupoItemConfiguracaoDTO grupoIC = new GrupoItemConfiguracaoDTO(); grupoIC.setIdGrupoItemConfiguracao(id); grupoIC.setNomeGrupoItemConfiguracao(nome); grupoIC.setIdGrupoItemConfiguracaoPai(idPai); grupoIC.setDataInicio(UtilDatas.getDataAtual()); if (this.getDao().verificaSeExiste(grupoIC)) { final GrupoItemConfiguracaoDTO grupoTemp = (GrupoItemConfiguracaoDTO) this.restore(grupoIC); if (grupoTemp != null) { if (grupoTemp.getDataFim() == null) { this.getDao().updateNotNull(grupoIC); } } } else { try { // Grupo 'wolverine' this.createWithID(grupoIC); } catch (final Exception e) { } } } public IDto createWithID(final IDto obj) throws Exception { return this.getDao().createWithID(obj); } }