/* * 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.RepositoryDao; import br.uff.ic.oceano.core.dao.impl.RepositoryDaoImpl; 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.Repository; import br.uff.ic.oceano.core.service.controletransacao.Transacional; import java.util.List; /** * * @author DanCastellani */ public class RepositoryService implements PersistenceService{ private RepositoryDao repositoryDao; public void setup() { repositoryDao = ObjectFactory.getObjectWithDataBaseDependencies(RepositoryDaoImpl.class); } public RepositoryService() { } public List<Repository> getAll() { return repositoryDao.getAll(); } public Repository getByName(String name) throws ObjetoNaoEncontradoException { return repositoryDao.getByName(name); } @Transacional public void save(Repository repository) throws ServiceException { try { repositoryDao.getByName(repository.getName()); throw new ServiceException("Não podem haver dois repositórios com mesmo nome."); } catch (ObjetoNaoEncontradoException ex) { // it is OK } if (repository.getId() == null) { repositoryDao.inclui(repository); } else { repositoryDao.altera(repository); } } }