/** * 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); }
/** * Retorna se é possível programar a disciplina dada nesse período * * @throws NullPointerException se {@code disciplina == null} */ public boolean podeProgramar(Disciplina disciplina) { Parametro.naoNulo("disciplina", disciplina); return politicaDeCreditos.podeProgramar(disciplina, this); }