Advertisement
Guest User

Untitled

a guest
Oct 25th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.18 KB | None | 0 0
  1. package admin.console.gestores;
  2.  
  3. import admin.console.AdminConsole;
  4. import interfaces.DataInt;
  5. import interfaces.organizacoes.DepartamentoInt;
  6. import interfaces.pessoas.AlunoInt;
  7. import interfaces.pessoas.DocenteInt;
  8. import interfaces.pessoas.FuncionarioInt;
  9. import interfaces.pessoas.PessoaInt;
  10.  
  11. import java.rmi.RemoteException;
  12. import static admin.console.AdminConsole.*;
  13.  
  14. /**
  15. * Created by Carlos on 24-10-2017.
  16. */
  17. public class Pessoa {
  18.  
  19. private static PessoaInt pessoaInt;
  20. private static AlunoInt alunoInt;
  21. private static DocenteInt docenteInt;
  22. private static FuncionarioInt funcionarioInt;
  23.  
  24. public static boolean gerir(PessoaInt pessoaInt, DepartamentoInt departamentoInt) {
  25. try {
  26. getProperty( pessoaInt.print() +
  27. "O que pretende fazer?:\n" +
  28. "1 - Editar\n" +
  29. "2 - Remover\n" +
  30. "3 - Voltar\n",
  31. "Por favor insira um número correspondente a um dos géneros disponíveis.\n",
  32. () -> !contains(new int[]{1, 2}, (r1 = sc.nextInt())));
  33.  
  34. switch (r1) {
  35. case 1:
  36. edit(pessoaInt);
  37. break;
  38. case 2:
  39. departamentoInt.deletePessoa(pessoaInt.getId());
  40. break;
  41. }
  42. return true;
  43. } catch (RemoteException e) {
  44. e.printStackTrace();
  45. return false;
  46. }
  47. }
  48.  
  49. public static PessoaInt escolhe(DepartamentoInt departamentoInt){
  50. try {
  51. if ((r1 = AdminConsole.escolhe(
  52. "Não Existem pessoa. Por favor insira uma.\n",
  53. "Escolha a pessoa:\n" + departamentoInt.printPessoas(),
  54. "Por favor insira um número de pessoa válido.\n",
  55. departamentoInt.getPessoas())) == -1)
  56. return null;
  57. return (PessoaInt) getRegistry(departamentoInt.getPessoa(r1));
  58. } catch (Exception e) {
  59. e.printStackTrace();
  60. return null;
  61. }
  62. }
  63.  
  64. public static void escolheGenero() {
  65. getProperty(
  66. "Escolha um Género:\n" +
  67. "1 - Masculino\n" +
  68. "2 - Femenino\n" +
  69. "3 - Outro\n",
  70. "Por favor insira um número correspondente a um dos géneros disponíveis.\n",
  71. () -> !contains(new int[]{1, 2, 3}, (r1 = sc.nextInt())));
  72.  
  73. try {
  74. switch (r1) {
  75. case 1:
  76. pessoaInt.setGenero("Masculino");
  77. break;
  78.  
  79. case 2:
  80. pessoaInt.setGenero("Feminino");
  81. break;
  82.  
  83. case 3:
  84. pessoaInt.setGenero("Outro");
  85. break;
  86. }
  87. } catch (Exception e) {
  88. e.printStackTrace();
  89. }
  90. }
  91.  
  92. public static boolean novo(DepartamentoInt departamentoInt) {
  93. try {
  94. getProperty(
  95. "Escolha o tipo de pessoa a inserir:\n" +
  96. "1 - Aluno\n" +
  97. "2 - Docente\n" +
  98. "3 - Funcionário\n",
  99. "Por favor insira um número correspondente a um dos tipos disponíveis.\n",
  100. () -> !contains(new int[]{1, 2, 3}, r1 = sc.nextInt()));
  101.  
  102. if (r1 == 1) {
  103. try {
  104. pessoaInt = (PessoaInt) getRegistry(departamentoInt.newAluno());
  105. } catch (Exception e) {
  106. e.printStackTrace();
  107. }
  108. } else if (r1 == 2) {
  109. try {
  110. pessoaInt = (PessoaInt) getRegistry(departamentoInt.newDocente());
  111. } catch (Exception e) {
  112. e.printStackTrace();
  113. }
  114. } else {
  115. try {
  116. pessoaInt = (PessoaInt) getRegistry(departamentoInt.newFuncionario());
  117. } catch (Exception e) {
  118. e.printStackTrace();
  119.  
  120. }
  121. }
  122.  
  123. sc.nextLine();
  124.  
  125. getProperty("Insira o Nome: ",
  126. "Por favor insira um nome só com letras.\n",
  127. (() -> {
  128. try {
  129. return !pessoaInt.setNome(sc.nextLine());
  130. } catch (RemoteException e) {
  131. e.printStackTrace();
  132. }
  133. return false;
  134. }));
  135.  
  136. getProperty("Insira o Username: ",
  137. "Por favor insira um username com entre 8 a 20 caracteres.\n",
  138. (() -> {
  139. try {
  140. return !pessoaInt.setUsername(sc.nextLine());
  141. } catch (RemoteException e) {
  142. e.printStackTrace();
  143. }
  144. return false;
  145. }));
  146.  
  147. getProperty("Insira a Password: ",
  148. "Por favor insira uma password entre 8 a 20 caracteres.\n",
  149. (() -> {
  150. try {
  151. return !pessoaInt.setPassword(sc.nextLine());
  152. } catch (RemoteException e) {
  153. e.printStackTrace();
  154. }
  155. return false;
  156. }));
  157.  
  158. getProperty("Insira o número de telemóvel: ",
  159. "Por favor insira um telemóvel com apenas 9 dígitos.\n",
  160. (() -> {
  161. try {
  162. return !pessoaInt.setTelemovel(sc.nextLine());
  163. } catch (RemoteException e) {
  164. e.printStackTrace();
  165. }
  166. return false;
  167. }));
  168.  
  169. getProperty("Insira uma Morada: ",
  170. "Por favor insira pelo menos 1 carater na morada.\n",
  171. (() -> {
  172. try {
  173. return !pessoaInt.setMorada(sc.nextLine());
  174. } catch (RemoteException e) {
  175. e.printStackTrace();
  176. }
  177. return false;
  178. }));
  179.  
  180. getProperty("Insira o Código Postal: ",
  181. "Por favor insira um código postal neste formato '0000-000.\n",
  182. (() -> {
  183. try {
  184. return !pessoaInt.setCodigoPostal(sc.nextLine());
  185. } catch (RemoteException e) {
  186. e.printStackTrace();
  187. }
  188. return false;
  189. }));
  190.  
  191. getProperty("Insira Localidade: ",
  192. "Por favor insira um telemóvel com pelo menos 1 carater.\n",
  193. (() -> {
  194. try {
  195. return !pessoaInt.setLocalidade(sc.nextLine());
  196. } catch (RemoteException e) {
  197. e.printStackTrace();
  198. }
  199. return false;
  200. }));
  201.  
  202. getProperty("Insira o número do Cartão de Cidadão: ",
  203. "Por favor insira um número de cartão de cidadão com apenas 8 digítos.\n",
  204. (() -> {
  205. try {
  206. return !pessoaInt.setNumeroCC(sc.nextLine());
  207. } catch (RemoteException e) {
  208. e.printStackTrace();
  209. }
  210. return false;
  211. }));
  212.  
  213.  
  214. if (pessoaInt.isAluno()) {
  215. alunoInt = (AlunoInt) pessoaInt;
  216.  
  217. getProperty("Insira o Número de Aluno: ",
  218. "Por favor insira um número de aluno com apenas 10 digitos.\n",
  219. (() -> {
  220. try {
  221. return !alunoInt.setNumeroAluno(sc.nextLine());
  222. } catch (RemoteException e) {
  223. e.printStackTrace();
  224. }
  225. return false;
  226. }));
  227.  
  228. getProperty("Insira o Curso: ",
  229. "Por favora insira o nome do curso usando apenas letras.\n",
  230. (() -> {
  231. try {
  232. return !alunoInt.setCurso(sc.nextLine());
  233. } catch (RemoteException e) {
  234. e.printStackTrace();
  235. }
  236. return false;
  237. }));
  238. }
  239.  
  240. if (pessoaInt.isDocente()) {
  241. docenteInt = (DocenteInt) pessoaInt;
  242.  
  243. getProperty("Insira o Cargo: ",
  244. "Por favora insira o cargo usando apenas letras.\n",
  245. (() -> {
  246. try {
  247. return !docenteInt.setCargo(sc.nextLine());
  248. } catch (RemoteException e) {
  249. e.printStackTrace();
  250. }
  251. return false;
  252. }));
  253. }
  254.  
  255. if (pessoaInt.isFuncionario()) {
  256. funcionarioInt = (FuncionarioInt) pessoaInt;
  257.  
  258. getProperty("Insira a Função: ",
  259. "Por favora insira a função usando apenas letras.\n",
  260. (() -> {
  261. try {
  262. return !funcionarioInt.setFuncao(sc.nextLine());
  263. } catch (RemoteException e) {
  264. e.printStackTrace();
  265. }
  266. return false;
  267. }));
  268. }
  269.  
  270. Data.editData("a validade do cartão de cidadão", (DataInt) getRegistry(pessoaInt.getValidadeCC()));
  271. Data.editData("a data de nascimento", (DataInt) getRegistry(pessoaInt.getDataNascimento()));
  272.  
  273. escolheGenero();
  274. return true;
  275.  
  276. } catch (Exception e) {
  277. e.printStackTrace();
  278. return false;
  279. }
  280. }
  281.  
  282. private static boolean edit(PessoaInt pi) {
  283. pessoaInt = pi;
  284. try {
  285. getProperty(pessoaInt.print() + "\nPor favor insira a propriedade a editar: ",
  286. "Por favor insira uma característica correspondente a uma das disponíveis.\n",
  287. () -> {
  288. try {
  289. return contains(new String[]{
  290. "nome",
  291. "username",
  292. "password",
  293. "departamento",
  294. "nº telemóvel",
  295. "nº telemovel",
  296. "no telemóvel",
  297. "no telemovel",
  298. "morada",
  299. "código postal",
  300. "codigo postal",
  301. "localidade",
  302. "número c.c.",
  303. "numero c.c.",
  304. "número cc",
  305. "numero cc",
  306. "validade c.c.",
  307. "validade cc",
  308. "género",
  309. "genero",
  310. "data nascimento"
  311. }, r2 = sc.nextLine()) ||
  312. pessoaInt.isAluno() && contains(new String[]{
  313. "nºaluno",
  314. "no aluno",
  315. "curso"
  316. }, r2) ||
  317. pessoaInt.isFuncionario() && contains(new String[]{
  318. "função",
  319. "funçao",
  320. "funcão",
  321. "funcao"
  322. }, r2) ||
  323. pessoaInt.isDocente() && r2.toLowerCase().equals("cargo");
  324. } catch (Exception e) {
  325. e.printStackTrace();
  326. }
  327. return false;
  328. });
  329. } catch (Exception e) {
  330. e.printStackTrace();
  331. return false;
  332. }
  333.  
  334. switch (r2.toLowerCase()) {
  335. case "nome":
  336. getProperty("Por favor insira um nome só com letras.\n",
  337. () -> {
  338. try {
  339. return !pessoaInt.setNome(editProperty("Nome", pessoaInt.getNome()));
  340. } catch (Exception e) {
  341. e.printStackTrace();
  342. }
  343. return false;
  344. });
  345. break;
  346. case "username":
  347. getProperty("Por favor insira um username com entre 8 a 20 caracteres.\n",
  348. () -> {
  349. try {
  350. return !pessoaInt.setUsername(editProperty("Nome", pessoaInt.getUsername()));
  351. } catch (Exception e) {
  352. e.printStackTrace();
  353. }
  354. return false;
  355. });
  356. break;
  357. case "password":
  358. getProperty("Por favor insira uma password com entre 8 a 20 caracteres.\n",
  359. () -> {
  360. try {
  361. return !pessoaInt.setPassword(editProperty("Password", pessoaInt.getPassword()));
  362. } catch (Exception e) {
  363. e.printStackTrace();
  364. }
  365. return false;
  366. });
  367. break;
  368. case "departamento":
  369. //
  370. break;
  371. case "nº telemóvel":
  372. case "nº telemovel":
  373. case "no telemóvel":
  374. case "no telemovel":
  375. getProperty("Por favor insira um número de telemóvel com apenas 9 dígitos.\n",
  376. () -> {
  377. try {
  378. return !pessoaInt.setTelemovel(editProperty("Nº Telemóvel", String.valueOf(pessoaInt.getTelemovel())));
  379. } catch (Exception e) {
  380. e.printStackTrace();
  381. }
  382. return false;
  383. });
  384. case "morada":
  385. getProperty("Por favor insira pelo menos 1 carater na morada.\n",
  386. () -> {
  387. try {
  388. return !pessoaInt.setMorada(editProperty("Morada", pessoaInt.getMorada()));
  389. } catch (Exception e) {
  390. e.printStackTrace();
  391. }
  392. return false;
  393. });
  394. case "código postal":
  395. getProperty("Por favor insira um código postal no formato 0000-000.\n",
  396. () -> {
  397. try {
  398. return !pessoaInt.setCodigoPostal(editProperty("Codigo Postal", pessoaInt.getCodigoPostal()));
  399. } catch (Exception e) {
  400. e.printStackTrace();
  401. }
  402. return false;
  403. });
  404. case "localidade":
  405. getProperty("Por favor insira uma localidade com pelo menos 1 caractér.\n",
  406. () -> {
  407. try {
  408. return !pessoaInt.setLocalidade(editProperty("Localidade", pessoaInt.getLocalidade()));
  409. } catch (Exception e) {
  410. e.printStackTrace();
  411. }
  412. return false;
  413. });
  414. case "número c.c.":
  415. case "numero c.c.":
  416. case "número cc":
  417. case "numero cc":
  418. getProperty("Por favor insira um código postal no formato 0000-000.\n",
  419. () -> {
  420. try {
  421. return !pessoaInt.setNumeroCC(editProperty("Codigo Postal", String.valueOf(pessoaInt.getNumeroCC())));
  422. } catch (Exception e) {
  423. e.printStackTrace();
  424. }
  425. return false;
  426. });
  427. case "validade c.c.":
  428. case "validade cc":
  429. try {
  430. Data.editData("a validade do cartão de cidadão", (DataInt) getRegistry(pessoaInt.getValidadeCC()));
  431. } catch (Exception e) {
  432. e.printStackTrace();
  433. }
  434. break;
  435. case "género":
  436. case "genero":
  437. try {
  438. System.out.print("Género Antigo: " + pessoaInt.getGenero());
  439. escolheGenero();
  440. } catch (Exception e) {
  441. e.printStackTrace();
  442. }
  443. escolheGenero();
  444. break;
  445. case "data nascimento":
  446. try {
  447. Data.editData("a data de nascimento", (DataInt) getRegistry(pessoaInt.getDataNascimento()));
  448. } catch (Exception e) {
  449. e.printStackTrace();
  450. }
  451. break;
  452. case "nº aluno":
  453. case "numero de aluno":
  454. alunoInt = (AlunoInt) pessoaInt;
  455. getProperty("Por favor insira um número de aluno com apenas 10 digitos.\n",
  456. () -> {
  457. try {
  458. return (!alunoInt.setNumeroAluno(editProperty("Nº Aluno", String.valueOf(alunoInt.getNumeroAluno()))));
  459. } catch (Exception e) {
  460. e.printStackTrace();
  461. }
  462. return false;
  463. });
  464. case "curso":
  465. alunoInt = (AlunoInt) pessoaInt;
  466. getProperty("Por favor insira um curso com pelo menos 1 caractér.\n",
  467. () -> {
  468. try {
  469. return (!alunoInt.setCurso(editProperty("Curso", alunoInt.getCurso())));
  470. } catch (Exception e) {
  471. e.printStackTrace();
  472. }
  473. return false;
  474. });
  475. case "cargo":
  476. docenteInt = (DocenteInt) pessoaInt;
  477. getProperty("Por favor insira um cargo com pelo menos 1 caractér.\n",
  478. () -> {
  479. try {
  480. return (!docenteInt.setCargo(editProperty("Cargo", docenteInt.getCargo())));
  481. } catch (Exception e) {
  482. e.printStackTrace();
  483. }
  484. return false;
  485. });
  486. case "função":
  487. case "funçao":
  488. case "funcão":
  489. case "funcao":
  490. funcionarioInt = (FuncionarioInt) pessoaInt;
  491. getProperty("Por favor insira um cargo com pelo menos 1 caractér.\n",
  492. () -> {
  493. try {
  494. return (!funcionarioInt.setFuncao(editProperty("Funcção", funcionarioInt.getFuncao())));
  495. } catch (Exception e) {
  496. e.printStackTrace();
  497. }
  498. return false;
  499. });
  500. }
  501.  
  502. getProperty(
  503. "Quer editar mais alguma Propriedade?\n" +
  504. "1 - Sim\n" +
  505. "2 - Não\n",
  506. "Por favor insira um número correspondente a uma das opções disponíveis.\n",
  507. () -> contains(new int[]{1, 2}, r1 = sc.nextInt()));
  508.  
  509. switch (r1) {
  510. case 1:
  511. edit(pessoaInt);
  512. break;
  513.  
  514. case 2:
  515. }
  516. return true;
  517. }
  518. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement