From 4af2e505f24af25d932391c5014891aa5a5d4fed Mon Sep 17 00:00:00 2001 From: Cristobal Bernal Mayordomo <90463533+Racriberny@users.noreply.github.com> Date: Mon, 21 Nov 2022 17:23:54 +0100 Subject: [PATCH] Esta mal --- .../loladvisor/service/LolQueryService.java | 10 ++-- .../loladvisor/service/LolQueryServices.java | 47 +++++++++++++++++++ .../loladvisor/service/LolService.java | 11 +++++ 3 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServices.java create mode 100644 src/main/java/com/cristobalbernal/loladvisor/service/LolService.java diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java index 8bce2d4..f100f78 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java @@ -5,10 +5,8 @@ import com.cristobalbernal.loladvisor.model.Lol; import java.util.Collection; public interface LolQueryService { - public Collection exec(); - public LolQueryService anyGenre(String... genres); - public LolQueryService allGenres(String... genres); - public LolQueryService year(String name); - public LolQueryService betweenYears(String from, String to); - public LolQueryService titleContains(String title); + public LolQueryService exec(); + public LolQueryService anyDificultad(String... dificultad); + public LolQueryService anyRol(String... rol); + } diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServices.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServices.java new file mode 100644 index 0000000..35c6a2e --- /dev/null +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServices.java @@ -0,0 +1,47 @@ +package com.cristobalbernal.loladvisor.service; + +import com.cristobalbernal.loladvisor.dao.LolDao; +import com.cristobalbernal.loladvisor.model.Lol; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +@Service +public class LolQueryServices implements LolQueryService { + + private LolDao dao; + + private Predicate predicate; + + public void init(){ + predicate = null; + } + + + + @Override + public LolQueryService exec() { + return (LolQueryService) dao.findAll() + .stream() + .filter(predicate) + .collect(Collectors.toList()); + + } + + @Override + public LolQueryService anyDificultad(String... dificultad) { + Predicate lolPredicate = (lol -> Arrays.stream(dificultad).anyMatch(lol.getNombre()::contains)); + predicate = (predicate == null) ? lolPredicate : predicate.and(lolPredicate); + return this; + } + + @Override + public LolQueryService anyRol(String... rol) { + Predicate pAllGenres = (lol -> Arrays.stream(rol).allMatch(lol.getRol()::contains)); + predicate = (predicate == null) ? pAllGenres : predicate.and(pAllGenres); + return this; + } +} diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java new file mode 100644 index 0000000..83667c0 --- /dev/null +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java @@ -0,0 +1,11 @@ +package com.cristobalbernal.loladvisor.service; + +import com.cristobalbernal.loladvisor.dao.LolDao; + +public class LolService { + LolDao filmDao; + + LolQueryService queryService; + + +}