/** * Copyright (c) 2009-2014 Câmara dos Deputados. Todos os direitos reservados. * * e-Democracia é um software livre; você pode redistribuí-lo e/ou modificá-lo dentro * dos termos da Licença Pública Geral Menor GNU como publicada pela Fundação do * Software Livre (FSF); na versão 2.1 da Licença, ou (na sua opinião) qualquer versão. * * Este programa é distribuído na esperança de que possa ser útil, mas SEM NENHUMA GARANTIA; * sem uma garantia implícita de ADEQUAÇÃO a qualquer MERCADO ou APLICAÇÃO EM PARTICULAR. * Veja a Licença Pública Geral Menor GNU para maiores detalhes. */ package br.gov.camara.edemocracia.portlets.guiadiscussao.service.impl; import java.util.List; import java.util.Map; import br.gov.camara.edemocracia.portlets.guiadiscussao.model.Acao; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.AcaoLocalServiceUtil; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.base.AcaoLocalServiceBaseImpl; import br.gov.camara.edemocracia.portlets.guiadiscussao.service.persistence.AcaoPersistence; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.exception.SystemException; /** * The implementation of the acao local service. * * <p> * All custom service methods should be put in this class. Whenever methods are * added, rerun ServiceBuilder to copy their definitions into the * {@link br.gov.camara.edemocracia.portlets.guiadiscussao.service.AcaoLocalService} * interface. * * <p> * This is a local service. Methods of this service will not have security * checks based on the propagated JAAS credentials because this service can only * be accessed from within the same VM. * </p> * * @author Robson * @see br.gov.camara.edemocracia.portlets.guiadiscussao.service.base.AcaoLocalServiceBaseImpl * @see br.gov.camara.edemocracia.portlets.guiadiscussao.service.AcaoLocalServiceUtil */ public class AcaoLocalServiceImpl extends AcaoLocalServiceBaseImpl { public Acao addAcao(Acao acao) throws SystemException { AcaoPersistence acaoPersistence = getAcaoPersistence(); Acao novaAcao = acaoPersistence.create(getCounterLocalService() .increment(Acao.class.getName())); novaAcao.setIconeId(acao.getIconeId()); novaAcao.setTexto(acao.getTexto()); novaAcao.setUrlExterna(acao.getUrlExterna()); novaAcao.setUrlLink(acao.getUrlLink()); int totalDeAcoes = acaoPersistence.countByFaseId(acao.getFaseId()); novaAcao.setOrdem(totalDeAcoes + 1); novaAcao.setFaseId(acao.getFaseId()); return acaoPersistence.update(novaAcao, false); } public void excluirAcao(long acaoId) throws PortalException, SystemException { Acao acao = getAcao(acaoId); List<Acao> acoes = AcaoLocalServiceUtil.getAcoesByFaseId(acao .getFaseId()); // Atualiza a ordem das demais acões for (Acao outraAcao : acoes) { if (outraAcao.getOrdem() > acao.getOrdem()) { outraAcao.setOrdem(outraAcao.getOrdem() - 1); acaoPersistence.update(outraAcao, false); } } deleteAcao(acao); } public List<Acao> getAcoesByFaseId(long faseId) throws SystemException { return acaoPersistence.findByFaseId(faseId); } /** * Atualiza a ordem das ações * * @param faseId * @param novaOrdenacao mapa com o id da ação e a nova ordem * @throws SystemException */ public void atualizarOrdenacaoDasAcoes(Long faseId, Map<Long, Integer> novaOrdenacao) throws SystemException{ List<Acao> acoes = AcaoLocalServiceUtil.getAcoesByFaseId(faseId); for(Acao acao : acoes){ acao.setOrdem(novaOrdenacao.get(acao.getAcaoId())); acaoPersistence.update(acao, false); } } }