Java tutorial
/******************************************************************************* * Copyright (c) 2006 - 2011 SJRJ. * * This file is part of SIGA. * * SIGA is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SIGA is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SIGA. If not, see <http://www.gnu.org/licenses/>. ******************************************************************************/ /* * Criado em 13/09/2005 * * To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates */ package br.gov.jfrj.siga.vraptor; import java.lang.reflect.InvocationTargetException; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.TreeMap; import javax.persistence.EntityManager; import javax.servlet.http.HttpServletRequest; import org.apache.commons.beanutils.PropertyUtils; import br.com.caelum.vraptor.Result; import br.gov.jfrj.siga.base.AplicacaoException; import br.gov.jfrj.siga.base.Texto; import br.gov.jfrj.siga.cp.CpConfiguracao; import br.gov.jfrj.siga.cp.CpGrupo; import br.gov.jfrj.siga.cp.CpGrupoDeEmail; import br.gov.jfrj.siga.cp.CpPerfil; import br.gov.jfrj.siga.cp.CpPerfilJEE; import br.gov.jfrj.siga.cp.CpSituacaoConfiguracao; import br.gov.jfrj.siga.cp.CpTipoConfiguracao; import br.gov.jfrj.siga.cp.CpTipoGrupo; import br.gov.jfrj.siga.cp.bl.Cp; import br.gov.jfrj.siga.cp.bl.CpConfiguracaoBL; import br.gov.jfrj.siga.cp.grupo.ConfiguracaoGrupo; import br.gov.jfrj.siga.cp.grupo.ConfiguracaoGrupoEmail; import br.gov.jfrj.siga.cp.grupo.ConfiguracaoGrupoFabrica; import br.gov.jfrj.siga.cp.grupo.ConfiguracaoGrupoFormula; import br.gov.jfrj.siga.cp.grupo.TipoConfiguracaoGrupoEnum; import br.gov.jfrj.siga.cp.model.CpGrupoDeEmailSelecao; import br.gov.jfrj.siga.cp.model.DpLotacaoSelecao; import br.gov.jfrj.siga.dp.DpLotacao; import br.gov.jfrj.siga.dp.dao.CpDao; import br.gov.jfrj.siga.dp.dao.CpGrupoDaoFiltro; import br.gov.jfrj.siga.model.Objeto; import br.gov.jfrj.siga.model.Selecionavel; import br.gov.jfrj.siga.model.dao.ModeloDao; import com.google.common.base.Optional; public abstract class GrupoController<T extends CpGrupo> extends GiSelecionavelControllerSupport<T, CpGrupoDaoFiltro> { public GrupoController(HttpServletRequest request, Result result, CpDao dao, SigaObjects so, EntityManager em) { super(request, result, dao, so, em); } /** * */ private static final long serialVersionUID = 3768576909382652437L; // Campos da lista de configuraes do grupo private ArrayList<ConfiguracaoGrupo> configuracoesGrupo; private String conteudoConfiguracaoNova; private CpTipoGrupo cpTipoGrupo; private String dscCpTipoGrupo; private String dscGrupo; private DpLotacaoSelecao lotacaoGestoraSel; // erro private Exception exception; private CpGrupoDeEmailSelecao grupoPaiSel; // Texto endereco email, // etc. , conforme // codigoTipoConfiguracao. // Campos para uma nova configurao par ao grupo private String idConfiguracaoNova; // Lista de grupos est em itens da superclasse // campos do grupo private Long idCpGrupo; private Long orgaoUsu; private String siglaGrupo; private CpTipoConfiguracao tipoConfiguracao; private List<TipoConfiguracaoGrupoEnum> tiposConfiguracaoGrupoParaTipoDeGrupo; // Carga inicial private List<CpTipoGrupo> tiposDeGrupo; @Override public String aBuscar(String sigla, String postback) throws Exception { if (postback == null) setOrgaoUsu(getLotaTitular().getOrgaoUsuario().getIdOrgaoUsu()); return super.aBuscar(sigla, postback); } /** * Seleciona um procedimento que ter suas permisses configuradas. * * @return * @throws Exception */ public String aConfigurar() throws Exception { return "SUCESS"; } /* * Prepara a edio do grupo selecionado na lista */ public String aEditar(Long idCpGrupo) throws Exception { List<String> idConfiguracao = new ArrayList<String>(); List<String> codigoTipoConfiguracao = new ArrayList<String>(); List<String> conteudoConfiguracao = new ArrayList<String>(); Cp.getInstance().getConf().limparCacheSeNecessario(); Integer t_idTpGrupo = getIdTipoGrupo(); setCpTipoGrupo(dao().consultar(t_idTpGrupo, CpTipoGrupo.class, false)); // idCpGrupo vazio indica incluso if (idCpGrupo == null || idCpGrupo.equals("")) { dscGrupo = ""; siglaGrupo = ""; tiposConfiguracaoGrupoParaTipoDeGrupo = obterTiposConfiguracaoGrupoParaTipoDeGrupo(getCpTipoGrupo()); configuracoesGrupo = new ArrayList<ConfiguracaoGrupo>(); return "edita"; } else { setIdCpGrupo(idCpGrupo); CpGrupo grp; grp = daoGrupo(idCpGrupo); if (grp == null) { throw new AplicacaoException("Grupo no encontrado para Id do grupo: " + idCpGrupo + "."); } if (!grp.isAtivo()) { throw new AplicacaoException( "Grupo antigo no pode ser editado. Favor atualizar a pgina da lista de grupos antes de selecionar um grupo para edio."); } dscGrupo = grp.getDscGrupo(); siglaGrupo = grp.getSiglaGrupo(); getGrupoPaiSel().buscarPorObjeto(grp.getCpGrupoPai()); CpTipoGrupo tpGrp = grp.getCpTipoGrupo(); tiposConfiguracaoGrupoParaTipoDeGrupo = obterTiposConfiguracaoGrupoParaTipoDeGrupo(tpGrp); dscCpTipoGrupo = tpGrp.getDscTpGrupo(); try { configuracoesGrupo = Cp.getInstance().getConf().obterCfgGrupo(grp); for (ConfiguracaoGrupo t_cfgConfiguracaoGrupo : configuracoesGrupo) { CpConfiguracao t_cpcConfiguracaoCorrente = t_cfgConfiguracaoGrupo.getCpConfiguracao(); Long t_lngIdConfiguracao = t_cpcConfiguracaoCorrente.getIdConfiguracao(); idConfiguracao.add(t_lngIdConfiguracao.toString()); TipoConfiguracaoGrupoEnum t_tpcTipo = t_cfgConfiguracaoGrupo.getTipo(); codigoTipoConfiguracao.add(String.valueOf(t_tpcTipo.getCodigo())); String t_strConteudoConfiguracaoCorrente = t_cfgConfiguracaoGrupo.getConteudoConfiguracao(); conteudoConfiguracao.add(t_strConteudoConfiguracaoCorrente); } } catch (Exception e) { throw new AplicacaoException( MessageFormat.format("Id do grupo: {0} erro ao obter configuraes do grupo.", idCpGrupo), 0, e); } } result.include("idConfiguracao", idConfiguracao); result.include("codigoTipoConfiguracao", codigoTipoConfiguracao); result.include("conteudoConfiguracao", conteudoConfiguracao); return "edita"; } /** * Exclui o grupo e as configuraes A excluso no caso lgica: atribui a * data de fim de vigncia das configuraes do grupo e tambm a data de fim * do grupo. * * @throws AplicacaoException */ public String aExcluir(Long idCpGrupo) throws Exception { try { ModeloDao.iniciarTransacao(); Date dt = dao().consultarDataEHoraDoServidor(); CpGrupo grp = daoGrupo(idCpGrupo); configuracoesGrupo = Cp.getInstance().getConf().obterCfgGrupo(grp); for (ConfiguracaoGrupo t_cfgConfiguracaoGrupo : configuracoesGrupo) { CpConfiguracao t_cpcConfiguracao = t_cfgConfiguracaoGrupo.getCpConfiguracao(); t_cpcConfiguracao.setHisDtFim(dt); dao().gravarComHistorico(t_cpcConfiguracao, getIdentidadeCadastrante()); } grp.setHisDtFim(dt); dao().gravarComHistorico(grp, getIdentidadeCadastrante()); ModeloDao.commitTransacao(); } catch (Exception e) { ModeloDao.rollbackTransacao(); throw new AplicacaoException("Erro ao excluir grupo de id: " + idCpGrupo + ".", 0, e); } return "lista"; } public CpGrupo daoGrupo(Long id) { if (id == null) { return null; } else { return dao().consultar(id, CpGrupo.class, false); } } /** * Grava o grupo e as configuraes * @param idConfiguracao TODO * * @throws AplicacaoException * @throws IllegalAccessException * @throws InstantiationException * @throws InvocationTargetException */ public Long aGravar(Long idCpGrupo, String siglaGrupo, String dscGrupo, CpGrupoDeEmailSelecao grupoPaiSel, Integer codigoTipoConfiguracaoNova, String conteudoConfiguracaoNova, List<String> idConfiguracao, List<String> codigoTipoConfiguracao, List<String> conteudoConfiguracao) throws Exception { if (siglaGrupo == null) { throw new AplicacaoException("A sigla do grupo deve ser definida!"); } idConfiguracao = Optional.fromNullable(idConfiguracao).or(new ArrayList<String>()); codigoTipoConfiguracao = Optional.fromNullable(codigoTipoConfiguracao).or(new ArrayList<String>()); conteudoConfiguracao = Optional.fromNullable(conteudoConfiguracao).or(new ArrayList<String>()); try { CpGrupo grp = null; CpGrupo grpNovo = null; Date dt = dao().consultarDataEHoraDoServidor(); CpTipoGrupo tpGrp = obterCpTipoGrupoPorId(getIdTipoGrupo()); if (tpGrp == null) { throw new AplicacaoException("Tipo de grupo nulo para Id do grupo: " + idCpGrupo); } // Substituir isso por uma fbrica // if (tpGrp.getIdTpGrupo() == CpTipoGrupo.TIPO_GRUPO_GRUPO_DE_DISTRIBUICAO) grpNovo = new CpGrupoDeEmail(); if (tpGrp.getIdTpGrupo() == CpTipoGrupo.TIPO_GRUPO_PERFIL_DE_ACESSO) grpNovo = new CpPerfil(); if (tpGrp.getIdTpGrupo() == CpTipoGrupo.TIPO_GRUPO_PERFIL_JEE) grpNovo = new CpPerfilJEE(); if (idCpGrupo == null) { grpNovo.setCpTipoGrupo(tpGrp); grpNovo.setOrgaoUsuario(getLotaTitular().getOrgaoUsuario()); } else { grp = (CpGrupo) Objeto.getImplementation(daoGrupo(idCpGrupo)); PropertyUtils.copyProperties(grpNovo, grp); grpNovo.setIdGrupo(null); } grpNovo.setCpGrupoPai(grupoPaiSel != null ? grupoPaiSel.getObjeto() : null); grpNovo.setDscGrupo(dscGrupo); grpNovo.setSiglaGrupo(siglaGrupo); dao().iniciarTransacao(); grp = (CpGrupo) dao().gravarComHistorico(grpNovo, grp, dt, getIdentidadeCadastrante()); idCpGrupo = grp.getIdGrupo(); // Fabrica ConfiguracaoGrupoFabrica fabrica = new ConfiguracaoGrupoFabrica(); // grava uma nova configurao TipoConfiguracaoGrupoEnum tpCfgGrpEnum = TipoConfiguracaoGrupoEnum.obterPara(tpGrp, codigoTipoConfiguracaoNova); if (tpCfgGrpEnum != null) { ConfiguracaoGrupo cfgGrp = fabrica.getInstance(tpCfgGrpEnum); if (isConfiguracaoAvancada(cfgGrp) && !podeEditarConfiguracoesAvancadas()) { throw new AplicacaoException("Voc no tem permisso para configurar " + tpCfgGrpEnum.getDescricao() + ". Por favor, entre em contato com o suporte tcnico para realizar tal configurao."); } if (conteudoConfiguracaoNova != null) { cfgGrp.setConteudoConfiguracao(conteudoConfiguracaoNova); } if (conteudoConfiguracaoNova == null || cfgGrp.getConteudoConfiguracao() == null || cfgGrp.getConteudoConfiguracao().equals("")) { throw new AplicacaoException("Erro ao gravar nova configurao para o grupo: contedo do(a) " + tpCfgGrpEnum.getDescricao() + " inexistente! "); } CpConfiguracao cfg = new CpConfiguracao(); cfg.setCpTipoConfiguracao(tipoConfiguracao); cfg.setHisDtIni(dt); cfgGrp.setCpConfiguracao(cfg); cfgGrp.setCpGrupo(grp); cfgGrp.atualizarCpConfiguracao(); dao().gravarComHistorico(cfg, getIdentidadeCadastrante()); } // processa as configuraes existentes configuracoesGrupo = Cp.getInstance().getConf().obterCfgGrupo(grp); for (int i = 0; i < idConfiguracao.size(); i++) { Long idCfg = Long.parseLong(idConfiguracao.get(i)); for (ConfiguracaoGrupo cfgGrpGravada : configuracoesGrupo) { Long idCfgGravada = cfgGrpGravada.getCpConfiguracao().getIdConfiguracao(); if (idCfgGravada.equals(idCfg)) { Integer tpCfg = Integer.parseInt(codigoTipoConfiguracao.get(i)); // Remoo de uma configurao gravada antes if (tpCfg.equals(-1)) { // excluso remove apenas logicamente, deixa o // registro antigo como log if (isConfiguracaoAvancada(cfgGrpGravada) && !podeEditarConfiguracoesAvancadas()) { throw new AplicacaoException("Voc no tem permisso para remover " + cfgGrpGravada.getTipo().getDescricao() + ". Por favor, entre em contato com o suporte tcnico para realizar tal configurao."); } cfgGrpGravada.getCpConfiguracao().setHisDtFim(dt); dao().gravarComHistorico(cfgGrpGravada.getCpConfiguracao(), getIdentidadeCadastrante()); } else { String cfgConteudo = conteudoConfiguracao.get(i); // Nato: o ideal seria se pudssemos utilizar o // mtodo "semelhante" para comparar configuraes. // No entanto, como as configuraes anteriores so // lidas do "cache-da-aplicao", e no do // Hibernate, fica impossvel fazer a comparao // automaticamente. Por isso, necessrio esse "if" // que s grava alteraes se no for do mesmo tipo // ou no tiver mesmo contedo que a gravada if (!tpCfg.equals(cfgGrpGravada.getTipo().getCodigo()) || !cfgConteudo.equals(cfgGrpGravada.getConteudoConfiguracao())) { TipoConfiguracaoGrupoEnum tpCfgGrpNova = TipoConfiguracaoGrupoEnum.obterPara(tpGrp, tpCfg); ConfiguracaoGrupo cfgGrpNova = fabrica.getInstance(tpCfgGrpNova); if (isConfiguracaoAvancada(cfgGrpNova) && !podeEditarConfiguracoesAvancadas()) { throw new AplicacaoException("Voc no tem permisso para configurar " + tpCfgGrpNova.getDescricao() + ". Por favor, entre em contato com o suporte tcnico para realizar tal configurao."); } if (cfgConteudo == null || cfgConteudo.equals("")) { throw new AplicacaoException( "Erro ao gravar alterao da configurao para o grupo: contedo do(a)" + tpCfgGrpEnum.getDescricao() + " inexistente!"); } cfgGrpNova.setConteudoConfiguracao(cfgConteudo); CpConfiguracao cfgNova = new CpConfiguracao(); cfgNova.setCpTipoConfiguracao(tipoConfiguracao); cfgGrpNova.setCpConfiguracao(cfgNova); cfgGrpNova.setCpGrupo(grp); cfgGrpNova.atualizarCpConfiguracao(); dao().gravarComHistorico(cfgNova, cfgGrpGravada.getCpConfiguracao(), dt, getIdentidadeCadastrante()); } } } } } dao().commitTransacao(); Cp.getInstance().getConf().limparCache( dao().consultar(CpTipoConfiguracao.TIPO_CONFIG_PERTENCER, CpTipoConfiguracao.class, false)); return idCpGrupo; } catch (Exception e) { throw new AplicacaoException("Id do grupo: " + idCpGrupo + " erro ao gravar grupo e configuraes.", 0, e); } } private boolean isConfiguracaoAvancada(ConfiguracaoGrupo cfgGrupo) { return cfgGrupo instanceof ConfiguracaoGrupoEmail || cfgGrupo instanceof ConfiguracaoGrupoFormula; } private boolean podeEditarConfiguracoesAvancadas() throws Exception { return Cp.getInstance().getComp().getConfiguracaoBL().podeUtilizarServicoPorConfiguracao(getTitular(), getLotaTitular(), "SIGA;GI;GDISTR;CONF_AVANC:Configuraces Avanadas"); } public void aGravarGestorGrupo(Long idCpGrupo, DpLotacaoSelecao lotacaoGestoraSel) { DpLotacao lot = lotacaoGestoraSel.getObjeto(); if (lot == null) { throw new AplicacaoException("A unidade deve ser definida!"); } else { dao().iniciarTransacao(); CpTipoConfiguracao tpConf = dao().consultar(CpTipoConfiguracao.TIPO_CONFIG_GERENCIAR_GRUPO, CpTipoConfiguracao.class, false); CpSituacaoConfiguracao situacao = dao().consultar(CpSituacaoConfiguracao.SITUACAO_PODE, CpSituacaoConfiguracao.class, false); CpConfiguracao conf = new CpConfiguracao(); conf.setLotacao(lot); conf.setCpTipoConfiguracao(tpConf); conf.setCpSituacaoConfiguracao(situacao); conf.setCpGrupo(daoGrupo(idCpGrupo)); conf.setHisDtIni(dao().consultarDataEHoraDoServidor()); dao().gravarComHistorico(conf, getIdentidadeCadastrante()); setIdCpGrupo(idCpGrupo); dao().commitTransacao(); } } public void aExcluirGestorGrupo(Long idCpGrupo, Long idConfGestor) { dao().iniciarTransacao(); CpConfiguracao conf = dao().consultar(idConfGestor, CpConfiguracao.class, false); conf.setHisDtFim(dao().consultarDataEHoraDoServidor()); dao().gravarComHistorico(conf, getIdentidadeCadastrante()); setIdCpGrupo(idCpGrupo); dao().commitTransacao(); } public List<CpConfiguracao> getConfGestores(Long idCpGrupo) { CpTipoConfiguracao tpConf = dao().consultar(CpTipoConfiguracao.TIPO_CONFIG_GERENCIAR_GRUPO, CpTipoConfiguracao.class, false); CpSituacaoConfiguracao situacao = dao().consultar(CpSituacaoConfiguracao.SITUACAO_PODE, CpSituacaoConfiguracao.class, false); CpGrupo grp = daoGrupo(idCpGrupo); if (grp == null) { return null; } else { CpConfiguracao fltConf = new CpConfiguracao(); fltConf.setCpGrupo(grp); fltConf.setCpTipoConfiguracao(tpConf); fltConf.setCpSituacaoConfiguracao(situacao); List<CpConfiguracao> confs = dao().consultar(fltConf); Iterator it = confs.iterator(); while (it.hasNext()) { CpConfiguracao c = (CpConfiguracao) it.next(); if (c.getHisDtFim() != null || c.getCpGrupo() == null || !c.getCpGrupo().getIdInicial().equals(grp.getIdInicial())) { it.remove(); } } return confs; } } /* * Prepara a lista de grupos a exibir */ public String aListar() throws Exception { int offset = 0; int itemPagina = 0; if (getP().getOffset() != null) { offset = getP().getOffset(); } if (getItemPagina() != null) { itemPagina = getItemPagina(); } CpGrupoDaoFiltro flt = new CpGrupoDaoFiltro(); Integer t_idTpGrupo = getIdTipoGrupo(); setCpTipoGrupo(dao().consultar(t_idTpGrupo, CpTipoGrupo.class, false)); flt.setIdTpGrupo(t_idTpGrupo); int intQtd = dao().consultarQuantidade(flt); setTamanho(intQtd); List<CpGrupo> itgGrupos = dao().consultarPorFiltro(flt, offset, itemPagina); Iterator<CpGrupo> it = itgGrupos.iterator(); CpConfiguracaoBL conf = Cp.getInstance().getConf(); // se no for administrador, exibe apenas os grupos que pode gerir if (getIdTipoGrupo() == CpTipoGrupo.TIPO_GRUPO_GRUPO_DE_DISTRIBUICAO && !conf.podeUtilizarServicoPorConfiguracao(getTitular(), getLotaTitular(), "SIGA:Sistema Integrado de Gesto Administrativa;GI:Mdulo de Gesto de Identidade;GDISTR:Gerenciar grupos de distribuio")) { while (it.hasNext()) { CpGrupo cpGrp = it.next(); CpConfiguracaoBL bl = Cp.getInstance().getConf(); if (!bl.podePorConfiguracao(getTitular(), getLotaTitular(), cpGrp, CpTipoConfiguracao.TIPO_CONFIG_GERENCIAR_GRUPO)) { it.remove(); } } } setItens(itgGrupos); return "lista"; } public abstract int getIdTipoGrupo(); @Override public CpGrupoDaoFiltro createDaoFiltro() { final CpGrupoDaoFiltro flt = new CpGrupoDaoFiltro(); flt.setIdTpGrupo(getIdTipoGrupo()); flt.setNome(Texto.removeAcentoMaiusculas(getNome())); return flt; } /** * @return the configuracoesGrupo */ public ArrayList<ConfiguracaoGrupo> getConfiguracoesGrupo() { return configuracoesGrupo; } /** * @return the conteudoConfiguracaoNova */ public String getConteudoConfiguracaoNova() { return conteudoConfiguracaoNova; } public CpTipoGrupo getCpTipoGrupo() { return cpTipoGrupo; } /** * @return the dscCpTipoGrupo */ public String getDscCpTipoGrupo() { return dscCpTipoGrupo; } /** * @return the dscGrupo */ public String getDscGrupo() { return dscGrupo; } /** * @return the exception */ public Exception getException() { return exception; } public CpGrupoDeEmailSelecao getGrupoPaiSel() { return grupoPaiSel; } /** * @return the idCpGrupoPai */ /** * @return the idConfiguracaoNova */ public String getIdConfiguracaoNova() { idConfiguracaoNova = String.valueOf(Long.MAX_VALUE); return idConfiguracaoNova; } /** * @return the idCpGrupo */ public Long getIdCpGrupo() { return idCpGrupo; } public Long getOrgaoUsu() { return orgaoUsu; } /** * @return the siglaGrupo */ public String getSiglaGrupo() { return siglaGrupo; } /** * @return the tipoConfiguracao */ public CpTipoConfiguracao getTipoConfiguracao() { return tipoConfiguracao; } /** * @return the tiposConfiguracaoGrupoParaTipoDeGrupo */ public List<TipoConfiguracaoGrupoEnum> getTiposConfiguracaoGrupoParaTipoDeGrupo() { return tiposConfiguracaoGrupoParaTipoDeGrupo; } public Map<Integer, String> getTiposConfiguracaoGrupoParaTipoDeGrupoMap() { final Map<Integer, String> map = new TreeMap<Integer, String>(); for (TipoConfiguracaoGrupoEnum item : tiposConfiguracaoGrupoParaTipoDeGrupo) { map.put(item.getCodigo(), item.getDescricao()); } return map; } /** * @return the tiposDeGrupo */ public List<CpTipoGrupo> getTiposDeGrupo() { return tiposDeGrupo; } /** * Localiza CpTipoGrupo de um determinado Id * * @param Integer * p_intIdTipoGrupo - O id do tipo grupo que deseja localizar. @ * return CpTipoGrupo */ private CpTipoGrupo obterCpTipoGrupoPorId(Integer p_intIdTipoGrupo) { return dao().consultar(p_intIdTipoGrupo, new CpTipoGrupo().getClass(), false); } /** * Localiza CpGrupo * * @return CpGrupo */ public CpTipoGrupo getTipoGrupo() { return obterCpTipoGrupoPorId(getIdTipoGrupo()); } /** * Obtm a configuracao de grupo para o ndice * * @return ArrayList<TipoConfiguracaoGrupoEnum> - Tipos de configurao * possiveis para o grupo */ private ArrayList<TipoConfiguracaoGrupoEnum> obterTiposConfiguracaoGrupoParaTipoDeGrupo( CpTipoGrupo p_ctgTipoGrupo) throws AplicacaoException { try { return TipoConfiguracaoGrupoEnum.valoresParaTipoDeGrupo(p_ctgTipoGrupo); } catch (Exception e) { throw new AplicacaoException( "Id do grupo: " + idCpGrupo + " erro ao obterTiposConfiguracaoGrupoParaTipoDeGrupo.", 0, e); } } /** * Localiza todos os CpTipoGrupo * */ @SuppressWarnings("unchecked") private List<CpTipoGrupo> obterTiposGrupo() { return (List<CpTipoGrupo>) dao().listarTiposGrupo(); } /** * Prepara as listas de relao * */ public void prepare() { lotacaoGestoraSel = new DpLotacaoSelecao(); grupoPaiSel = new CpGrupoDeEmailSelecao(); tiposDeGrupo = obterTiposGrupo(); tipoConfiguracao = dao().consultar(CpTipoConfiguracao.TIPO_CONFIG_PERTENCER, CpTipoConfiguracao.class, false); } @SuppressWarnings("unchecked") @Override public Selecionavel selecionarPorNome(final CpGrupoDaoFiltro flt) { // Procura por nome flt.setNome(Texto.removeAcentoMaiusculas(flt.getSigla())); flt.setSigla(null); try { final List l = dao().consultarPorFiltro(flt); if (l != null) if (l.size() == 1) return (DpLotacao) l.get(0); return null; } catch (Exception e) { return null; } } /** * @param configuracoesGrupo * the configuracoesGrupo to set */ public void setConfiguracoesGrupo(ArrayList<ConfiguracaoGrupo> configuracoesGrupo) { this.configuracoesGrupo = configuracoesGrupo; } /** * @param conteudoConfiguracaoNova * the conteudoConfiguracaoNova to set */ public void setConteudoConfiguracaoNova(String conteudoConfiguracaoNova) { this.conteudoConfiguracaoNova = conteudoConfiguracaoNova; } public void setCpTipoGrupo(CpTipoGrupo cpTipoGrupo) { this.cpTipoGrupo = cpTipoGrupo; } /** * @param dscCpTipoGrupo * the dscCpTipoGrupo to set */ public void setDscCpTipoGrupo(String dscCpTipoGrupo) { this.dscCpTipoGrupo = dscCpTipoGrupo; } /** * @param dscGrupo * the dscGrupo to set */ public void setDscGrupo(String dscGrupo) { this.dscGrupo = dscGrupo; } /** * @param exception * the exception to set */ public void setException(Exception exception) { this.exception = exception; } public void setGrupoPaiSel(CpGrupoDeEmailSelecao grupoPaiSel) { this.grupoPaiSel = grupoPaiSel; } /** * @param idConfiguracaoNova * the idConfiguracaoNova to set */ public void setIdConfiguracaoNova(String idConfiguracaoNova) { this.idConfiguracaoNova = idConfiguracaoNova; } /** * @param idCpGrupo * the idCpGrupo to set */ public void setIdCpGrupo(Long idCpGrupo) { this.idCpGrupo = idCpGrupo; } public void setOrgaoUsu(Long orgaoUsu) { this.orgaoUsu = orgaoUsu; } /** * @param siglaGrupo * the siglaGrupo to set */ public void setSiglaGrupo(String siglaGrupo) { this.siglaGrupo = siglaGrupo; } /** * @param tipoConfiguracao * the tipoConfiguracao to set */ public void setTipoConfiguracao(CpTipoConfiguracao tipoConfiguracao) { this.tipoConfiguracao = tipoConfiguracao; } /** * @param tiposConfiguracaoGrupoParaTipoDeGrupo * the tiposConfiguracaoGrupoParaTipoDeGrupo to set */ public void setTiposConfiguracaoGrupoParaTipoDeGrupo( ArrayList<TipoConfiguracaoGrupoEnum> tiposConfiguracaoGrupoParaTipoDeGrupo) { this.tiposConfiguracaoGrupoParaTipoDeGrupo = tiposConfiguracaoGrupoParaTipoDeGrupo; } /** * @param tiposDeGrupo * the tiposDeGrupo to set */ public void setTiposDeGrupo(ArrayList<CpTipoGrupo> tiposDeGrupo) { this.tiposDeGrupo = tiposDeGrupo; } public void setLotacaoGestoraSel(DpLotacaoSelecao lotacaoGestoraSel) { this.lotacaoGestoraSel = lotacaoGestoraSel; } public DpLotacaoSelecao getLotacaoGestoraSel() { return lotacaoGestoraSel; } }