示例#1
0
  /**
   * 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);
  }
示例#2
0
  /**
   * 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);
  }
示例#3
0
  /**
   * @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;
  }
示例#4
0
  /**
   * @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;
  }
示例#5
0
  /**
   * @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;
  }
示例#6
0
  /**
   * @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;
  }
示例#7
0
  /**
   * 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);
  }