/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package br.uff.ic.oceano.core.service; import br.uff.ic.oceano.core.dao.SoftwareProjectDao; import br.uff.ic.oceano.core.dao.impl.SoftwareProjectDaoImpl; import br.uff.ic.oceano.core.exception.ObjetoNaoEncontradoException; import br.uff.ic.oceano.core.exception.ServiceException; import br.uff.ic.oceano.core.factory.ObjectFactory; import br.uff.ic.oceano.core.model.OceanoUser; import br.uff.ic.oceano.core.model.SoftwareProject; import br.uff.ic.oceano.core.service.controletransacao.Transacional; import java.util.List; /** * * @author Heliomar */ public class SoftwareProjectService implements PersistenceService{ private SoftwareProjectDao projectDao; public void setup(){ projectDao = ObjectFactory.getObjectWithDataBaseDependencies(SoftwareProjectDaoImpl.class); } public SoftwareProjectService() { } public SoftwareProject getById(Long id) throws ObjetoNaoEncontradoException { return projectDao.getPorId(id); } public List<SoftwareProject> getProjectsByOceanoUser(OceanoUser oceanoUser){ return projectDao.getProjectsByOceanoUser(oceanoUser); } @Transacional public void save(SoftwareProject project) throws ServiceException { try { projectDao.getByRepositoryUrl(project.getRepositoryUrl()); throw new ServiceException("Can't exists two projects with the same repository url."); } catch (ObjetoNaoEncontradoException ex) { // it is OK } //the configuration is not setted if (project.getId() == null) { projectDao.inclui(project); } else { projectDao.altera(project); } } public List<SoftwareProject> getAll() { return projectDao.getListaCompleta(); } public SoftwareProject getProjectToDetailById(Long id) throws ServiceException { try { return projectDao.getProjectToDetailById(id); } catch (ObjetoNaoEncontradoException ex) { throw new ServiceException(ex); } } public List<SoftwareProject> getMavenProjectsByUser(OceanoUser oceanoUser){ return projectDao.getMavenProjectsByUser(oceanoUser); } public SoftwareProject getByRepositoryUrl(String repositoryUrl) throws ObjetoNaoEncontradoException{ return projectDao.getByRepositoryUrl(repositoryUrl); } public SoftwareProject getByUrl(String url){ if(!url.endsWith("/")) url = url.concat("/"); List<SoftwareProject> all = getAll(); for (SoftwareProject softwareProject : all) { if(url.startsWith(softwareProject.getRepositoryUrl())) return softwareProject; } return null; } }