commit 4ebe321793bd629bd671bda89cb27630ca5a9fb0 Author: Yaros Date: Sun Nov 27 05:55:49 2022 +0100 5Am diff --git a/almacen/.classpath b/almacen/.classpath new file mode 100644 index 0000000..11ae050 --- /dev/null +++ b/almacen/.classpath @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/almacen/.project b/almacen/.project new file mode 100644 index 0000000..cab9d4f --- /dev/null +++ b/almacen/.project @@ -0,0 +1,23 @@ + + + almacen + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/almacen/.settings/org.eclipse.jdt.apt.core.prefs b/almacen/.settings/org.eclipse.jdt.apt.core.prefs new file mode 100644 index 0000000..d4313d4 --- /dev/null +++ b/almacen/.settings/org.eclipse.jdt.apt.core.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.apt.aptEnabled=false diff --git a/almacen/.settings/org.eclipse.jdt.core.prefs b/almacen/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..2c15bc6 --- /dev/null +++ b/almacen/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore +org.eclipse.jdt.core.compiler.processAnnotations=disabled +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/almacen/.settings/org.eclipse.m2e.core.prefs b/almacen/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/almacen/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/almacen/pom.xml b/almacen/pom.xml new file mode 100644 index 0000000..d09d70a --- /dev/null +++ b/almacen/pom.xml @@ -0,0 +1,16 @@ + + 4.0.0 + com.yaros + almacen + 0.0.1-SNAPSHOT + GestorAlmacen + Ua aplicacion que gestiona un almacen + + + + org.springframework + spring-context + 5.3.24 + + + \ No newline at end of file diff --git a/almacen/src/main/java/com/yaros/almacen/AlmacenApp.java b/almacen/src/main/java/com/yaros/almacen/AlmacenApp.java new file mode 100644 index 0000000..bf905ff --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/AlmacenApp.java @@ -0,0 +1,17 @@ +package com.yaros.almacen; + +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; + +import com.yaros.almacen.config.AppConfig; + +public class AlmacenApp { + + public static void main(String[] args) { + ApplicationContext appContext = new AnnotationConfigApplicationContext(AppConfig.class); + AlmacenRunApp runApp = appContext.getBean(AlmacenRunApp.class); + runApp.run(args); + ((AnnotationConfigApplicationContext) appContext).close(); + } + +} diff --git a/almacen/src/main/java/com/yaros/almacen/AlmacenHelp.java b/almacen/src/main/java/com/yaros/almacen/AlmacenHelp.java new file mode 100644 index 0000000..a2d19f4 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/AlmacenHelp.java @@ -0,0 +1,35 @@ +package com.yaros.almacen; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.stream.Collectors; + +import javax.annotation.PostConstruct; + +import org.springframework.stereotype.Component; +import org.springframework.util.ResourceUtils; + +@Component +public class AlmacenHelp { + 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 e) { + System.out.println("Error cargando el texto de ayuda"); + System.exit(-1); + } + } + + public String getHelp() { + return help; + } + + +} diff --git a/almacen/src/main/java/com/yaros/almacen/AlmacenRunApp.java b/almacen/src/main/java/com/yaros/almacen/AlmacenRunApp.java new file mode 100644 index 0000000..222135e --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/AlmacenRunApp.java @@ -0,0 +1,92 @@ +package com.yaros.almacen; + +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.yaros.almacen.model.Product; +import com.yaros.almacen.service.ProductQueryService; +import com.yaros.almacen.service.ProductService; + +@Component +public class AlmacenRunApp { + @Autowired + private ProductService productService; + @Autowired + private ProductQueryService productQueryService; + @Autowired + private AlmacenHelp 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 "-la": + System.out.printf("%s\t%-10s\t%-10s\t%s\t%s\t%s\t%s\t%s\n", "ID", "Name", "Manufacturer", "Shelf", "Weight", "Size", "Num", "Notes"); + productService.findAll().forEach(f -> System.out.printf("%s\t%-10s\t%-10s\t%s\t%s\t%s\t%s\t%s\n", + f.getId(), f.getName(), f.getManufacturer(), f.getShelf(), f.getWeight(), f.getSize(), f.getNum(), + f.getNotes().stream().collect(Collectors.joining(", ")))); + break; + case "-lm": + productService.findAllManufacturers().forEach(System.out::println); + break; + case "-ln": + productService.findAllNotes().forEach(System.out::println); + 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 "-gi": + filmQueryService. (argumento[1].split(",")); + break;*/ + case "-gm": + productQueryService.anyManufacturer(argumento[1].split(",")); + break; + case "-gn": + productQueryService.anyNote(argumento[1]); + break; + case "-t": + productQueryService.nameContains(argumento[1]); + break; + default: error = true; + System.out.println("Error de sintaxis"); + System.out.println(help.getHelp()); + } + } + if(!error) { + Collection result = productQueryService.exec(); + System.out.printf("%s\t%-10s\t%-10s\t%s\t%s\t%s\t%s\t%s\n", "ID", "Name", "Manufacturer", "Shelf", "Weight", "Size", "Num", "Notes"); + if(result != null) { + result.forEach(f -> System.out.printf("%s\t%-10s\t%-10s\t%s\t%s\t%s\t%s\t%s\n", + f.getId(), f.getName(), f.getManufacturer(), f.getShelf(), f.getWeight(), f.getSize(), f.getNum(), + f.getNotes().stream().collect(Collectors.joining(", ")))); + } else { + System.out.println("No hay peliculas que cumplan esos critetios. Lo sentimos"); + } + } + } + } +} diff --git a/almacen/src/main/java/com/yaros/almacen/config/AppConfig.java b/almacen/src/main/java/com/yaros/almacen/config/AppConfig.java new file mode 100644 index 0000000..d3dea35 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/config/AppConfig.java @@ -0,0 +1,28 @@ +package com.yaros.almacen.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +@Configuration +@ComponentScan(basePackages="com.yaros.almacen") +@PropertySource("classpath:/almacen.properties") +public class AppConfig { + @Value("${file.path}") + private String file; + @Value("${file.csv.separator}") + private String separator; + @Value("${file.csv.list.separator}") + private String listSeparator; + + public String getFile() { + return file; + } + public String getSeparator() { + return separator; + } + public String getListSeparator() { + return listSeparator; + } +} diff --git a/almacen/src/main/java/com/yaros/almacen/dao/ProductDao.java b/almacen/src/main/java/com/yaros/almacen/dao/ProductDao.java new file mode 100644 index 0000000..0ebaa21 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/dao/ProductDao.java @@ -0,0 +1,14 @@ +package com.yaros.almacen.dao; + +import java.util.Collection; + +import com.yaros.almacen.model.Product; + +public interface ProductDao { + public Product findById(long id); + public Collection findAll(); + public void insert(Product product); + public void edit(Product product); + public void delete(long id); + +} diff --git a/almacen/src/main/java/com/yaros/almacen/dao/ProductDaoImplMemory.java b/almacen/src/main/java/com/yaros/almacen/dao/ProductDaoImplMemory.java new file mode 100644 index 0000000..23175f7 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/dao/ProductDaoImplMemory.java @@ -0,0 +1,71 @@ +package com.yaros.almacen.dao; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Optional; + +import javax.annotation.PostConstruct; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +import com.yaros.almacen.config.AppConfig; +import com.yaros.almacen.model.Product; + +@Repository +public class ProductDaoImplMemory implements ProductDao { + + public List peliculas = new ArrayList<>(); + + @Autowired + private AppConfig appConfig; + @PostConstruct + public void init() { + peliculas = UtilProductFileReader.readFile(appConfig.getFile(), appConfig.getSeparator(), appConfig.getListSeparator()); + } + + public Product findById(long id) { + // TODO Auto-generated method stub + // @formatter:off + Optional result = peliculas.stream().filter(f -> f.getId() == id).findFirst(); + // @formatter:on + return result.orElse(null); + } + + public Collection findAll() { + // TODO Auto-generated method stub + return peliculas; + } + + public void insert(Product product) { + // TODO Auto-generated method stub + peliculas.add(product); + } + + public void edit(Product product) { + // TODO Auto-generated method stub + int index = getIndexOf(product.getId()); + if(index != -1) + peliculas.set(index, product); + } + + public void delete(long id) { + // TODO Auto-generated method stub + int index = getIndexOf(id); + if(index != -1) + peliculas.remove(index); + } + + private int getIndexOf(long id) { + boolean encontrado = false; + int index = 0; + while(!encontrado && index < peliculas.size()) { + if(peliculas.get(index).getId() == id) + encontrado = true; + else + index++; + } + return (encontrado) ? index : -1; + } +} diff --git a/almacen/src/main/java/com/yaros/almacen/dao/UtilProductFileReader.java b/almacen/src/main/java/com/yaros/almacen/dao/UtilProductFileReader.java new file mode 100644 index 0000000..115728c --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/dao/UtilProductFileReader.java @@ -0,0 +1,40 @@ +package com.yaros.almacen.dao; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.util.ResourceUtils; + +import com.yaros.almacen.model.Product; + +public class UtilProductFileReader { + + public static List readFile(final String path, final String separator, final String listSeparator){ + System.out.println(path); + System.out.println(separator); + System.out.println(listSeparator); + List result = new ArrayList<>(); + System.out.println(result); + // @formatter:off + try { + result = Files.lines(Paths.get(ResourceUtils.getFile(path).toURI())) + .skip(1) + .map(line -> { + String[] values = line.split(separator); + return new Product(Long.parseLong(values[0]), values[1], values[2], values[3], values[4], values[5], Integer.parseInt(values[6]), + Arrays.asList(values[7].split(listSeparator))); + }).collect(Collectors.toList()); + } catch (IOException e) { + e.printStackTrace(); + /*System.err.println("Error de lectura del fichero de datos: imdb_data"); + System.exit(-1);*/ + } + // @formatter:on + return result; + } +} diff --git a/almacen/src/main/java/com/yaros/almacen/model/Product.java b/almacen/src/main/java/com/yaros/almacen/model/Product.java new file mode 100644 index 0000000..02642a6 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/model/Product.java @@ -0,0 +1,123 @@ +package com.yaros.almacen.model; + +import java.util.List; +import java.util.Objects; + +public class Product { + private long id; + private String name; + private String manufacturer; + private String shelf; + private String weight; + private String size; + private int num; + private List notes; + + public Product() { + + } + + public Product(long id, String name, String manufacturer, String shelf, String weight, String size, int num, + List notes) { + super(); + this.id = id; + this.name = name; + this.manufacturer = manufacturer; + this.shelf = shelf; + this.weight = weight; + this.size = size; + this.num = num; + this.notes = notes; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getManufacturer() { + return manufacturer; + } + + public void setManufacturer(String manufacturer) { + this.manufacturer = manufacturer; + } + + public String getShelf() { + return shelf; + } + + public void setShelf(String shelf) { + this.shelf = shelf; + } + + public String getWeight() { + return weight; + } + + public void setWeight(String weight) { + this.weight = weight; + } + + public String getSize() { + return size; + } + + public void setSize(String size) { + this.size = size; + } + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + + public List getNotes() { + return notes; + } + + public void setNotes(List notes) { + this.notes = notes; + } + + @Override + public int hashCode() { + return Objects.hash(id, manufacturer, name, notes, num, shelf, size, weight); + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + Product other = (Product) obj; + return id == other.id && Objects.equals(manufacturer, other.manufacturer) && Objects.equals(name, other.name) + && Objects.equals(notes, other.notes) && num == other.num && Objects.equals(shelf, other.shelf) + && Objects.equals(size, other.size) && Objects.equals(weight, other.weight); + } + + @Override + public String toString() { + return "Producto [id=" + id + ", name=" + name + ", manufacturer=" + manufacturer + ", shelf=" + shelf + + ", weight=" + weight + ", size=" + size + ", num=" + num + ", notes=" + notes + "]"; + } + + +} diff --git a/almacen/src/main/java/com/yaros/almacen/service/ProductQuearyServiceImpl.java b/almacen/src/main/java/com/yaros/almacen/service/ProductQuearyServiceImpl.java new file mode 100644 index 0000000..a7bcfd6 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/service/ProductQuearyServiceImpl.java @@ -0,0 +1,66 @@ +package com.yaros.almacen.service; + +import java.time.LocalDate; +import java.util.Arrays; +import java.util.Collection; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +import javax.annotation.PostConstruct; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.yaros.almacen.dao.ProductDao; +import com.yaros.almacen.model.Product; + +@Service +public class ProductQuearyServiceImpl implements ProductQueryService { + @Autowired + private ProductDao dao; + private Predicate predicate; + + //DE DONDE COÑO SALE EL POSTCONSTRUCT + @PostConstruct + public void init() { + predicate = null; + } + + @Override + public Collection exec() { + // @formatter:off + return dao.findAll().stream().filter(predicate).collect(Collectors.toList()); + // @formatter:on + } + + /*@Override + public ProductQueryService anyId(String... id) { + Predicate pAnyGenere = (product -> Arrays.stream(id).anyMatch(product.getId()::contains)); + predicate = (predicate == null) ? pAnyGenere : predicate.and(pAnyGenere); + return this; + }*/ + + @Override + public ProductQueryService anyManufacturer(String... manufacturers) { + Predicate pAnyGenere = (product -> Arrays.stream(manufacturers).anyMatch(product.getManufacturer()::contains)); + predicate = (predicate == null) ? pAnyGenere : predicate.and(pAnyGenere); + return this; + } + + + + @Override + public ProductQueryService nameContains(String name) { + Predicate pTitleContains = (product -> product.getName().toLowerCase().contains(name.toLowerCase())); + predicate = (predicate == null) ? pTitleContains : predicate.and(pTitleContains); + return this; + } + + @Override + public ProductQueryService anyNote(String... notes) { + Predicate pAllGeneres = (product -> Arrays.stream(notes).allMatch(product.getNotes()::contains)); + predicate = (predicate == null) ? pAllGeneres : predicate.and(pAllGeneres); + return this; + } + +} \ No newline at end of file diff --git a/almacen/src/main/java/com/yaros/almacen/service/ProductQueryService.java b/almacen/src/main/java/com/yaros/almacen/service/ProductQueryService.java new file mode 100644 index 0000000..3c4b801 --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/service/ProductQueryService.java @@ -0,0 +1,15 @@ +package com.yaros.almacen.service; + +import java.util.Collection; + +import com.yaros.almacen.model.Product; + +public interface ProductQueryService { + public Collection exec(); + + public ProductQueryService anyManufacturer(String... manufacturers); + public ProductQueryService anyNote(String... notes); + public ProductQueryService nameContains(String note); + //public ProductQueryService anyId(String... id); + +} diff --git a/almacen/src/main/java/com/yaros/almacen/service/ProductService.java b/almacen/src/main/java/com/yaros/almacen/service/ProductService.java new file mode 100644 index 0000000..a74efbd --- /dev/null +++ b/almacen/src/main/java/com/yaros/almacen/service/ProductService.java @@ -0,0 +1,59 @@ +package com.yaros.almacen.service; + +import java.util.Collection; + +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.yaros.almacen.dao.ProductDao; +import com.yaros.almacen.model.Product; + +@Service +public class ProductService { + + @Autowired + ProductDao productDao; + + @Autowired + ProductQueryService queryService; + + public Collection findAllNotes(){ + List result = null; + + // @formatter:off + result = productDao.findAll().stream().map(f -> f.getNotes()) + .flatMap(lista -> lista.stream()) + .distinct().sorted().collect(Collectors.toList()); + // @formatter:on + return result; + } + + public Collection findAllManufacturers(){ + List result = null; + + // @formatter:off + result = productDao.findAll().stream().map(f -> f.getManufacturer()) + .distinct().sorted().collect(Collectors.toList()); + // @formatter:on + return result; + } + + public Collection findAll(){ + return productDao.findAll(); + } + + public Collection findByAnyNote(String... notes){ + return queryService.anyNote(notes).exec(); + } + + public Collection findByAnyManufacturer(String... manufacturer){ + return queryService.anyManufacturer(manufacturer).exec(); + } + + public Collection findByTitleContains(String name){ + return queryService.nameContains(name).exec(); + } +} diff --git a/almacen/src/main/java/com/yaros/help b/almacen/src/main/java/com/yaros/help new file mode 100644 index 0000000..7af7ce3 --- /dev/null +++ b/almacen/src/main/java/com/yaros/help @@ -0,0 +1,28 @@ +Sintaxis: java -jar almacen.jar [OPCIONES] + + -la + Lista todos los productos. + No se pueden utilizar parametros + + -lm + Lista todos los fabricantes + No se pueden utilizar parametros + + -ln + Lista toads las notas + No se pueden utilizar parametros + + -gi id + Busca al producto por id + id = id del producto + + -gm manufacturer + Busca al producto por fabricante + fabricante = fabricante del producto + + -gn nota + Busca al producto por notas + notas = notas del producto + + + \ No newline at end of file diff --git a/almacen/src/main/resources/almacen.properties b/almacen/src/main/resources/almacen.properties new file mode 100644 index 0000000..6495a0f --- /dev/null +++ b/almacen/src/main/resources/almacen.properties @@ -0,0 +1,3 @@ +file.path=classpath:products.csv +file.csv.separator=; +file.csv.list.separator=, \ No newline at end of file diff --git a/almacen/src/main/resources/ayuda.txt b/almacen/src/main/resources/ayuda.txt new file mode 100644 index 0000000..207a70a --- /dev/null +++ b/almacen/src/main/resources/ayuda.txt @@ -0,0 +1,28 @@ +Porfavor utiliza los siguentes comandos: + -la + Lista todos los productos. + No se pueden utilizar parametros + + -lm + Lista todos los fabricantes + No se pueden utilizar parametros + + -ln + Lista toads las notas + No se pueden utilizar parametros + + -gi id + Busca al producto por id + id = id del producto + + -gm manufacturer + Busca al producto por fabricante + fabricante = fabricante del producto + + -gn nota + Busca al producto por notas + notas = notas del producto + + -t algo + Busca el producto si contiene el 'algo' + algo = texto que tiene que incluir \ No newline at end of file diff --git a/almacen/src/main/resources/products.csv b/almacen/src/main/resources/products.csv new file mode 100644 index 0000000..5752544 --- /dev/null +++ b/almacen/src/main/resources/products.csv @@ -0,0 +1,12 @@ +id;name;manufaturer;shelf;weight;size;num;notes +1;Dobojorn;Ikea;A2;20;XL;2;furniture +2;Nintendo Swich;Nintendo;B4;0.2;XS;1;entertainment,gaming +3;SuperChair;Secret Lab;B3;2;L;3;furniture,gaming +4;Ender 3 V2;Creality;C1;6;M;4;printer +5;Ender 3 S1;Creality;C8;8;M;4;printer +6;Mario Kart 8;Nintendo;B1;0.1;XXS;22;entertainment,gaming,videogames +7;Milkentron;Ikea;A2;2;L;1;furniture +8;Kobra;Anycubic;A5;8;M;5;printer,entry-level +9;Airfriyer;Xaomi;B2;4;M;1;appliance,cooking +10;Mars 2;Elogoo;B5;10;XL;2;printer,resin +11;OLED TV;Samsung;A8;20;XXL;1;entertainment,expensive \ No newline at end of file diff --git a/almacen/target/classes/META-INF/MANIFEST.MF b/almacen/target/classes/META-INF/MANIFEST.MF new file mode 100644 index 0000000..c408ba4 --- /dev/null +++ b/almacen/target/classes/META-INF/MANIFEST.MF @@ -0,0 +1,5 @@ +Manifest-Version: 1.0 +Built-By: usuario +Build-Jdk: 17.0.4.1 +Created-By: Maven Integration for Eclipse + diff --git a/almacen/target/classes/META-INF/maven/com.yaros/almacen/pom.properties b/almacen/target/classes/META-INF/maven/com.yaros/almacen/pom.properties new file mode 100644 index 0000000..637c3db --- /dev/null +++ b/almacen/target/classes/META-INF/maven/com.yaros/almacen/pom.properties @@ -0,0 +1,7 @@ +#Generated by Maven Integration for Eclipse +#Sun Nov 27 02:29:17 CET 2022 +m2e.projectLocation=C\:\\Users\\usuario\\Documents\\workspace-spring-tool-suite-4-4.16.1.RELEASE\\almacen +m2e.projectName=almacen +groupId=com.yaros +artifactId=almacen +version=0.0.1-SNAPSHOT diff --git a/almacen/target/classes/META-INF/maven/com.yaros/almacen/pom.xml b/almacen/target/classes/META-INF/maven/com.yaros/almacen/pom.xml new file mode 100644 index 0000000..d09d70a --- /dev/null +++ b/almacen/target/classes/META-INF/maven/com.yaros/almacen/pom.xml @@ -0,0 +1,16 @@ + + 4.0.0 + com.yaros + almacen + 0.0.1-SNAPSHOT + GestorAlmacen + Ua aplicacion que gestiona un almacen + + + + org.springframework + spring-context + 5.3.24 + + + \ No newline at end of file diff --git a/almacen/target/classes/almacen.properties b/almacen/target/classes/almacen.properties new file mode 100644 index 0000000..6495a0f --- /dev/null +++ b/almacen/target/classes/almacen.properties @@ -0,0 +1,3 @@ +file.path=classpath:products.csv +file.csv.separator=; +file.csv.list.separator=, \ No newline at end of file diff --git a/almacen/target/classes/ayuda.txt b/almacen/target/classes/ayuda.txt new file mode 100644 index 0000000..207a70a --- /dev/null +++ b/almacen/target/classes/ayuda.txt @@ -0,0 +1,28 @@ +Porfavor utiliza los siguentes comandos: + -la + Lista todos los productos. + No se pueden utilizar parametros + + -lm + Lista todos los fabricantes + No se pueden utilizar parametros + + -ln + Lista toads las notas + No se pueden utilizar parametros + + -gi id + Busca al producto por id + id = id del producto + + -gm manufacturer + Busca al producto por fabricante + fabricante = fabricante del producto + + -gn nota + Busca al producto por notas + notas = notas del producto + + -t algo + Busca el producto si contiene el 'algo' + algo = texto que tiene que incluir \ No newline at end of file diff --git a/almacen/target/classes/com/yaros/almacen/AlmacenApp.class b/almacen/target/classes/com/yaros/almacen/AlmacenApp.class new file mode 100644 index 0000000..38045b0 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/AlmacenApp.class differ diff --git a/almacen/target/classes/com/yaros/almacen/AlmacenHelp.class b/almacen/target/classes/com/yaros/almacen/AlmacenHelp.class new file mode 100644 index 0000000..82f88fd Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/AlmacenHelp.class differ diff --git a/almacen/target/classes/com/yaros/almacen/AlmacenRunApp.class b/almacen/target/classes/com/yaros/almacen/AlmacenRunApp.class new file mode 100644 index 0000000..5489b09 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/AlmacenRunApp.class differ diff --git a/almacen/target/classes/com/yaros/almacen/config/AppConfig.class b/almacen/target/classes/com/yaros/almacen/config/AppConfig.class new file mode 100644 index 0000000..9ab450f Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/config/AppConfig.class differ diff --git a/almacen/target/classes/com/yaros/almacen/dao/ProductDao.class b/almacen/target/classes/com/yaros/almacen/dao/ProductDao.class new file mode 100644 index 0000000..95814bd Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/dao/ProductDao.class differ diff --git a/almacen/target/classes/com/yaros/almacen/dao/ProductDaoImplMemory.class b/almacen/target/classes/com/yaros/almacen/dao/ProductDaoImplMemory.class new file mode 100644 index 0000000..8ebb941 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/dao/ProductDaoImplMemory.class differ diff --git a/almacen/target/classes/com/yaros/almacen/dao/UtilProductFileReader.class b/almacen/target/classes/com/yaros/almacen/dao/UtilProductFileReader.class new file mode 100644 index 0000000..f06a4ab Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/dao/UtilProductFileReader.class differ diff --git a/almacen/target/classes/com/yaros/almacen/model/Product.class b/almacen/target/classes/com/yaros/almacen/model/Product.class new file mode 100644 index 0000000..2bba338 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/model/Product.class differ diff --git a/almacen/target/classes/com/yaros/almacen/service/ProductQuearyServiceImpl.class b/almacen/target/classes/com/yaros/almacen/service/ProductQuearyServiceImpl.class new file mode 100644 index 0000000..b7e77c2 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/service/ProductQuearyServiceImpl.class differ diff --git a/almacen/target/classes/com/yaros/almacen/service/ProductQueryService.class b/almacen/target/classes/com/yaros/almacen/service/ProductQueryService.class new file mode 100644 index 0000000..9093656 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/service/ProductQueryService.class differ diff --git a/almacen/target/classes/com/yaros/almacen/service/ProductService.class b/almacen/target/classes/com/yaros/almacen/service/ProductService.class new file mode 100644 index 0000000..16ca1c8 Binary files /dev/null and b/almacen/target/classes/com/yaros/almacen/service/ProductService.class differ diff --git a/almacen/target/classes/com/yaros/help b/almacen/target/classes/com/yaros/help new file mode 100644 index 0000000..7af7ce3 --- /dev/null +++ b/almacen/target/classes/com/yaros/help @@ -0,0 +1,28 @@ +Sintaxis: java -jar almacen.jar [OPCIONES] + + -la + Lista todos los productos. + No se pueden utilizar parametros + + -lm + Lista todos los fabricantes + No se pueden utilizar parametros + + -ln + Lista toads las notas + No se pueden utilizar parametros + + -gi id + Busca al producto por id + id = id del producto + + -gm manufacturer + Busca al producto por fabricante + fabricante = fabricante del producto + + -gn nota + Busca al producto por notas + notas = notas del producto + + + \ No newline at end of file diff --git a/almacen/target/classes/products.csv b/almacen/target/classes/products.csv new file mode 100644 index 0000000..5752544 --- /dev/null +++ b/almacen/target/classes/products.csv @@ -0,0 +1,12 @@ +id;name;manufaturer;shelf;weight;size;num;notes +1;Dobojorn;Ikea;A2;20;XL;2;furniture +2;Nintendo Swich;Nintendo;B4;0.2;XS;1;entertainment,gaming +3;SuperChair;Secret Lab;B3;2;L;3;furniture,gaming +4;Ender 3 V2;Creality;C1;6;M;4;printer +5;Ender 3 S1;Creality;C8;8;M;4;printer +6;Mario Kart 8;Nintendo;B1;0.1;XXS;22;entertainment,gaming,videogames +7;Milkentron;Ikea;A2;2;L;1;furniture +8;Kobra;Anycubic;A5;8;M;5;printer,entry-level +9;Airfriyer;Xaomi;B2;4;M;1;appliance,cooking +10;Mars 2;Elogoo;B5;10;XL;2;printer,resin +11;OLED TV;Samsung;A8;20;XXL;1;entertainment,expensive \ No newline at end of file