Skip to content

Commit 4d2f9b4

Browse files
Multiple fixing and debugging everywhere.
1 parent ee1d121 commit 4d2f9b4

File tree

4 files changed

+232
-49
lines changed

4 files changed

+232
-49
lines changed
Lines changed: 47 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,71 @@
1-
package terminalcli;
1+
package filepersistence;
22

33
import coreapi.Product;
4+
import coreapi.ProductImpl;
5+
import coreapi.ProductCatalog;
46
import coreapi.Cafeteria;
57
import coreapi.Order;
8+
import coreapi.OrderImpl;
9+
610
import java.io.*;
711

812
public class Load
913
{
14+
private String path;
15+
16+
public Load(String path)
17+
{
18+
this.path = path;
19+
}
20+
1021
public void LoadProducts()
1122
{
12-
FileInputStream products = new FileInputStream("Products.txt");
13-
ObjectInputStream ProductRead = new ObjectInputStream(products);
14-
Product p = (Product)ProductRead.readObject();
15-
while(p != null)
23+
try {
24+
FileInputStream products = new FileInputStream(path + "Products.txt");
25+
ObjectInputStream ProductRead = new ObjectInputStream(products);
26+
Product p = (Product)ProductRead.readObject();
27+
while(p != null)
28+
{
29+
//Guardar en memoria
30+
ProductCatalog.Instance().addProduct(p);
31+
p = (ProductImpl)ProductRead.readObject();
32+
}
33+
ProductRead.close();
34+
} catch (Exception ex)
1635
{
17-
//Guardar en memoria
18-
p = (Product)ProductRead.readObject();
36+
System.err.println(ex.getMessage());
1937
}
20-
ProductRead.close();
2138
}
2239

23-
public void LoadCafeterias()
40+
public void LoadCafeteria(Cafeteria coffee)
2441
{
25-
FileInputStream cafeterias = new FileInputStream("Cafeterias.txt");
26-
ObjectInputStream CafeteriaRead = new ObjectInputStream(cafeterias);
27-
Cafeteria c = (Cafeteria)CafeteriaRead.readObject();
28-
while(c != null)
42+
try {
43+
FileInputStream cafeterias = new FileInputStream(path + "Cafeterias.txt");
44+
ObjectInputStream CafeteriaRead = new ObjectInputStream(cafeterias);
45+
coffee = (Cafeteria)CafeteriaRead.readObject();
46+
CafeteriaRead.close();
47+
} catch (Exception ex)
2948
{
30-
//Guardar en memoria
31-
c = (Cafeteria)CafeteriaRead.readObject();
49+
System.err.println(ex.getMessage());
3250
}
33-
CafeteriaRead.close();
3451
}
3552

36-
public void LoadOrders()
53+
public void LoadOrders(Cafeteria coffee)
3754
{
38-
FileInputStream orders = new FileInputStream("Orders.txt");
39-
ObjectInputStream OrderRead = new ObjectInputStream(orders);
40-
Order o = (Order)OrderRead.readObject();
41-
while(p != null)
55+
try {
56+
FileInputStream orders = new FileInputStream(path + "Orders.txt");
57+
ObjectInputStream OrderRead = new ObjectInputStream(orders);
58+
Order o = (Order)OrderRead.readObject();
59+
while(o != null)
60+
{
61+
coffee.registerOrder(o);
62+
//Guardar en memoria
63+
o = (OrderImpl)OrderRead.readObject();
64+
}
65+
OrderRead.close();
66+
} catch (Exception ex)
4267
{
43-
//Guardar en memoria
44-
o = (Order)OrderRead.readObject();
68+
System.err.println(ex.getMessage());
4569
}
46-
OrderRead.close();
4770
}
4871
}
Lines changed: 50 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,75 @@
1-
package terminalcli;
1+
package filepersistence;
22

33
import coreapi.Product;
44
import coreapi.Cafeteria;
55
import coreapi.Order;
6+
import coreapi.ProductCatalog;
7+
8+
import java.io.FileOutputStream;
69
import java.io.ObjectOutputStream;
10+
import java.util.Iterator;
11+
import java.util.List;
712

813

914
public class Save
1015
{
16+
private String path;
17+
18+
public Save(String path)
19+
{
20+
this.path = path;
21+
}
22+
1123
public void SaveProducts()
1224
{
13-
FileOutputStream products = new FileOutputStream("Products.txt");
14-
ObjectOutputStream ProductWrite = new ObjectOutputStream(products);
15-
//Obtener lista de productos en memoria
16-
//Recorrer lista y
25+
try {
26+
FileOutputStream products = new FileOutputStream(path + "Products.txt");
27+
ObjectOutputStream ProductWrite = new ObjectOutputStream(products);
28+
int i = 0;
29+
Product p = ProductCatalog.Instance().getProduct(i);
30+
while (p != null)
31+
{
32+
ProductWrite.writeObject(p);
33+
i++;
34+
p = ProductCatalog.Instance().getProduct(i);
35+
}
36+
ProductWrite.close();
37+
} catch (Exception ex)
1738
{
18-
Product p = //Producto de la lista
19-
ProductWrite.writeObject(p);
39+
System.err.println(ex.getMessage());
2040
}
21-
ProductWrite.close();
2241
}
2342

24-
public void SaveCafeterias()
43+
public void SaveCafeteria(Cafeteria coffee)
2544
{
26-
FileOutputStream cafeterias = new FileOutputStream("Cafeterias.txt");
27-
ObjectInputStream CafeteriaRead = new ObjectInputStream(cafeterias);
28-
Cafeteria c = (Cafeteria)CafeteriaRead.readObject();
29-
while(c != null)
45+
try {
46+
FileOutputStream cafeterias = new FileOutputStream(path + "Cafeterias.txt");
47+
ObjectOutputStream CafeteriaWrite = new ObjectOutputStream(cafeterias);
48+
CafeteriaWrite.writeObject(coffee);
49+
CafeteriaWrite.close();
50+
} catch (Exception ex)
3051
{
31-
//Guardar en memoria
32-
c = (Cafeteria)CafeteriaRead.readObject();
52+
System.err.println(ex.getMessage());
3353
}
34-
CafeteriaRead.close();
3554
}
3655

37-
public void SaveOrders()
56+
public void SaveOrders(Cafeteria coffee)
3857
{
39-
FileOutputStream orders = new FileOutputStream("Orders.txt");
40-
ObjectOutputStream OrderRead = new ObjectOutputStream(orders);
41-
List
42-
while(p != null)
58+
try {
59+
FileOutputStream orders = new FileOutputStream(path + "Orders.txt");
60+
ObjectOutputStream OrderWrite = new ObjectOutputStream(orders);
61+
62+
List<Order> coffeeOrders = coffee.getOrders();
63+
Iterator<Order> orderIterator = coffeeOrders.iterator();
64+
65+
while (orderIterator.hasNext())
66+
{
67+
OrderWrite.writeObject(orderIterator.next());
68+
}
69+
OrderWrite.close();
70+
} catch (Exception ex)
4371
{
44-
//Guardar en memoria
45-
o = (Order)OrderRead.readObject();
72+
System.err.println(ex.getMessage());
4673
}
47-
OrderRead.close();
4874
}
4975
}

terminalCli/src/main/java/terminalcli/Screen.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,14 @@ public void main_screen(Cafeteria coffee)
7979

8080
DailyRegisterScreen(coffee, date);
8181
break;
82-
82+
case 'q':
83+
case 'Q':
84+
break;
8385
default:
8486
System.out.println("\tIntroduzca una opcion valida.");
8587
}
8688
} while (option != 'q' && option != 'Q');
89+
System.out.println("Saliendo del menu... Hasta luego!");
8790
keyboard.close();
8891
}
8992

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
package terminalcli;
2+
3+
import java.math.BigDecimal;
4+
import java.time.LocalDateTime;
5+
import java.util.ArrayList;
6+
import java.util.List;
7+
8+
import coreapi.Cafeteria;
9+
import coreapi.InsufficientStockException;
10+
import coreapi.Order;
11+
import coreapi.OrderFactory;
12+
import coreapi.OrderService;
13+
import coreapi.Product;
14+
import coreapi.ProductImpl;
15+
import filepersistence.Load;
16+
import filepersistence.Save;
17+
import coreapi.ProductCatalog;
18+
19+
public class Terminal {
20+
21+
static boolean create;
22+
static String path = "./";
23+
static Cafeteria coffee;
24+
25+
26+
27+
public static void main(String[] args) {
28+
// TODO Auto-generated method stub
29+
terminalParameters(args);
30+
System.out.println(path);
31+
if (create == true)
32+
{
33+
createObjects();
34+
}
35+
else
36+
{
37+
loadObjects();
38+
}
39+
Screen terminal = new Screen();
40+
terminal.main_screen(coffee);
41+
42+
saveObjects();
43+
}
44+
45+
46+
private static void terminalParameters(String[] args)
47+
{
48+
if (args.length > 0)
49+
{
50+
if (args[0].equals("-c"))
51+
{
52+
create = true;
53+
if (args.length >= 2)
54+
{
55+
path = args[1];
56+
}
57+
}
58+
else
59+
{
60+
path = args[0];
61+
}
62+
}
63+
}
64+
65+
private static void createObjects()
66+
{
67+
OrderService ordSer = new OrderService();
68+
coffee = new Cafeteria(0, "Cafeteria ESI");
69+
coffee.AddType("Menu");
70+
coffee.AddType("Comida");
71+
coffee.AddType("Bebida");
72+
73+
ProductCatalog.Instance().addProduct(new ProductImpl(1, new BigDecimal(1.7), "Bacon-queso-huevo", "Menu"));
74+
ProductCatalog.Instance().addProduct(new ProductImpl(0, new BigDecimal(1.2), "Patatas fritas", "Comida"));
75+
ProductCatalog.Instance().addProduct(new ProductImpl(2, new BigDecimal(0.9), "Café con leche", "Bebida"));
76+
ProductCatalog.Instance().addProduct(new ProductImpl(3, new BigDecimal(0.5), "Doritos", "Comida"));
77+
ProductCatalog.Instance().addProduct(new ProductImpl(4, new BigDecimal(1.6), "Monster", "Bebida"));
78+
ProductCatalog.Instance().addProduct(new ProductImpl(5, new BigDecimal(1.3), "Bocadillo de tortilla", "Comida"));
79+
ProductCatalog.Instance().addProduct(new ProductImpl(6, new BigDecimal(0.8), "Botella de agua", "Bebida"));
80+
ProductCatalog.Instance().addProduct(new ProductImpl(7, new BigDecimal(0.7), "Donut blanco", "Comida"));
81+
ProductCatalog.Instance().addProduct(new ProductImpl(8, new BigDecimal(0.75), "Donut de chocolate", "Comida"));
82+
ProductCatalog.Instance().addProduct(new ProductImpl(9, new BigDecimal(1.4), "Sándwich de roquefort", "Menu"));
83+
84+
coffee.registerProduct(ProductCatalog.Instance().getProduct(0), 30);
85+
coffee.registerProduct(ProductCatalog.Instance().getProduct(1), 10);
86+
coffee.registerProduct(ProductCatalog.Instance().getProduct(2), 5);
87+
coffee.registerProduct(ProductCatalog.Instance().getProduct(3), 15);
88+
coffee.registerProduct(ProductCatalog.Instance().getProduct(4), 20);
89+
coffee.registerProduct(ProductCatalog.Instance().getProduct(5), 50);
90+
coffee.registerProduct(ProductCatalog.Instance().getProduct(6), 10);
91+
coffee.registerProduct(ProductCatalog.Instance().getProduct(7), 8);
92+
coffee.registerProduct(ProductCatalog.Instance().getProduct(8), 12);
93+
coffee.registerProduct(ProductCatalog.Instance().getProduct(9), 20);
94+
95+
Order order1 = OrderFactory.createOrder(coffee);
96+
Order order2 = OrderFactory.createOrder(coffee);
97+
Order order3 = OrderFactory.createOrder(coffee);
98+
Order order4 = OrderFactory.createOrder(coffee, LocalDateTime.of(2021, 2, 23, 14, 0));
99+
try {
100+
ordSer.addProductToOrder(coffee, order1, 0, 5);
101+
ordSer.addProductToOrder(coffee, order1, 1, 1);
102+
ordSer.addProductToOrder(coffee, order1, 9, 7);
103+
ordSer.addProductToOrder(coffee, order2, 5, 15);
104+
ordSer.addProductToOrder(coffee, order3, 3, 4);
105+
ordSer.addProductToOrder(coffee, order3, 3, 5);
106+
ordSer.addProductToOrder(coffee, order4, 7, 2);
107+
} catch (InsufficientStockException ex)
108+
{
109+
//...
110+
}
111+
112+
}
113+
114+
private static void loadObjects()
115+
{
116+
System.out.println("Loading objects...");
117+
Load fileLoader = new Load(path);
118+
fileLoader.LoadProducts();
119+
System.out.println("Objects loaded!");
120+
fileLoader.LoadCafeteria(coffee);
121+
fileLoader.LoadOrders(coffee);
122+
}
123+
124+
private static void saveObjects()
125+
{
126+
Save fileSaver = new Save(path);
127+
fileSaver.SaveProducts();
128+
fileSaver.SaveCafeteria(coffee);
129+
fileSaver.SaveOrders(coffee);
130+
}
131+
}

0 commit comments

Comments
 (0)