package fi.otavanopisto.pyramus.dao.plugins; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import fi.otavanopisto.pyramus.dao.PyramusEntityDAO; import fi.otavanopisto.pyramus.domainmodel.plugins.PluginRepository; import fi.otavanopisto.pyramus.domainmodel.plugins.PluginRepository_; @Stateless public class PluginRepositoryDAO extends PyramusEntityDAO<PluginRepository> { public PluginRepository create(String url, String repositoryId) { EntityManager entityManager = getEntityManager(); PluginRepository pluginRepository = new PluginRepository(); pluginRepository.setUrl(url); pluginRepository.setRepositoryId(repositoryId); entityManager.persist(pluginRepository); return pluginRepository; } public PluginRepository findByRepositoryId(String repositoryId) { EntityManager entityManager = getEntityManager(); CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder(); CriteriaQuery<PluginRepository> criteria = criteriaBuilder.createQuery(PluginRepository.class); Root<PluginRepository> root = criteria.from(PluginRepository.class); criteria.select(root); criteria.where( criteriaBuilder.equal(root.get(PluginRepository_.repositoryId), repositoryId) ); return getSingleResult(entityManager.createQuery(criteria)); } public PluginRepository update(PluginRepository repository, String url, String repositoryId) { repository.setUrl(url); repository.setRepositoryId(repositoryId); getEntityManager().persist(repository); return repository; } public PluginRepository updateUrl(PluginRepository repository, String url) { repository.setUrl(url); getEntityManager().persist(repository); return repository; } public PluginRepository updateId(PluginRepository repository, String id) { repository.setRepositoryId(id); getEntityManager().persist(repository); return repository; } public void delete(PluginRepository pluginRepository) { super.delete(pluginRepository); } }