package exemplo;

import java.util.Enumeration;

public class CadastroPessoas  {

    private exemplo.RepositorioPessoas pessoas;

    public CadastroPessoas(exemplo.RepositorioPessoas repositorio) {
        if (repositorio == null) {
            throw new IllegalArgumentException("Repositorio invalido");
        } else {
            pessoas = repositorio;
            return;
        }
    }

    public java.util.Enumeration retornaTodos() throws exemplo.BancoDadosException {
        return pessoas.retornaTodos();
    }

    public void cadastrar(exemplo.Pessoa pessoa) throws exemplo.BancoDadosException, exemplo.PessoaJaCadastradaException {
        if (pessoa == null) {
            throw new IllegalArgumentException("Pessoa invalida");
        }
        java.lang.String cpf = pessoa.getCpf();
        if (!pessoas.existe(cpf)) {
            pessoas.inserir(pessoa);
        } else {
            throw new PessoaJaCadastradaException();
        }
    }

    public void atualizar(exemplo.Pessoa pessoa) throws exemplo.ObjetoDesatualizadoException, exemplo.BancoDadosException, exemplo.PessoaNaoCadastradaException {
        if (pessoa == null) {
            throw new IllegalArgumentException("Pessoa invalida");
        } else {
            pessoas.atualizar(pessoa);
            return;
        }
    }

    public void remover(java.lang.String cpf) throws exemplo.BancoDadosException, exemplo.PessoaNaoCadastradaException {
        if (cpf == null) {
            throw new IllegalArgumentException("CPF invalidp");
        } else {
            pessoas.remover(cpf);
            return;
        }
    }

    public exemplo.Pessoa procurar(java.lang.String cpf) throws exemplo.BancoDadosException, exemplo.PessoaNaoCadastradaException {
        if (cpf == null) {
            throw new IllegalArgumentException("CPF invalido");
        } else {
            return pessoas.procurar(cpf);
        }
    }
}
