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; + + +}