/** * @author Muhammad Bagus Istighfar * @version 28-10-20 */ import java.util.ArrayList; public class Auction { private ArrayList lots; private int nextLotNumber; public Auction() { lots = new ArrayList(); nextLotNumber = 1; } public void enterLot(String description) { lots.add(new Lot(nextLotNumber, description)); nextLotNumber++; } public void showLots() { for(Lot lot : lots) { System.out.println(lot.toString()); } } public void makeABid(int lotNumber, Person bidder, long value) { Lot selectedLot = getLot(lotNumber); if (selectedLot != null) { boolean succesful = selectedLot.bidFor(new Bid(bidder, value)); if (succesful) { System.out.println("The bid for lot number " + lotNumber + " was succesful."); } else { Bid highestBid = selectedLot.getHighestBid(); System.out.println("Lot number: " + lotNumber + " already has a bid of: " + highestBid.getValue()); } } } public Lot getLot(int lotNumber) { if((lotNumber >= 1) && (lotNumber < nextLotNumber)) { Lot selectedLot = lots.get(lotNumber-1); if (selectedLot.getNumber() != lotNumber) { System.out.println("Internal error: Lot number " + selectedLot.getNumber() + " was returned instead of " + lotNumber); selectedLot = null; } return selectedLot; } else { System.out.println("Lot number: " + lotNumber + " does not exist."); return null; } } public void close() { System.out.println("Closing auction."); for (Lot lot : lots) { System.out.println(lot.getNumber() + ": " + lot.getDescription()); if (lot.getHighestBid() == null) { System.out.println (" (No bids) "); } else { Bid highestBid = lot.getHighestBid(); System.out.println(" sold to " + highestBid.getBidder().getName() + " for " + highestBid.getValue()); } } } }