@ -0,0 +1,22 @@ | |||||
package com.antoniofrische.perifericosAdvisor; | |||||
import com.antoniofrische.perifericosAdvisor.config.AppConfig; | |||||
import org.springframework.context.ApplicationContext; | |||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext; | |||||
public class MovieAdvisorApp { | |||||
public static void main(String[] args) { | |||||
ApplicationContext appContext = new AnnotationConfigApplicationContext(AppConfig.class); | |||||
MovieAdvisorRunApp runApp = appContext.getBean(MovieAdvisorRunApp.class); | |||||
runApp.run(args); | |||||
((AnnotationConfigApplicationContext) appContext).close(); | |||||
} | |||||
} |
@ -0,0 +1,36 @@ | |||||
package com.antoniofrische.perifericosAdvisor; | |||||
import java.io.IOException; | |||||
import java.nio.file.Files; | |||||
import java.nio.file.Paths; | |||||
import java.util.stream.Collectors; | |||||
import org.springframework.stereotype.Component; | |||||
import org.springframework.util.ResourceUtils; | |||||
@Component | |||||
public class MovieAdvisorHelp { | |||||
private String help; | |||||
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 e) { | |||||
System.err.println("Error cargando el texto de ayuda"); | |||||
System.exit(-1); | |||||
} | |||||
} | |||||
public String getHelp() { | |||||
return help; | |||||
} | |||||
} |
@ -0,0 +1,97 @@ | |||||
package com.antoniofrische.perifericosAdvisor; | |||||
import java.util.ArrayList; | |||||
import java.util.Collection; | |||||
import java.util.List; | |||||
import java.util.stream.Collectors; | |||||
import org.springframework.beans.factory.annotation.Autowired; | |||||
import org.springframework.stereotype.Component; | |||||
import com.antoniofrische.perifericosAdvisor.model.Periferico; | |||||
import com.antoniofrische.perifericosAdvisor.service.PerifericoQueryService; | |||||
import com.antoniofrische.perifericosAdvisor.service.PerifericoService; | |||||
@Component | |||||
public class MovieAdvisorRunApp { | |||||
@Autowired | |||||
PerifericoService perifericoService; | |||||
@Autowired | |||||
PerifericoQueryService perifericoQueryService; | |||||
@Autowired | |||||
MovieAdvisorHelp 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": | |||||
perifericoService.findAllTipo().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 { | |||||
List<String[]> 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 "-at": | |||||
perifericoQueryService.anyTipo(argumento[1].split(",")); | |||||
break; | |||||
case "-tt": | |||||
perifericoQueryService.allTipo(argumento[1].split(",")); | |||||
break; | |||||
case "-c": | |||||
perifericoQueryService.color(null); | |||||
break; | |||||
case "-t": | |||||
perifericoQueryService.titleContains(argumento[1]); | |||||
break; | |||||
default: error = true; | |||||
System.out.println("Error de sintaxis"); | |||||
System.out.println(help.getHelp()); | |||||
} | |||||
} | |||||
if (!error) { | |||||
Collection<Periferico> result = perifericoQueryService.exec(); | |||||
System.out.printf("%s\t%-50s\t%s\t%s\n","ID","Título", "Año", "Géneros"); | |||||
if (result != null) { | |||||
result.forEach(f -> System.out.printf("%s\t%-50s\t%s\t%s\n", | |||||
f.getId(), f.getNombre(), f.getColor(), | |||||
f.getTipo().strip().collect(Collectors.joining(", ")))); | |||||
} else { | |||||
System.out.println("No hay películas que cumplan esos criterios. Lo sentimos"); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@ -0,0 +1,7 @@ | |||||
#Generated by Maven Integration for Eclipse | |||||
#Sat Nov 26 12:43:06 CET 2022 | |||||
m2e.projectLocation=C\:\\Users\\AntonioFrische\\OneDrive - ABACCO Solutions\\Documents\\Schule_22_23_CFGS\\Acceso_Datos\\SpringTool_4\\SpringWorkspace\\perifericosAdvisor | |||||
m2e.projectName=perifericosAdvisor | |||||
groupId=com.antoniofrische | |||||
artifactId=19-MovieAdvisor | |||||
version=0.0.1-SNAPSHOT |
@ -0,0 +1,22 @@ | |||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | |||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||||
<modelVersion>4.0.0</modelVersion> | |||||
<groupId>com.antoniofrische</groupId> | |||||
<artifactId>19-MovieAdvisor</artifactId> | |||||
<version>0.0.1-SNAPSHOT</version> | |||||
<name>19-MovieAdvisor</name> | |||||
<description>Ejemplo que integra todos los conocimientos del curso de Spring.</description> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>org.springframework</groupId> | |||||
<artifactId>spring-context</artifactId> | |||||
<version>5.0.8.RELEASE</version> | |||||
</dependency> | |||||
</dependencies> | |||||
<properties> | |||||
<maven.compiler.source>1.8</maven.compiler.source> | |||||
<maven.compiler.target>1.8</maven.compiler.target> | |||||
</properties> | |||||
</project> |
@ -0,0 +1,7 @@ | |||||
#Generated by Maven Integration for Eclipse | |||||
#Sat Nov 26 12:43:18 CET 2022 | |||||
m2e.projectLocation=C\:\\Users\\AntonioFrische\\OneDrive - ABACCO Solutions\\Documents\\Schule_22_23_CFGS\\Acceso_Datos\\SpringTool_4\\SpringWorkspace\\perifericosAdvisor | |||||
m2e.projectName=perifericosAdvisor | |||||
groupId=com.antoniofrische | |||||
artifactId=PerifericoAdvisor | |||||
version=0.0.1-SNAPSHOT |
@ -0,0 +1,22 @@ | |||||
<project xmlns="http://maven.apache.org/POM/4.0.0" | |||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | |||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> | |||||
<modelVersion>4.0.0</modelVersion> | |||||
<groupId>com.antoniofrische</groupId> | |||||
<artifactId>PerifericoAdvisor</artifactId> | |||||
<version>0.0.1-SNAPSHOT</version> | |||||
<name>19-MovieAdvisor</name> | |||||
<description>Ejemplo que integra todos los conocimientos del curso de Spring.</description> | |||||
<dependencies> | |||||
<dependency> | |||||
<groupId>org.springframework</groupId> | |||||
<artifactId>spring-context</artifactId> | |||||
<version>5.0.8.RELEASE</version> | |||||
</dependency> | |||||
</dependencies> | |||||
<properties> | |||||
<maven.compiler.source>1.8</maven.compiler.source> | |||||
<maven.compiler.target>1.8</maven.compiler.target> | |||||
</properties> | |||||
</project> |