-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathContaController.java
More file actions
146 lines (108 loc) · 3.75 KB
/
ContaController.java
File metadata and controls
146 lines (108 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
package conta_bancaria.controller;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import conta_bancaria.model.Conta;
import conta_bancaria.repository.ContaRepository;
public class ContaController implements ContaRepository {
// Criar a Collection ArrayList
private ArrayList<Conta> listaContas = new ArrayList<Conta>();
// Variável para controlar os números das contas
int numero = 0;
@Override
public void procurarPorNumero(int numero) {
Optional <Conta> conta = buscarNaCollection(numero);
if (conta.isPresent())
conta.get().visualizar();
else
System.out.printf("\nA Conta número %d não foi encontrada", numero);
}
@Override
public void listarTodas() {
for(var conta : listaContas) {
conta.visualizar();
}
}
@Override
public void listarPorTitular(String titular) {
List<Conta> listaTitulares = listaContas.stream()
.filter(c -> c.getTitular().contains(titular))
.collect(Collectors.toList());
if(listaTitulares.isEmpty())
System.out.printf("\nNenhuma conta foi encontrada com base no critério: %s", titular);
for(var conta : listaTitulares)
conta.visualizar();
}
@Override
public void cadastrar(Conta conta) {
listaContas.add(conta);
System.out.println("A conta foi criada com sucesso.");
}
@Override
public void atualizar(Conta conta) {
Optional <Conta> buscaConta = buscarNaCollection(conta.getNumero());
if (buscaConta.isPresent()) {
listaContas.set(listaContas.indexOf(buscaConta.get()), conta);
System.out.printf("\nA Conta número %d foi atualizada com sucesso!", conta.getNumero());
} else {
System.out.printf("\nA Conta número %d não foi encontrada", conta.getNumero());
}
}
@Override
public void deletar(int numero) {
Optional <Conta> conta = buscarNaCollection(numero);
if (conta.isPresent()) {
if(listaContas.remove(conta.get()) == true);
System.out.printf("\nA Conta número %d foi excluída com sucesso", numero);
} else {
System.out.printf("\nA Conta número %d não foi encontrada", numero);
}
}
@Override
public void sacar(int numero, float valor) {
Optional <Conta> conta = buscarNaCollection(numero);
if (conta.isPresent()) {
if(conta.get().sacar(valor) == true) {
System.out.printf("O saque de R$%.2f foi efetuado com sucesso na conta número %d", valor, numero);
}
} else {
System.out.printf("\nA Conta número %d não foi encontrada", numero);
}
}
@Override
public void depositar(int numero, float valor) {
Optional <Conta> conta = buscarNaCollection(numero);
if (conta.isPresent()) {
conta.get().depositar(valor);
System.out.printf("O depósito de R$%.2f foi efetuado com sucesso na conta número %d", valor, numero);
} else {
System.out.printf("\nA Conta número %d não foi encontrada", numero);
}
}
@Override
public void transferir(int numeroOrigem, int numeroDestino, float valor) {
Optional <Conta> contaOrigem = buscarNaCollection(numeroOrigem);
Optional <Conta> contaDestino = buscarNaCollection(numeroDestino);
if (contaOrigem.isPresent() && contaDestino.isPresent()) {
if(contaOrigem.get().sacar(valor) == true) {
contaDestino.get().depositar(valor);
System.out.printf("A transferência de R$%.2f da conta número %d foi efetuado com sucesso para a conta número %d", valor, numeroOrigem, numeroDestino);
}
} else {
System.out.printf("\nA Conta número %d não foi encontrada", numero);
}
}
// Métodos Auxiliares
public int gerarNumero() {
return ++ numero;
}
public Optional<Conta> buscarNaCollection(int numero) {
for(var conta : listaContas) {
if(conta.getNumero() == numero) {
return Optional.of(conta);
}
}
return Optional.empty();
}
}