Browse Source

add de inicio mas la ayuda

master
AntonioFrische 2 years ago
parent
commit
9f2e89f649
15 changed files with 263 additions and 60 deletions
  1. +2
    -2
      pom.xml
  2. +22
    -0
      src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.java
  3. +36
    -0
      src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.java
  4. +97
    -0
      src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.java
  5. +2
    -2
      src/main/java/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.java
  6. +23
    -28
      src/main/resources/ayuda.txt
  7. +7
    -0
      target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.properties
  8. +22
    -0
      target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.xml
  9. +7
    -0
      target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.properties
  10. +22
    -0
      target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.xml
  11. +23
    -28
      target/classes/ayuda.txt
  12. BIN
      target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.class
  13. BIN
      target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.class
  14. BIN
      target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.class
  15. BIN
      target/classes/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.class

+ 2
- 2
pom.xml View File

@ -2,8 +2,8 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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"> 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> <modelVersion>4.0.0</modelVersion>
<groupId>com.openwebinars</groupId>
<artifactId>19-MovieAdvisor</artifactId>
<groupId>com.antoniofrische</groupId>
<artifactId>PerifericoAdvisor</artifactId>
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
<name>19-MovieAdvisor</name> <name>19-MovieAdvisor</name>
<description>Ejemplo que integra todos los conocimientos del curso de Spring.</description> <description>Ejemplo que integra todos los conocimientos del curso de Spring.</description>


+ 22
- 0
src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.java View File

@ -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();
}
}

+ 36
- 0
src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.java View File

@ -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;
}
}

+ 97
- 0
src/main/java/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.java View File

@ -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");
}
}
}
}
}

+ 2
- 2
src/main/java/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.java View File

@ -40,8 +40,8 @@ public class PerifericoQueryServiceImpl implements PerifericoQueryService{
return this; return this;
} }
public PerifericoQueryServiceImpl allTipo(String... genres) {
Predicate<Periferico> pAllGenres = (periferico -> Arrays.stream(genres).allMatch(periferico.getTipo()::contains));
public PerifericoQueryServiceImpl allTipo(String... tipo) {
Predicate<Periferico> pAllGenres = (periferico -> Arrays.stream(tipo).allMatch(periferico.getTipo()::contains));
predicate = (predicate == null) ? pAllGenres : predicate.and(pAllGenres); predicate = (predicate == null) ? pAllGenres : predicate.and(pAllGenres);
return this; return this;
} }


+ 23
- 28
src/main/resources/ayuda.txt View File

@ -1,27 +1,23 @@
Sintaxis: java -jar movieadvisor.jar [OPCIONES] 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. 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 -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. Se ignorará el uso de mayúsculas/minúsculas en la comparación.
-h -h
@ -29,24 +25,23 @@ Sintaxis: java -jar movieadvisor.jar [OPCIONES]
EJEMPLOS DE USO 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 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.

+ 7
- 0
target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.properties View File

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

+ 22
- 0
target/classes/META-INF/maven/com.antoniofrische/19-MovieAdvisor/pom.xml View File

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

+ 7
- 0
target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.properties View File

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

+ 22
- 0
target/classes/META-INF/maven/com.antoniofrische/PerifericoAdvisor/pom.xml View File

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

+ 23
- 28
target/classes/ayuda.txt View File

@ -1,27 +1,23 @@
Sintaxis: java -jar movieadvisor.jar [OPCIONES] 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. 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 -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. Se ignorará el uso de mayúsculas/minúsculas en la comparación.
-h -h
@ -29,24 +25,23 @@ Sintaxis: java -jar movieadvisor.jar [OPCIONES]
EJEMPLOS DE USO 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 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.

BIN
target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorApp.class View File


BIN
target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorHelp.class View File


BIN
target/classes/com/antoniofrische/perifericosAdvisor/MovieAdvisorRunApp.class View File


BIN
target/classes/com/antoniofrische/perifericosAdvisor/service/PerifericoQueryServiceImpl.class View File


Loading…
Cancel
Save