Fix warning at startup

This commit is contained in:
Andreas Svanberg 2023-11-02 10:10:43 +01:00
parent 0e6f80d111
commit 08e1c732df
5 changed files with 55 additions and 8 deletions

@ -0,0 +1,7 @@
package se.su.dsv.scipro.reviewing;
interface ReviewerDeadlineSettingsRepository {
ReviewerDeadlineSettings findOne(long instanceId);
ReviewerDeadlineSettings save(ReviewerDeadlineSettings entity);
}

@ -0,0 +1,34 @@
package se.su.dsv.scipro.reviewing;
import jakarta.persistence.EntityManager;
import se.su.dsv.scipro.system.AbstractRepository;
import javax.inject.Inject;
import javax.inject.Provider;
class ReviewerDeadlineSettingsRepositoryImpl
extends AbstractRepository
implements ReviewerDeadlineSettingsRepository
{
@Inject
ReviewerDeadlineSettingsRepositoryImpl(Provider<EntityManager> em) {
super(em);
}
@Override
public ReviewerDeadlineSettings findOne(long instanceId) {
return em().find(ReviewerDeadlineSettings.class, instanceId);
}
@Override
public ReviewerDeadlineSettings save(ReviewerDeadlineSettings entity) {
EntityManager entityManager = em();
if (entityManager.contains(entity)) {
return entityManager.merge(entity);
}
else {
entityManager.persist(entity);
return entity;
}
}
}

@ -2,5 +2,5 @@ package se.su.dsv.scipro.reviewing;
public interface ReviewerDeadlineSettingsService {
ReviewerDeadlineSettings getInstance();
<S extends ReviewerDeadlineSettings> S save(S entity);
ReviewerDeadlineSettings save(ReviewerDeadlineSettings entity);
}

@ -1,29 +1,34 @@
package se.su.dsv.scipro.reviewing;
import com.google.inject.persist.Transactional;
import se.su.dsv.scipro.system.AbstractServiceImpl;
import javax.inject.Inject;
import javax.inject.Provider;
import jakarta.persistence.EntityManager;
public class ReviewerDeadlineSettingsServiceImpl extends AbstractServiceImpl<ReviewerDeadlineSettings,Long> implements ReviewerDeadlineSettingsService {
public class ReviewerDeadlineSettingsServiceImpl implements ReviewerDeadlineSettingsService {
private static final long INSTANCE_ID = 1L;
private final ReviewerDeadlineSettingsRepository repository;
@Inject
public ReviewerDeadlineSettingsServiceImpl(Provider<EntityManager> em) {
super(em, ReviewerDeadlineSettings.class, QReviewerDeadlineSettings.reviewerDeadlineSettings);
public ReviewerDeadlineSettingsServiceImpl(ReviewerDeadlineSettingsRepository repository) {
this.repository = repository;
}
@Override
@Transactional
public ReviewerDeadlineSettings getInstance() {
ReviewerDeadlineSettings settings = findOne(INSTANCE_ID);
ReviewerDeadlineSettings settings = repository.findOne(INSTANCE_ID);
if(settings==null) {
settings = new ReviewerDeadlineSettings(INSTANCE_ID);
save(settings);
}
return settings;
}
@Override
@Transactional
public ReviewerDeadlineSettings save(ReviewerDeadlineSettings entity) {
return repository.save(entity);
}
}

@ -17,6 +17,7 @@ public class ReviewingModule extends AbstractModule {
bind(ReviewerDecisionService.class).to(ReviewingServiceImpl.class);
bind(RoughDraftApprovalService.class).to(RoughDraftApprovalServiceImpl.class);
bind(ReviewerDeadlineSettingsService.class).to(ReviewerDeadlineSettingsServiceImpl.class);
bind(ReviewerDeadlineSettingsRepository.class).to(ReviewerDeadlineSettingsRepositoryImpl.class);
bind(ReviewerDeadlineFollowupService.class).to(ReviewerDeadlineFollowupServiceImpl.class);
}
}