feat: initial functional release of Stock Pignon

This commit is contained in:
2026-01-14 18:42:53 +01:00
commit 4dcb0b1b5a
106 changed files with 2147 additions and 0 deletions

View File

@@ -0,0 +1,60 @@
// CartManager.java
package com.stock.pignon;
import java.util.ArrayList;
import java.util.List;
public class CartManager {
// Unified and global list for whole application
private static final List<CartItem> items = new ArrayList<>();
// Private constructor: utility class, it should not be instantiated
private CartManager() {}
// Returns the direct reference to the list to save memory on older devices
public static List<CartItem> getItems() {
return items;
}
public static CartItem getItemByName(String name) {
if (name == null) return null;
for (CartItem item : items) {
// if item.getName() is null, avoid crash
if (item != null && name.equals(item.getName())) return item;
}
return null;
}
// Logic for adding, updating or removing items based on quantity, prevents duplicate entries
public static void addOrUpdateItem(String name, int minPrice, int maxPrice, int quantity, String imageFile) {
CartItem current = getItemByName(name);
if (current != null) {
if (quantity <= 0) {
items.remove(current);
} else {
current.setQuantity(quantity);
}
} else if (quantity > 0) {
items.add(new CartItem(name, minPrice, maxPrice, quantity, imageFile));
}
}
// Range-based pricing
public static int getGlobalTotalMin() {
int total = 0;
for (CartItem item : items) total += item.getTotalMin();
return total;
}
public static int getGlobalTotalMax() {
int total = 0;
for (CartItem item : items) total += item.getTotalMax();
return total;
}
public static void clear() {
items.clear();
}
}