-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBiblioteca.java
More file actions
55 lines (45 loc) · 1.47 KB
/
Biblioteca.java
File metadata and controls
55 lines (45 loc) · 1.47 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
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
public class Biblioteca {
private List<Livro> livros = new ArrayList<>();
private List<Autor> autores = new ArrayList<>();
public void adicionarAutor(Autor a) {
this.autores.add(a);
}
public void adicionarLivro(Livro l) {
this.livros.add(l);
}
public List<Livro> listarLivros() {
return livros;
}
public List<Autor> listarAutores() {
return autores;
}
public static Autor encontrarAutorPorId(List<Autor> autores, int id) {
Optional<Autor> autorEncontrado = autores.stream()
.filter(autor -> autor.getId() == id)
.findFirst();
return autorEncontrado.orElse(null);
}
public List<Livro> listarLivrosDisponiveis() {
return livros.stream()
.filter(Livro::getDisponivel)
.collect(Collectors.toList());
}
public boolean marcarLivroComoNaoDisponivel(int id) {
Optional<Livro> livroOptional = livros.stream()
.filter(livro -> livro.getId() == id && livro.getDisponivel())
.findFirst();
if (livroOptional.isPresent()) {
Livro livro = livroOptional.get();
livro.setDisponivel(false);
livro.setDataAtualizacao(new Date());
return true;
} else {
return false;
}
}
}