package fauxExchange; public class BuyOrder extends Order implements Comparable { public int compareTo (Object obj){ BuyOrder o = (BuyOrder)obj; if (o.isMarket() && this.isMarket() || o.getPrice() == this.getPrice()){ if (this.getOrderNumber() < o.getOrderNumber()) return 1; else if (this.getOrderNumber() == o.getOrderNumber()) return 0; else return -1; }else{ if (this.isMarket()) return -1; if (o.isMarket()) return 1; if (this.getPrice() < o.getPrice()) return 1; else return -1; } } public BuyOrder (int size, double price, int participant, boolean isMarket, int securityId){ setSize(size); setPrice(price); setParticipant(participant); setIsMarket(isMarket); setTime(System.currentTimeMillis()); setOrderNumber(getNextOrderNumber()); setSecurityID(securityId); setType(BUY); if (isMarket){ setPrice(Double.MAX_VALUE); } } public BuyOrder(int size, double price, boolean isMarket){ setTime(System.currentTimeMillis()); setSize(size); setPrice(price); setIsMarket(isMarket); } public BuyOrder(){} }