SelfKnowledgeCategoryDatabaseRepository.java
package fr.avenirsesr.portfolio.selfknowledge.infrastructure.adapter.repository;
import fr.avenirsesr.portfolio.common.data.infrastructure.adapter.repository.GenericTranslatableJpaRepositoryAdapter;
import fr.avenirsesr.portfolio.selfknowledge.domain.model.SelfKnowledgeCategory;
import fr.avenirsesr.portfolio.selfknowledge.domain.port.output.repository.SelfKnowledgeCategoryRepository;
import fr.avenirsesr.portfolio.selfknowledge.infrastructure.adapter.mapper.SelfKnowledgeCategoryMapper;
import fr.avenirsesr.portfolio.selfknowledge.infrastructure.adapter.model.SelfKnowledgeCategoryEntity;
import fr.avenirsesr.portfolio.selfknowledge.infrastructure.adapter.model.SelfKnowledgeCategoryTranslationEntity;
import fr.avenirsesr.portfolio.selfknowledge.infrastructure.adapter.specification.SelfKnowledgeCategorySpecification;
import fr.avenirsesr.portfolio.user.domain.model.Student;
import java.util.List;
import org.springframework.stereotype.Component;
@Component
public class SelfKnowledgeCategoryDatabaseRepository
extends GenericTranslatableJpaRepositoryAdapter<
SelfKnowledgeCategory, SelfKnowledgeCategoryTranslationEntity, SelfKnowledgeCategoryEntity>
implements SelfKnowledgeCategoryRepository {
private final SelfKnowledgeCategoryJpaRepository jpaRepository;
public SelfKnowledgeCategoryDatabaseRepository(SelfKnowledgeCategoryJpaRepository jpaRepository) {
super(
jpaRepository,
jpaRepository,
SelfKnowledgeCategoryEntity.class,
SelfKnowledgeCategoryMapper.INSTANCE,
SelfKnowledgeCategoryTranslationEntity::create,
SelfKnowledgeCategoryTranslationEntity::update);
this.jpaRepository = jpaRepository;
}
@Override
public List<SelfKnowledgeCategory> findAllByStudent(Student student) {
return findAll(SelfKnowledgeCategorySpecification.hasStudent(student));
}
@Override
public List<SelfKnowledgeCategory> findAllAvailableByStudent(Student student) {
return findAll(SelfKnowledgeCategorySpecification.hasNotStudent(student));
}
@Override
public List<SelfKnowledgeCategory> findAllMandatory() {
return findAll(SelfKnowledgeCategorySpecification.isMandatory());
}
}