Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package admin.console.gestores;
- import admin.console.AdminConsole;
- import interfaces.DataInt;
- import interfaces.organizacoes.DepartamentoInt;
- import interfaces.pessoas.AlunoInt;
- import interfaces.pessoas.DocenteInt;
- import interfaces.pessoas.FuncionarioInt;
- import interfaces.pessoas.PessoaInt;
- import java.rmi.RemoteException;
- import static admin.console.AdminConsole.*;
- /**
- * Created by Carlos on 24-10-2017.
- */
- public class Pessoa {
- private static PessoaInt pessoaInt;
- private static AlunoInt alunoInt;
- private static DocenteInt docenteInt;
- private static FuncionarioInt funcionarioInt;
- public static boolean gerir(PessoaInt pessoaInt, DepartamentoInt departamentoInt) {
- try {
- int pos = r1;
- getProperty( pessoaInt.print() +
- "O que pretende fazer?:\n" +
- "1 - Editar\n" +
- "2 - Remover\n" +
- "3 - Voltar\n",
- "Por favor insira um número correspondente a um dos géneros disponíveis.\n",
- () -> !contains(new int[]{1, 2}, (r1 = sc.nextInt())));
- switch (r1) {
- case 1:
- edit(pessoaInt);
- break;
- case 2:
- departamentoInt.deletePessoa(pessoaInt.getId());
- break;
- }
- } catch (RemoteException e) {
- e.printStackTrace();
- return false;
- }
- }
- public static PessoaInt escolhe(DepartamentoInt departamentoInt){
- try {
- if ((r1 = AdminConsole.escolhe(
- "Não Existem pessoa. Por favor insira uma.\n",
- "Escolha a pessoa:\n" + departamentoInt.printPessoas(),
- "Por favor insira um número de pessoa válido.\n",
- departamentoInt.getPessoas())) == -1)
- return null;
- return (PessoaInt) getRegistry(departamentoInt.getPessoa(r1));
- } catch (Exception e) {
- e.printStackTrace();
- return null;
- }
- }
- public static void escolheGenero() {
- getProperty(
- "Escolha um Género:\n" +
- "1 - Masculino\n" +
- "2 - Femenino\n" +
- "3 - Outro\n",
- "Por favor insira um número correspondente a um dos géneros disponíveis.\n",
- () -> !contains(new int[]{1, 2, 3}, (r1 = sc.nextInt())));
- try {
- switch (r1) {
- case 1:
- pessoaInt.setGenero("Masculino");
- break;
- case 2:
- pessoaInt.setGenero("Feminino");
- break;
- case 3:
- pessoaInt.setGenero("Outro");
- break;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static boolean novo(DepartamentoInt departamentoInt) {
- try {
- getProperty(
- "Escolha o tipo de pessoa a inserir:\n" +
- "1 - Aluno\n" +
- "2 - Docente\n" +
- "3 - Funcionário\n",
- "Por favor insira um número correspondente a um dos tipos disponíveis.\n",
- () -> !contains(new int[]{1, 2, 3}, r1 = sc.nextInt()));
- if (r1 == 1) {
- try {
- pessoaInt = (PessoaInt) getRegistry(departamentoInt.newAluno());
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else if (r1 == 2) {
- try {
- pessoaInt = (PessoaInt) getRegistry(departamentoInt.newDocente());
- } catch (Exception e) {
- e.printStackTrace();
- }
- } else {
- try {
- pessoaInt = (PessoaInt) getRegistry(departamentoInt.newFuncionario());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- sc.nextLine();
- getProperty("Insira o Nome: ",
- "Por favor insira um nome só com letras.\n",
- (() -> {
- try {
- return pessoaInt.setNome(sc.nextLine());
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- return false;
- }));
- getProperty("Insira o Username: ",
- "Por favor insira um username com entre 8 a 20 caracteres.\n",
- (() -> {
- try {
- return pessoaInt.setUsername(sc.nextLine());
- } catch (RemoteException e) {
- e.printStackTrace();
- }
- return false;
- }));
- System.out.print("Insira a Password: ");
- while (!pessoaInt.setPassword(sc.nextLine()))
- System.out.print("Por favor insira uma password com entre 8 a 20 caracteres.\n");
- System.out.print("Insira o número de telemovél: ");
- while (!pessoaInt.setTelemovel(sc.nextLine()))
- System.out.print("Por favor insira um número de telemóvel com apenas 9 dígitos.\n");
- System.out.print("Insira a Morada: ");
- while (!pessoaInt.setMorada(sc.nextLine()))
- System.out.print("Por favor insira pelo menos 1 caracter na morada.\n");
- System.out.print("Insira Código Postal: ");
- while (!pessoaInt.setCodigoPostal(sc.nextLine()))
- System.out.print("Por favor insira um código postal neste formato '0000-000'.\n");
- System.out.print("Insira Localidade: ");
- while (!pessoaInt.setLocalidade(sc.nextLine()))
- System.out.print("Por favor insira uma localidade com pelo menos 1 caractér.\n");
- System.out.print("Insira o número do Cartão de Cidadão: ");
- while (!pessoaInt.setNumeroCC(sc.nextLine()))
- System.out.print("Por favor insira um número de cartão de cidadão com apenas 8 dígitos.\n");
- if (pessoaInt.isAluno()) {
- alunoInt = (AlunoInt) pessoaInt;
- System.out.print("Insira o Número de Aluno: ");
- while (!alunoInt.setNumeroAluno(sc.nextLine()))
- System.out.print("Por favor insira um número de aluno com apenas 10 digitos.\n");
- System.out.print("Insira um Curso: ");
- while (!alunoInt.setCurso(sc.nextLine()))
- System.out.print("Por favora insira o nome do curso usando apenas letras.\n");
- }
- if (pessoaInt.isDocente()) {
- docenteInt = (DocenteInt) pessoaInt;
- System.out.print("Insira o Cargo: ");
- while (!docenteInt.setCargo(sc.nextLine()))
- System.out.print("Por favor insira um cargo com pelo menos 1 caractér.\n");
- }
- if (pessoaInt.isFuncionario()) {
- funcionarioInt = (FuncionarioInt) pessoaInt;
- System.out.print("Insira a Função: ");
- while (!funcionarioInt.setFuncao(sc.nextLine()))
- System.out.print("Por favor insira uma função com pelo menos 1 caractér.\n");
- }
- Data.editData("a validade do cartão de cidadão", (DataInt) getRegistry(pessoaInt.getValidadeCC()));
- Data.editData("a data de nascimento", (DataInt) getRegistry(pessoaInt.getDataNascimento()));
- escolheGenero();
- return true;
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- }
- private static boolean edit(PessoaInt pi) {
- pessoaInt = pi;
- try {
- getProperty(pessoaInt.print() + "\nPor favor insira a propriedade a editar: ",
- "Por favor insira uma característica correspondente a uma das disponíveis.\n",
- () -> {
- try {
- return contains(new String[]{
- "nome",
- "username",
- "password",
- "departamento",
- "nº telemóvel",
- "nº telemovel",
- "no telemóvel",
- "no telemovel",
- "morada",
- "código postal",
- "codigo postal",
- "localidade",
- "número c.c.",
- "numero c.c.",
- "número cc",
- "numero cc",
- "validade c.c.",
- "validade cc",
- "género",
- "genero",
- "data nascimento"
- }, r2 = sc.nextLine()) ||
- pessoaInt.isAluno() && contains(new String[]{
- "nºaluno",
- "no aluno",
- "curso"
- }, r2) ||
- pessoaInt.isFuncionario() && contains(new String[]{
- "função",
- "funçao",
- "funcão",
- "funcao"
- }, r2) ||
- pessoaInt.isDocente() && r2.toLowerCase().equals("cargo");
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- });
- } catch (Exception e) {
- e.printStackTrace();
- return false;
- }
- switch (r2.toLowerCase()) {
- case "nome":
- getProperty("Por favor insira um nome só com letras.\n",
- () -> {
- try {
- return !pessoaInt.setNome(editProperty("Nome", pessoaInt.getNome()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- });
- break;
- case "username":
- getProperty("Por favor insira um username com entre 8 a 20 caracteres.\n",
- () -> {
- try {
- return !pessoaInt.setUsername(editProperty("Nome", pessoaInt.getUsername()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- });
- break;
- case "password":
- getProperty("Por favor insira uma password com entre 8 a 20 caracteres.\n",
- () -> {
- try {
- return !pessoaInt.setPassword(editProperty("Password", pessoaInt.getPassword()));
- } catch (Exception e) {
- e.printStackTrace();
- }
- return false;
- });
- break;
- case "departamento":
- //
- break;
- case "nº telemóvel":
- case "nº telemovel":
- case "no telemóvel":
- case "no telemovel":
- while (!pessoaInt.setTelemovel(editProperty("Nº Telemóvel", String.valueOf(pessoaInt.getTelemovel()))))
- System.out.print("Por favor insira um número de telemóvel com apenas 9 dígitos.\n");
- break;
- case "morada":
- while (!pessoaInt.setMorada(editProperty("Morada", pessoaInt.getMorada())))
- System.out.print("Por favor insira pelo menos 1 caracter na morada.\n");
- break;
- case "código postal":
- case "codigo postal":
- while (!pessoaInt.setCodigoPostal(editProperty("Código Postal", pessoaInt.getCodigoPostal())))
- System.out.print("Por favor insira um código postal neste formato '0000-000'.\n");
- break;
- case "localidade":
- while (!pessoaInt.setLocalidade(editProperty("Localidade", pessoaInt.getLocalidade())))
- System.out.print("Por favor insira uma localidade com pelo menos 1 caractér.\n");
- break;
- case "número c.c.":
- case "numero c.c.":
- case "número cc":
- case "numero cc":
- while (!pessoaInt.setNumeroCC(editProperty("Número C.C.", String.valueOf(pessoaInt.getNumeroCC()))))
- System.out.print("Por favor insira um número de cartão de cidadão com apenas 8 dígitos.\n");
- break;
- case "validade c.c.":
- case "validade cc":
- try {
- Data.editData("a validade do cartão de cidadão", (DataInt) getRegistry(pessoaInt.getValidadeCC())));
- } catch (Exception e) {
- e.printStackTrace();
- }
- break;
- case "género":
- case "genero":
- try {
- System.out.print("Género Antigo: " + pessoaInt.getGenero());
- } catch (Exception e) {
- e.printStackTrace();
- }
- escolheGenero();
- break;
- case "data nascimento":
- try {
- Data.editData("a data de nascimento", (DataInt) getRegistry(pessoaInt.getDataNascimento())));
- } catch (Exception e) {
- e.printStackTrace();
- }
- break;
- case "nº aluno":
- case "no aluno":
- alunoInt = (AlunoInt) pessoaInt;
- while (!alunoInt.setNumeroAluno(editProperty("Nº Aluno", String.valueOf(alunoInt.getNumeroAluno()))))
- System.out.print("Por favor insira um número de aluno com apenas 10 digitos.\n");
- break;
- case "curso":
- alunoInt = (AlunoInt) pessoaInt;
- while (!alunoInt.setCurso(editProperty("Curso", alunoInt.getCurso())))
- System.out.print("Por favora insira o nome do curso usando apenas letras.\n");
- break;
- case "cargo":
- docenteInt = (DocenteInt) pessoaInt;
- while (!docenteInt.setCargo(editProperty("Cargo", docenteInt.getCargo())))
- System.out.print("Por favor insira um cargo com pelo menos 1 caractér.\n");
- break;
- case "função":
- case "funçao":
- case "funcão":
- case "funcao":
- funcionarioInt = (FuncionarioInt) pessoaInt;
- while (!funcionarioInt.setFuncao(editProperty("Função", funcionarioInt.getFuncao())))
- System.out.print("Por favor insira uma função com pelo menos 1 caractér.\n");
- break;
- }
- getProperty(
- "Quer editar mais alguma Propriedade?\n" +
- "1 - Sim\n" +
- "2 - Não\n",
- "Por favor insira um número correspondente a uma das opções disponíveis.\n",
- () -> contains(new int[]{1, 2}, r1 = sc.nextInt()));
- switch (r1) {
- case 1:
- edit(pessoaInt);
- break;
- case 2:
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement