/** * Desprograma uma disciplina desse período. * * @param disciplina a disciplina para desprogramar * @throws NullPointerException se {@code disciplina == null} * @throws PoliticaDeCreditosException se a operação for inválida */ public void desprogramar(Disciplina disciplina) throws PoliticaDeCreditosException { Parametro.naoNulo("disciplina", disciplina); if (!politicaDeCreditos.podeDesprogramar(disciplina, this)) throw new PoliticaDeCreditosException("Mínimo de créditos não atingido"); disciplinas.remove(disciplina); }
/** * Programa uma disciplina nesse período. * * @param disciplina a disciplina para programar * @throws NullPointerException se {@code disciplina == null} * @throws PoliticaDeCreditosException se a operação for inválida */ public void programar(Disciplina disciplina) throws PoliticaDeCreditosException { Parametro.naoNulo("disciplina", disciplina); if (!politicaDeCreditos.podeProgramar(disciplina, this)) throw new PoliticaDeCreditosException("Máximo de créditos excedido"); disciplinas.add(disciplina); }
/** * @param politicaDeCreditos a política usada para o total de créditos * @throws NullPointerException se {@code politicaDeCreditos == null} */ public void setPoliticaDeCreditos(PoliticaDeCreditos politicaDeCreditos) { Parametro.naoNulo("politicaDeCreditos", politicaDeCreditos); this.politicaDeCreditos = politicaDeCreditos; }
/** * @param disciplinas conjunto de disciplinas programadas para esse período * @throws NullPointerException se {@code disciplinas == null} */ public void setDisciplinas(Set<Disciplina> disciplinas) { Parametro.naoNulo("disciplinas", disciplinas); this.disciplinas = disciplinas; }
/** * @param semestre semestre para o período * @throws IllegalArgumentException se {@code semestre < 1} */ public void setSemestre(int semestre) { Parametro.maiorQueZero("semestre", semestre); this.semestre = semestre; }
/** * @param id um id para o período * @throws NullPointerException se {@code id == null} * @throws IllegalArgumentException se {@code id < 1} */ public void setId(Long id) { Parametro.naoNulo("id", id); Parametro.maiorQueZero("id", id); this.id = id; }
/** * Retorna se é possível desprogramar a disciplina dada nesse período * * @throws NullPointerException se {@code disciplina == null} */ public boolean podeDesprogramar(Disciplina disciplina) { Parametro.naoNulo("disciplina", disciplina); return politicaDeCreditos.podeDesprogramar(disciplina, this); }