package br.cefetrj.sca.dominio; import java.util.Set; import br.cefetrj.sca.dominio.repositories.TurmaRepositorio; /** * Domain service para validar a regra do negócio RN01. * * @author edubezerra * */ public class ValidadorQuantidadeCreditosService { private static final int MAX_CREDITOS_POR_ALUNO = 20; boolean validar(Aluno aluno, TurmaRepositorio repo, Integer creditos) { if (creditos <= 0) { throw new IllegalArgumentException("Quantidade de créditos solicitados deve ser positiva."); } Set turmas = repo.getTurmasByAluno(aluno, PeriodoLetivo.PERIODO_CORRENTE); Integer totalCreditosSolicitados = 0; for (Turma turma : turmas) { totalCreditosSolicitados += turma.getDisciplina().getQuantidadeCreditos(); } if (totalCreditosSolicitados + creditos > MAX_CREDITOS_POR_ALUNO) { return false; } return true; } }