public void adiciona(Pessoa pessoa, Endereco endereco, List<NumeroTelefone> telefone) {

    if (pessoa.getNome() == null || pessoa.getNome().length() < 3) {

      validator.add(
          new ValidationMessage(
              "Nome é obrigatório e precisa ter mais de 3 letras", "pessoa.nome"));
    }

    if (telefone.get(0).getNumero() == null) {

      validator.add(
          new ValidationMessage("Pelo menos um telefone deverá ser cadastrado", "telefone.numero"));
    }

    validator.onErrorUsePageOf(PessoaController.class).formulario();

    pessoa.setEndereco(endereco);

    enderecoBanco.inserirEnderecoBanco(endereco);
    pessoaBanco.inserirPessoaBanco(pessoa);

    for (NumeroTelefone tel : telefone) {

      if (tel != null) {

        tel.setPessoa(pessoa);
        telefoneBanco.inserirTelefoneBanco(tel);
      }
    }
    result.redirectTo(this).listaContatos();
  }
  public void inserirContato(Pessoa novaPessoa, ArrayList<NumeroTelefone> novoTelefone) {

    /**
     * insere o endereço no banco e retorna o id deste endereço para ter o relacionamento com a
     * tabela pessoaBanco
     */
    Endereco idEndereco = enderecoBanco.inserirEnderecoBanco(novaPessoa.getEndereco());
    novaPessoa.setEndereco(idEndereco);

    Pessoa idPessoa = pessoaBanco.inserirPessoaBanco(novaPessoa);

    for (int i = 0; i < novoTelefone.size(); i++) {
      novoTelefone.get(i).setPessoa(idPessoa);
      telefoneBanco.inserirTelefoneBanco(novoTelefone.get(i));
    }
  }