package br.com.biblioteca.basic;

import br.com.biblioteca.repositorios.RepositorioEmprestimosArray;
import br.com.biblioteca.repositorios.RepositorioEmprestimosLista;

public class Aluno extends Pessoa {
	private double valorMulta;
	private int cotaImpressao;
	RepositorioEmprestimosArray arrayEmprestimos = new RepositorioEmprestimosArray(100);
	RepositorioEmprestimosLista listaEmprestimos = new RepositorioEmprestimosLista();

	public Aluno(String Nome, int ID, double valorMulta, int cotaImpressao) {
		super(Nome, ID);
		this.valorMulta = valorMulta;
		this.cotaImpressao = cotaImpressao;
	}	

	public double getValorMulta() {
		return valorMulta;
	}

	public void setValorMulta(double valorMulta) {
		this.valorMulta = valorMulta;
	}

	public int getCotaImpressao() {
		return cotaImpressao;
	}

	public void setCotaImpressao(int cotaImpressao) {
		this.cotaImpressao = cotaImpressao;
	}

	public void pegarLivroArray(Livro livro) {
		if (livro.isConsulta() == true) {
			// exception de ser de consulta
		} else {
			if (livro.getDisponiveis() > 0) {
				Emprestimo e = new Emprestimo(this, livro);
				arrayEmprestimos.inserir(e);
				livro.setDisponiveis(livro.getDisponiveis() - 1);
			} else {
				// Exception de nao ter livro
			}
		}
	} // para arrays

	public void devolverLivroArray(Livro livro) {
		arrayEmprestimos.remover(arrayEmprestimos.procurar(livro, this));
		livro.setDisponiveis(livro.getDisponiveis() + 1);
	}

	public void pegarLivroLista(Livro livro) {
		if (livro.isConsulta() == true) {
			// expception
		} else {
			if (livro.getDisponiveis() > 0) {
				Emprestimo e = new Emprestimo(this, livro);
				listaEmprestimos.inserir(e);
				livro.setDisponiveis(livro.getDisponiveis() - 1);
			} else {
				//exception de n ter livro
			}
		}
	} // para lista

	public void devolverLivroLista(Livro livro) {
		listaEmprestimos.remover(listaEmprestimos.procurar(livro, this));
		livro.setDisponiveis(livro.getDisponiveis() - 1);
	}

	public void reservarEspaco(EspacoEstudo espaco) {
		if (espaco.getAluno() == null) {
			espaco.setAluno(this);
		} else {
			// exception de espaÃ§o lotado
		}
	}

	public void sairEspaco(EspacoEstudo espaco) {
		espaco.setAluno(null);
	}

}

@@ -27,16 +27,68 @@
 basic;%0A%0A
+import br.com.biblioteca.exceptions.LivroException;%0A
 import b
@@ -974,32 +974,54 @@
 ray(Livro livro)
+ throws LivroException
  %7B%0A%09%09if (livro.i
@@ -1050,39 +1050,76 @@
 %0A%09%09%09
-// exception 
+throw new LivroException(%22Este livro n%C3%A3o po
 de s
-er de consulta
+air da biblioteca!%22);
 %0A%09%09%7D
@@ -1318,37 +1318,100 @@
 %09%09%09%09
-// Exception de nao 
+throw new LivroException(%22N%C3%A3o existem exemplares des
 te
-r
  livro
+ dispon%C3%ADveis para empr%C3%A9stimo.%22);
 %0A%09%09%09
@@ -1434,17 +1434,16 @@
  arrays%0A
-%0A
 %09public 
@@ -1642,24 +1642,46 @@
 Livro livro)
+ throws LivroException
  %7B%0A%09%09if (liv
@@ -1714,21 +1714,76 @@
 %0A%09%09%09
-// expception
+throw new LivroException(%22Este livro n%C3%A3o pode sair da biblioteca!%22);
 %0A%09%09%7D
@@ -1982,34 +1982,100 @@
 %09%09%09%09
-//exception de n 
+throw new LivroException(%22N%C3%A3o existem exemplares des
 te
-r
  livro
+ dispon%C3%ADveis para empr%C3%A9stimo.%22);
 %0A%09%09%09
@@ -2399,38 +2399,18 @@
 %0A%09%09%09
-// exception de espa%C3%83%C2%A7o lotado
+throw new 
 %0A%09%09%7D

Update Aluno.java