CoffeeQueue.java (1241B)
1 package breakRoom; 2 3 import java.util.concurrent.ConcurrentLinkedQueue; 4 5 public class CoffeeQueue { 6 private ConcurrentLinkedQueue<Worker> coffeeQueue; 7 8 /** 9 * Constructor, creates a new coffeeQueue where workers can queue to get their 10 * fill of coffee. 11 */ 12 public CoffeeQueue() { 13 coffeeQueue = new ConcurrentLinkedQueue<Worker>(); 14 } 15 16 /** 17 * Add worker to queue. 18 * 19 * @param w The worker to add. 20 */ 21 public void enQueue(Worker w) { 22 coffeeQueue.add(w); 23 } 24 25 /** 26 * Removes worker from the queue. 27 * 28 * @return returns the removed worker. 29 */ 30 public Worker deQueue() { 31 return coffeeQueue.remove(); 32 } 33 34 /** 35 * Remove specific worker from coffeeQueue. 36 * 37 * @param w the worker to remove. 38 */ 39 public void deQueue(Worker w) { 40 coffeeQueue.remove(w); 41 } 42 43 /** 44 * get the ammount of workers currently queuing for coffee. 45 * 46 * @return size of coffeeQueue. 47 */ 48 public int getSize() { 49 return coffeeQueue.size(); 50 } 51 52 /** 53 * Used to determine if worker exists in queue. 54 * 55 * @param w the worker whose presence we are observing. 56 * @return true if the specified worker exists, else false. 57 */ 58 public boolean inQueue(Worker w) { 59 if (coffeeQueue.contains(w)) { 60 return true; 61 } 62 return false; 63 } 64 }