From fedecdba11acf03ed94704f9c9979f309ca9f643 Mon Sep 17 00:00:00 2001 From: Cristobal Bernal Mayordomo <90463533+Racriberny@users.noreply.github.com> Date: Wed, 23 Nov 2022 13:04:02 +0100 Subject: [PATCH] final creo --- Diagrama.png | Bin 0 -> 43340 bytes README.md | 67 ++++++++++++++++++ .../loladvisor/LolAdvisorRunApp.java | 9 ++- .../loladvisor/dao/LolDaoImplMemory.java | 2 +- .../service/LolQueryServiceImpl.java | 6 +- .../loladvisor/service/LolService.java | 2 +- 6 files changed, 76 insertions(+), 10 deletions(-) create mode 100644 Diagrama.png create mode 100644 README.md diff --git a/Diagrama.png b/Diagrama.png new file mode 100644 index 0000000000000000000000000000000000000000..0aa6072462b08fc8e729c21dbd8aebfcb23154b4 GIT binary patch literal 43340 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 D?BrS1 literal 0 HcmV?d00001 diff --git a/README.md b/README.md new file mode 100644 index 0000000..a7ad32d --- /dev/null +++ b/README.md @@ -0,0 +1,67 @@ +# TRABAJO SPRING CORE - Cristobal Bernal + +He realizado el trabajo personajes del lol, aquí muestro el diagrama de clases empleado: + +![Image](Diagrama.png) + +Aqui muestro el fichero csv que uilizado: + +``` +id,name,rol,dificultad,genero +1,Ahri,Asesina-Mago,Media,Mujer +2,Atrox,Luchador-Asesino,Media,Hombre +3,Brand,Mago-Apoyo,Media,Hombre +4,Ezreal,Tirador-Asesino,Media,Hombre +5,Alistar,Apoyo-Tanque,Media,Hombre +6,Amumu,Tanques-Apoyo,Baja,Hombre +7,Akali,Asesina-Luchador,Media,Mujer +8,Fiora,Asesina-Tanque,Baja,Mujer +9,Veigar,Mago-Apoyo,Media,Hombre +10,Kaisa,Tirador-Asesina,Media,Mujer +11,Karma,Apoyo-Mago,Baja,Mujer +12,Ksante,Tanques-Luchador,Dificil,Hombre +13,Diana,Asesina-Luchador,Media,Mujer +14,Ekko,Asesino-Apoyo,Dificil,Hombre +15,Elise,Asesina-Mago,Dificil,Mujer +``` +Al iniciar el programa, si no hay parámetros definidos te debería mostrar una alerta de que no se han indicado, y mostrará el contenido del fichero de ayuda, para saber que parámetros puedes utilizar: + +``` +No se ha pasado ningin parametro +Sintaxis: java -jar videogameadvisor.jar [OPCIONES] + + -lg + Lista los diferentes roles de los personajes. + No se pueden utilizar mas parametros. + + -ag genero1,genero2,genero... + Lista aquellos personajes que pertenecen a al menos uno de los roles + que se indican. El listado de roles no puede incluir espacios. + + -tg genero1,genero2,genero... + Lista aquellos roles que pertenecen a todos y cada uno de los + roles que se indican. El listado de roles no puede incluir espacios. + + -t titulo + Lista aquellos roles cuyo titulo contiene la cadena proporcionada. + Se ignorar el uso de mayasculas/minisculas en la comparacion. + + -h + Muestra este mensaje de ayuda. + +EJEMPLOS DE USO + +java -jar videogameadvisor.jar -ag Mago,Apoyo +Muestra los personahes con el rol de Mago y Apoyo. + +java -jar videogameadvisor.jar -t Kai +Muestra los personajes cuyo empiezan con Kai. + +LICENCIAS + +Los datos utilizados sobre videojuegos utilizados en este ejemplo son +reales y creados por mi mismo. Ten en cuenta +que solo puede ser usada con fines personales y no comerciales. +``` + + diff --git a/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java index 1a94dab..45fd4ff 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java +++ b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java @@ -49,7 +49,6 @@ public class LolAdvisorRunApp { for(int i = 0; i < args.length; i += 2) { argumentos.add(new String[] {args[i], args[i + 1]}); } - boolean error = false; for(String[] argumento : argumentos) { @@ -73,10 +72,10 @@ public class LolAdvisorRunApp { Collection result = lolQueryService.exec(); System.out.printf("%s\t%-50s\t%s\t%s\n","ID","Nombre", "Rol", "Géneros"); if (result != null) { - result.forEach(vg -> System.out.printf("%s\t%-50s\t%s\t%s\n", - vg.getId(), vg.getNombre(), - String.join(", ", vg.getRol()), - vg.getGenero())); + result.forEach(lol -> System.out.printf("%s\t%-50s\t%s\t%s\n", + lol.getId(), lol.getNombre(), + String.join(", ", lol.getRol()), + lol.getGenero())); } else { System.out.println("No hay personajes que cumplan esos criterios. Lo sentimos"); } diff --git a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java index ccef6c0..ef612c9 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java +++ b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java @@ -25,7 +25,7 @@ public class LolDaoImplMemory implements LolDao { } public Lol findById(long id) { - Optional result = lol.stream().filter(vg -> vg.getId() == id).findFirst(); + Optional result = lol.stream().filter(lol -> lol.getId() == id).findFirst(); return result.orElse(null); } diff --git a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java index 523e269..cb73f5c 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java @@ -35,21 +35,21 @@ public class LolQueryServiceImpl implements LolQueryService { @Override public LolQueryService anyName(String... name) { - Predicate pAnyGenre = (vg -> Arrays.stream(name).anyMatch(vg.getNombre()::contains)); + Predicate pAnyGenre = (lol -> Arrays.stream(name).anyMatch(lol.getNombre()::contains)); predicate = (predicate == null) ? pAnyGenre : predicate.and(pAnyGenre); return this; } @Override public LolQueryService allName(String... name) { - Predicate pAllGenre = (vg -> Arrays.stream(name).allMatch(vg.getNombre()::contains)); + Predicate pAllGenre = (lol -> Arrays.stream(name).allMatch(lol.getNombre()::contains)); predicate = (predicate == null) ? pAllGenre : predicate.and(pAllGenre); return this; } @Override public LolQueryService titleContains(String title) { - Predicate pTitleContains = (vg -> vg.getNombre().toLowerCase().contains(title.toLowerCase())); + Predicate pTitleContains = (lol -> lol.getNombre().toLowerCase().contains(title.toLowerCase())); predicate = (predicate == null) ? pTitleContains : predicate.and(pTitleContains); 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 108308f..40377e9 100644 --- a/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java +++ b/src/main/java/com/cristobalbernal/loladvisor/service/LolService.java @@ -22,7 +22,7 @@ public class LolService { result = lolDao.findAll() .stream() - .map(vg -> vg.getRol()) + .map(lol -> lol.getRol()) .flatMap(list -> list.stream()) .distinct() .sorted()