import java.util.ArrayList; /** * Manage the stock in a business. * The stock is described by zero or more Products. */ public class StockManager { private ArrayList stock; // A list of the products. /** * Initialise the stock manager. */ public StockManager() { stock = new ArrayList(); } /** * Add a product to the list. * @param item The item to be added. */ public void addProduct(Product item) { stock.add(item); } /** * Receive a delivery of a particular product. * Increase the quantity of the product by the given amount. * @param id The ID of the product. * @param amount The amount to increase the quantity by. */ public void delivery(int id, int amount) { if(amount > 0) { for(Product product : stock) { if(id == product.getID()) //if the id matches, increase the { //quantity by the amount in the param product.increaseQuantity(amount); } } } else { System.out.println("The number entered must be a positive integer"); } } /** * Try to find a product in the stock with the given id. * @return The identified product, or null if there is none * with a matching ID. */ public Product findProduct(int id) { for(Product product : stock) { if(id == product.getID()) //if the id matches, return the product { return product; } } return null; } /** * Prints all the details of all * the products that have a * certain stock level below the given value * @param min The minimum value you are searching for */ public void printMinimumStock(int minValue) { if(minValue > 0) //the minimum value has to be greater than 0 { for(Product product : stock) { if(minValue > product.getQuantity()) //if the minimum value is greater than the quantity, { //prints out all the products that have less than the value System.out.println(product.toString()); } } } else { System.out.println("The number entered is negative, must enter a positive number"); } } /** * Locate a product with the given ID, and return how * many of this item are in stock. If the ID does not * match any product, return zero. * @param id The ID of the product. * @return The quantity of the given product in stock. */ public int numberInStock(int id) { for(Product product : stock) { if(id == product.getID()) //if the ID matches the ID in stock, { //returns the quantity return product.getQuantity(); } } return 0; //if it doesn't match, there are none in stock } /** * Print details of all the products. */ public void printProductDetails() { for(Product product : stock) { System.out.println(product.toString()); } } }