Browse Source

final creo

master
Cristobal Bernal Mayordomo 1 year ago
parent
commit
fedecdba11
6 changed files with 76 additions and 10 deletions
  1. BIN
      Diagrama.png
  2. +67
    -0
      README.md
  3. +4
    -5
      src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java
  4. +1
    -1
      src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java
  5. +3
    -3
      src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java
  6. +1
    -1
      src/main/java/com/cristobalbernal/loladvisor/service/LolService.java

BIN
Diagrama.png View File

Before After
Width: 927  |  Height: 609  |  Size: 42 KiB

+ 67
- 0
README.md View File

@ -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.
```

+ 4
- 5
src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java View File

@ -49,7 +49,6 @@ public class LolAdvisorRunApp {
for(int i = 0; i < args.length; i += 2) { for(int i = 0; i < args.length; i += 2) {
argumentos.add(new String[] {args[i], args[i + 1]}); argumentos.add(new String[] {args[i], args[i + 1]});
} }
boolean error = false; boolean error = false;
for(String[] argumento : argumentos) { for(String[] argumento : argumentos) {
@ -73,10 +72,10 @@ public class LolAdvisorRunApp {
Collection<Lol> result = lolQueryService.exec(); Collection<Lol> result = lolQueryService.exec();
System.out.printf("%s\t%-50s\t%s\t%s\n","ID","Nombre", "Rol", "Géneros"); System.out.printf("%s\t%-50s\t%s\t%s\n","ID","Nombre", "Rol", "Géneros");
if (result != null) { 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 { } else {
System.out.println("No hay personajes que cumplan esos criterios. Lo sentimos"); System.out.println("No hay personajes que cumplan esos criterios. Lo sentimos");
} }


+ 1
- 1
src/main/java/com/cristobalbernal/loladvisor/dao/LolDaoImplMemory.java View File

@ -25,7 +25,7 @@ public class LolDaoImplMemory implements LolDao {
} }
public Lol findById(long id) { public Lol findById(long id) {
Optional<Lol> result = lol.stream().filter(vg -> vg.getId() == id).findFirst();
Optional<Lol> result = lol.stream().filter(lol -> lol.getId() == id).findFirst();
return result.orElse(null); return result.orElse(null);
} }


+ 3
- 3
src/main/java/com/cristobalbernal/loladvisor/service/LolQueryServiceImpl.java View File

@ -35,21 +35,21 @@ public class LolQueryServiceImpl implements LolQueryService {
@Override @Override
public LolQueryService anyName(String... name) { public LolQueryService anyName(String... name) {
Predicate<Lol> pAnyGenre = (vg -> Arrays.stream(name).anyMatch(vg.getNombre()::contains));
Predicate<Lol> pAnyGenre = (lol -> Arrays.stream(name).anyMatch(lol.getNombre()::contains));
predicate = (predicate == null) ? pAnyGenre : predicate.and(pAnyGenre); predicate = (predicate == null) ? pAnyGenre : predicate.and(pAnyGenre);
return this; return this;
} }
@Override @Override
public LolQueryService allName(String... name) { public LolQueryService allName(String... name) {
Predicate<Lol> pAllGenre = (vg -> Arrays.stream(name).allMatch(vg.getNombre()::contains));
Predicate<Lol> pAllGenre = (lol -> Arrays.stream(name).allMatch(lol.getNombre()::contains));
predicate = (predicate == null) ? pAllGenre : predicate.and(pAllGenre); predicate = (predicate == null) ? pAllGenre : predicate.and(pAllGenre);
return this; return this;
} }
@Override @Override
public LolQueryService titleContains(String title) { public LolQueryService titleContains(String title) {
Predicate<Lol> pTitleContains = (vg -> vg.getNombre().toLowerCase().contains(title.toLowerCase()));
Predicate<Lol> pTitleContains = (lol -> lol.getNombre().toLowerCase().contains(title.toLowerCase()));
predicate = (predicate == null) ? pTitleContains : predicate.and(pTitleContains); predicate = (predicate == null) ? pTitleContains : predicate.and(pTitleContains);
return this; return this;
} }


+ 1
- 1
src/main/java/com/cristobalbernal/loladvisor/service/LolService.java View File

@ -22,7 +22,7 @@ public class LolService {
result = lolDao.findAll() result = lolDao.findAll()
.stream() .stream()
.map(vg -> vg.getRol())
.map(lol -> lol.getRol())
.flatMap(list -> list.stream()) .flatMap(list -> list.stream())
.distinct() .distinct()
.sorted() .sorted()


Loading…
Cancel
Save