diff --git a/pom.xml b/pom.xml
index 7b51679..7ed8a41 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,8 +2,8 @@
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">
4.0.0
- com.openwebinars
- 19-MovieAdvisor
+ com.antoniofrische
+ PerifericoAdvisor
0.0.1-SNAPSHOT
19-MovieAdvisor
Ejemplo que integra todos los conocimientos del curso de Spring.
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.java b/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.java
new file mode 100644
index 0000000..c2728ba
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.java
@@ -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();
+
+ }
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.java b/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.java
new file mode 100644
index 0000000..36182b3
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.java
@@ -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;
+ }
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.java b/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.java
new file mode 100644
index 0000000..e11f7f2
--- /dev/null
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.java
@@ -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 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 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");
+ }
+ }
+ }
+
+ }
+
+}
diff --git a/src/main/java/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.java b/src/main/java/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.java
index 92a6ef0..51bbd5a 100644
--- a/src/main/java/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.java
+++ b/src/main/java/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.java
@@ -40,8 +40,8 @@ public class PerifericoQueryServiceImpl implements PerifericoQueryService{
return this;
}
- public PerifericoQueryServiceImpl allTipo(String... genres) {
- Predicate pAllGenres = (periferico -> Arrays.stream(genres).allMatch(periferico.getTipo()::contains));
+ public PerifericoQueryServiceImpl allTipo(String... tipo) {
+ Predicate pAllGenres = (periferico -> Arrays.stream(tipo).allMatch(periferico.getTipo()::contains));
predicate = (predicate == null) ? pAllGenres : predicate.and(pAllGenres);
return this;
}
diff --git a/src/main/resources/ayuda.txt b/src/main/resources/ayuda.txt
index 9dbef7f..390b952 100644
--- a/src/main/resources/ayuda.txt
+++ b/src/main/resources/ayuda.txt
@@ -1,27 +1,23 @@
Sintaxis: java -jar movieadvisor.jar [OPCIONES]
- -lg
- Lista los diferentes géneros de películas de la colección.
+ -lt
+ Lista los diferentes tipos de perifericos de la colección.
No se pueden utilizar más parámetros.
- -ag genero1,genero2,genero...
- Lista aquellas películas que pertenecen a al menos uno de los géneros
- que se indican. El listado de géneros no puede incluir espacios.
+ -at genero1,genero2,genero...
+ Lista aquellos perifericos que pertenecen a al menos uno de los tipos
+ que se indican. El listado de tipos no puede incluir espacios.
- -tg genero1,genero2,genero...
- Lista aquellas películas que pertenecen a todos y cada uno de los
- géneros que se indican. El listado de géneros no puede incluir espacios.
+ -tt genero1,genero2,genero...
+ Lista aquellos perifericos que pertenecen a todos y cada uno de los
+ tipos que se indican. El listado de géneros no puede incluir espacios.
- -y año
- Lista aquellas películas que se estrenaron en el año indicado.
- El año debe expresarse con 4 cifras.
-
- -b desde,hasta
- Lista aquellas películas que se estrenaron entre los años DESDE y HASTA.
- Los años indicados están incluidos. Deben expresarse con 4 cifras.
+ -c color
+ Lista aquellos perifericos que estan en el color indicado.
+ El color debe expresarse con con letras y NO RGB o HEX.
-t titulo
- Lista aquellas películas cuyo título contiene la cadena proporcionada.
+ Lista aquellos perifericos cuyo nombre contiene la cadena proporcionada.
Se ignorará el uso de mayúsculas/minúsculas en la comparación.
-h
@@ -29,24 +25,23 @@ Sintaxis: java -jar movieadvisor.jar [OPCIONES]
EJEMPLOS DE USO
-java -jar movieadvisor.jar -y 2018 -ag Action,Comedy
-Muestra las películas estrenadas de 2018 de acción y/o de comedia.
+java -jar movieadvisor.jar -c rojo -at Raton,Teclado
+Muestra los perifericos de color rojo con el tipo Raton y Teclado.
-java -jar movieadvisor.jar -t heart
-Muestra las películas cuyo título contiene la palabra heart.
+java -jar movieadvisor.jar -t pro
+Muestra los perifericos con el nombre pro.
-java -jar movieadvisor.jar -td Action,Sci-Fi -b 1990,2010 -t star
-Muestra las películas cuyo título contiene la palabra star, pertenecen al
-género de acción y ciencia ficción y fueron estrenadas entre 1990 y 2010.
+java -jar movieadvisor.jar -tt Volante,Cascos -t gaming
+Muestra los perifericos cuyo nombre contiene la palabra gaming, pertenecen al
+tipo de volante y casco.
-java -jar movieadvisor.jar -lg
-Muestra un listado con todos los géneros.
+java -jar movieadvisor.jar -lt
+Muestra un listado con todos los perifericos.
LICENCIAS
-Los datos utilizados sobre películas utilizados en este ejemplo son
-reales y están sacados del sitio web www.imdb.com. Ten en cuenta
-que solo puede ser usada con fines personales y no comerciales.
+Los datos utilizados sobre perifericos utilizados en este ejemplo son
+reales y están sacados del internet.
\ No newline at end of file
diff --git a/target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.properties b/target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.properties
new file mode 100644
index 0000000..36ee227
--- /dev/null
+++ b/target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.properties
@@ -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
diff --git a/target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.xml b/target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.xml
new file mode 100644
index 0000000..1c7acb9
--- /dev/null
+++ b/target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.xml
@@ -0,0 +1,22 @@
+
+ 4.0.0
+ com.antoniofrische
+ 19-MovieAdvisor
+ 0.0.1-SNAPSHOT
+ 19-MovieAdvisor
+ Ejemplo que integra todos los conocimientos del curso de Spring.
+
+
+ org.springframework
+ spring-context
+ 5.0.8.RELEASE
+
+
+
+ 1.8
+ 1.8
+
+
+
\ No newline at end of file
diff --git a/target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.properties b/target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.properties
new file mode 100644
index 0000000..506c177
--- /dev/null
+++ b/target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.properties
@@ -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
diff --git a/target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.xml b/target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.xml
new file mode 100644
index 0000000..7ed8a41
--- /dev/null
+++ b/target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.xml
@@ -0,0 +1,22 @@
+
+ 4.0.0
+ com.antoniofrische
+ PerifericoAdvisor
+ 0.0.1-SNAPSHOT
+ 19-MovieAdvisor
+ Ejemplo que integra todos los conocimientos del curso de Spring.
+
+
+ org.springframework
+ spring-context
+ 5.0.8.RELEASE
+
+
+
+ 1.8
+ 1.8
+
+
+
\ No newline at end of file
diff --git a/target/classes/ayuda.txt b/target/classes/ayuda.txt
index 9dbef7f..390b952 100644
--- a/target/classes/ayuda.txt
+++ b/target/classes/ayuda.txt
@@ -1,27 +1,23 @@
Sintaxis: java -jar movieadvisor.jar [OPCIONES]
- -lg
- Lista los diferentes géneros de películas de la colección.
+ -lt
+ Lista los diferentes tipos de perifericos de la colección.
No se pueden utilizar más parámetros.
- -ag genero1,genero2,genero...
- Lista aquellas películas que pertenecen a al menos uno de los géneros
- que se indican. El listado de géneros no puede incluir espacios.
+ -at genero1,genero2,genero...
+ Lista aquellos perifericos que pertenecen a al menos uno de los tipos
+ que se indican. El listado de tipos no puede incluir espacios.
- -tg genero1,genero2,genero...
- Lista aquellas películas que pertenecen a todos y cada uno de los
- géneros que se indican. El listado de géneros no puede incluir espacios.
+ -tt genero1,genero2,genero...
+ Lista aquellos perifericos que pertenecen a todos y cada uno de los
+ tipos que se indican. El listado de géneros no puede incluir espacios.
- -y año
- Lista aquellas películas que se estrenaron en el año indicado.
- El año debe expresarse con 4 cifras.
-
- -b desde,hasta
- Lista aquellas películas que se estrenaron entre los años DESDE y HASTA.
- Los años indicados están incluidos. Deben expresarse con 4 cifras.
+ -c color
+ Lista aquellos perifericos que estan en el color indicado.
+ El color debe expresarse con con letras y NO RGB o HEX.
-t titulo
- Lista aquellas películas cuyo título contiene la cadena proporcionada.
+ Lista aquellos perifericos cuyo nombre contiene la cadena proporcionada.
Se ignorará el uso de mayúsculas/minúsculas en la comparación.
-h
@@ -29,24 +25,23 @@ Sintaxis: java -jar movieadvisor.jar [OPCIONES]
EJEMPLOS DE USO
-java -jar movieadvisor.jar -y 2018 -ag Action,Comedy
-Muestra las películas estrenadas de 2018 de acción y/o de comedia.
+java -jar movieadvisor.jar -c rojo -at Raton,Teclado
+Muestra los perifericos de color rojo con el tipo Raton y Teclado.
-java -jar movieadvisor.jar -t heart
-Muestra las películas cuyo título contiene la palabra heart.
+java -jar movieadvisor.jar -t pro
+Muestra los perifericos con el nombre pro.
-java -jar movieadvisor.jar -td Action,Sci-Fi -b 1990,2010 -t star
-Muestra las películas cuyo título contiene la palabra star, pertenecen al
-género de acción y ciencia ficción y fueron estrenadas entre 1990 y 2010.
+java -jar movieadvisor.jar -tt Volante,Cascos -t gaming
+Muestra los perifericos cuyo nombre contiene la palabra gaming, pertenecen al
+tipo de volante y casco.
-java -jar movieadvisor.jar -lg
-Muestra un listado con todos los géneros.
+java -jar movieadvisor.jar -lt
+Muestra un listado con todos los perifericos.
LICENCIAS
-Los datos utilizados sobre películas utilizados en este ejemplo son
-reales y están sacados del sitio web www.imdb.com. Ten en cuenta
-que solo puede ser usada con fines personales y no comerciales.
+Los datos utilizados sobre perifericos utilizados en este ejemplo son
+reales y están sacados del internet.
\ No newline at end of file
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.class b/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.class
new file mode 100644
index 0000000..eb73dc5
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.class b/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.class
new file mode 100644
index 0000000..ad3e4ae
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.class b/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.class
new file mode 100644
index 0000000..e0a4401
Binary files /dev/null and b/target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.class differ
diff --git a/target/classes/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.class b/target/classes/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.class
index b1a816a..26e0418 100644
Binary files a/target/classes/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.class and b/target/classes/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.class differ