From 19d6b4f0757be732791a21dc663f47130c1aaada Mon Sep 17 00:00:00 2001 From: Cristobal Bernal Mayordomo <90463533+Racriberny@users.noreply.github.com> Date: Mon, 21 Nov 2022 23:21:21 +0100 Subject: [PATCH] Clases --- .../loladvisor/LolAdvisorHelp.java | 32 +++++++ .../loladvisor/LolAdvisorRunApp.java | 86 +++++++++++++++++++ .../loladvisor/dao/LolDao.java | 12 +++ 3 files changed, 130 insertions(+) create mode 100644 src/main/java/com/cristobalbernal/loladvisor/LolAdvisorHelp.java create mode 100644 src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java create mode 100644 src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java diff --git a/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorHelp.java b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorHelp.java new file mode 100644 index 0000000..7f0a553 --- /dev/null +++ b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorHelp.java @@ -0,0 +1,32 @@ +package com.cristobalbernal.loladvisor; + +import org.springframework.stereotype.Component; +import org.springframework.util.ResourceUtils; + +import javax.annotation.PostConstruct; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.stream.Collectors; + +@Component +public class LolAdvisorHelp { + private String help; + + @PostConstruct + public void init() { + try { + //@formatter:off + help = Files + .lines(Paths.get(ResourceUtils.getFile("classpath:Ayuda.txt").toURI())) + .collect(Collectors.joining("\n")); + //@formatter:on + } catch (IOException ioe) { + ioe.printStackTrace(); + } + } + + public String getHelp() { + return help; + } +} diff --git a/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java new file mode 100644 index 0000000..1a94dab --- /dev/null +++ b/src/main/java/com/cristobalbernal/loladvisor/LolAdvisorRunApp.java @@ -0,0 +1,86 @@ +package com.cristobalbernal.loladvisor; +import com.cristobalbernal.loladvisor.model.Lol; +import com.cristobalbernal.loladvisor.service.LolQueryService; +import com.cristobalbernal.loladvisor.service.LolService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +@Component +public class LolAdvisorRunApp { + @Autowired + private LolService videogameService; + @Autowired + private LolQueryService lolQueryService; + @Autowired + private LolAdvisorHelp help; + + public void run(String[] args) { + if(args.length < -1) { + System.out.println("Error de sintaxis"); + System.out.println(help.getHelp()); + } else if (args.length == 1){ + switch(args[0].toLowerCase()) { + case "-lg": + videogameService.findAllRol().forEach(System.out::println); + break; + case "-h": + System.out.println(help.getHelp()); + break; + default: + System.out.println("Error de sintaxis"); + System.out.println(help.getHelp()); + } + } else if (args.length % 2 != 0) { + System.out.println("Error de sintaxis"); + System.out.println(help.getHelp()); + } else if (args.length > 8) { + System.out.println("Error de sintaxis"); + System.out.println(help.getHelp()); + } else if (args.length == 0) { + System.out.println("No se ha pasado ningún parámetro"); + System.out.println(help.getHelp()); + } else { + List argumentos = new ArrayList<>(); + + 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) { + switch (argumento[0].toLowerCase()) { + case "-ag": + lolQueryService.anyName(argumento[1].split(",")); + break; + case "-tg": + lolQueryService.allName(argumento[1].split(",")); + break; + case "-t": + lolQueryService.titleContains(argumento[1]); + break; + default: error = true; + System.out.println("Error de sintaxis"); + System.out.println(help.getHelp()); + } + } + + if (!error) { + 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())); + } else { + System.out.println("No hay personajes que cumplan esos criterios. Lo sentimos"); + } + } + } + } +} diff --git a/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java new file mode 100644 index 0000000..62ebdf1 --- /dev/null +++ b/src/main/java/com/cristobalbernal/loladvisor/dao/LolDao.java @@ -0,0 +1,12 @@ +package com.cristobalbernal.loladvisor.dao; + +import com.cristobalbernal.loladvisor.model.Lol; +import java.util.Collection; + +public interface LolDao { + public Lol findById(long id); + public Collection findAll(); + public void insert(Lol videogame); + public void edit(Lol videogame); + public void delete(long id); +}