diff --git a/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java index 45fd4ff..ad13312 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java +++ b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java @@ -1,4 +1,5 @@ package com.cristobalbernal.loladvisor; +import com.cristobalbernal.loladvisor.dao.LolDaoImplMemory; import com.cristobalbernal.loladvisor.model.Lol; import com.cristobalbernal.loladvisor.service.LolQueryService; import com.cristobalbernal.loladvisor.service.LolService; @@ -15,6 +16,7 @@ public class LolAdvisorRunApp { private LolService videogameService; @Autowired private LolQueryService lolQueryService; + private LolDaoImplMemory daoImplMemory; @Autowired private LolAdvisorHelp help; @@ -62,6 +64,20 @@ public class LolAdvisorRunApp { case "-t": lolQueryService.titleContains(argumento[1]); break; + case "-l": + daoImplMemory.findAll(); + break; + case "-c": + daoImplMemory.mostrarCantidadPersonajes(); + break; + case "-p": + daoImplMemory.buscarPorID(Integer.parseInt(argumento[1])); + break; + case "-df": + lolQueryService.mostrarPorDificultada(argumento[1].split(",")); + break; + + default: error = true; System.out.println("Error de sintaxis"); System.out.println(help.getHelp()); diff --git a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java index 62ebdf1..407a0ec 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java +++ b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java @@ -4,9 +4,10 @@ import com.cristobalbernal.loladvisor.model.Lol; import java.util.Collection; public interface LolDao { - public Lol findById(long id); + public void buscarPorID(long id); public Collection findAll(); - public void insert(Lol videogame); - public void edit(Lol videogame); - public void delete(long id); + public void insertarPersonaje(Lol videogame); + public void editarPersonaje(Lol videogame); + public void eliminarPersonaje(long id); + public void mostrarCantidadPersonajes(); } diff --git a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java index ef612c9..99a5bea 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java +++ b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java @@ -23,34 +23,39 @@ public class LolDaoImplMemory implements LolDao { public void init() { lol = UtilLolFileReader.readFile(appConfig.getFile(), appConfig.getSeparator(), appConfig.getListSeparator()); } - - public Lol findById(long id) { + @Override + public void buscarPorID(long id) { Optional result = lol.stream().filter(lol -> lol.getId() == id).findFirst(); - return result.orElse(null); + System.out.println(result.orElse(null)); } - + @Override public Collection findAll() { return lol; } - public void insert(Lol videogame) { + public void insertarPersonaje(Lol videogame) { lol.add(videogame); } - - public void edit(Lol videogame) { + @Override + public void editarPersonaje(Lol videogame) { int i = getIndexOf(videogame.getId()); if(i != -1) { lol.set(i, videogame); } } - - public void delete(long id) { + @Override + public void eliminarPersonaje(long id) { int i = getIndexOf(id); if(i != -1) { lol.remove(i); } } - + + @Override + public void mostrarCantidadPersonajes() { + System.out.println(lol.size()); + } + private int getIndexOf(long id) { boolean founds = false; int i = 0; diff --git a/src/main/java/com/cristobalbernal/loladvisor/dao/UtilLolFileReader.java b/src/main/java/com/cristobalbernal/loladvisor/dao/UtilLolFileReader.java index 5ce5aa6..0075cf8 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/dao/UtilLolFileReader.java +++ b/src/main/java/com/cristobalbernal/loladvisor/dao/UtilLolFileReader.java @@ -20,7 +20,7 @@ public class UtilLolFileReader { .map(line -> { String[] values = line.split(separator); return new Lol(Long.parseLong(values[0]), values[1], - Arrays.asList(values[3].split(listSeparator)), values[4]); + Arrays.asList(values[2].split(listSeparator)),values[3], values[4]); }).collect(Collectors.toList()); // @formatter:on diff --git a/src/main/java/com/cristobalbernal/loladvisor/model/Lol.java b/src/main/java/com/cristobalbernal/loladvisor/model/Lol.java index 024c400..4d3f7a1 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/model/Lol.java +++ b/src/main/java/com/cristobalbernal/loladvisor/model/Lol.java @@ -6,15 +6,25 @@ public class Lol { private long id; private String nombre; private List rol; + private String dificultad; private String genero; public Lol() {} - public Lol(long id, String nombre, List rol, String plataformas) { + public String getDificultad() { + return dificultad; + } + + public void setDificultad(String dificultad) { + this.dificultad = dificultad; + } + + public Lol(long id, String nombre, List rol, String dificultad, String genero) { this.id = id; this.nombre = nombre; this.rol = rol; - this.genero = plataformas; + this.dificultad = dificultad; + this.genero = genero; } public long getId() { @@ -51,7 +61,7 @@ public class Lol { @Override public String toString() { return "Videogame [id=" + id + ", nombre=" + nombre + ", Rol=" - + rol.toString() + ", plataformas=" + genero + "]"; + + rol.toString() + ", plataformas=" + genero + ", dificultada= " + dificultad +"]"; } diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java index 5185e4f..6e2f1a8 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryService.java @@ -8,4 +8,7 @@ public interface LolQueryService { public LolQueryService anyName(String... name); public LolQueryService allName(String... name); public LolQueryService titleContains(String title); + public LolQueryService mostrarPorDificultada(String... dificultad); + public LolQueryService mostrarPorGenero(String... genero); + } diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java index cb73f5c..cc2d249 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java @@ -54,4 +54,17 @@ public class LolQueryServiceImpl implements LolQueryService { return this; } + @Override + public LolQueryService mostrarPorDificultada(String... dificultad) { + Predicate pAnyGenre = (lol -> Arrays.stream(dificultad).anyMatch(lol.getDificultad()::contains)); + predicate = (predicate == null) ? pAnyGenre : predicate.and(pAnyGenre); + return this; + } + + @Override + public LolQueryService mostrarPorGenero(String... genero) { + Predicate pAnyGenre = (lol -> Arrays.stream(genero).anyMatch(lol.getGenero()::contains)); + predicate = (predicate == null) ? pAnyGenre : predicate.and(pAnyGenre); + return this; + } } diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java index 40377e9..5d2b259 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java @@ -40,6 +40,9 @@ public class LolService { public Collection findByAllGenres(String... genres) { return queryService.allName(genres).exec(); } + public Collection buscarPorDifucultad(String... dificultada){ + return null; + } public Collection findByTitleContains(String title) { return queryService.titleContains(title).exec();