SimpleMachine.java

1    package model; 
2     
3    import java.util.LinkedList; 
4    import java.util.List; 
5    import java.util.Scanner; 
6     
7    class SimpleMachine extends Machine { 
8        final static int WATER_MAX = Integer.MAX_VALUE; 
9        final static int COFFEE_MAX = 10; 
10        
11       private Ingredient hotwater, coffee; 
12       private BasicDisplay display; 
13    
14       SimpleMachine() { 
15           super("Dave's Less Famous Coffee Machine"); 
16    
17       } 
18    
19       void initialiseIngredients() { 
20           hotwater  = new Ingredient("Water", WATER_MAX, dispenser); 
21           coffee    = new Ingredient("Coffee", COFFEE_MAX, dispenser); 
22           display   = new BasicDisplay(); 
23    
24           coffee.onEmpty( s -> { display.setRed(); } ); 
25       } 
26    
27       void populateMenu() { 
28           menu.add(new Button(1, "Tea", b -> this.tea())); 
29           menu.add(new Button(2, "Coffee", b -> this.coffee())); 
30           menu.add(new TextItem("")); 
31           menu.add(new Button(100, "Dispense", b -> this.dispense())); 
32       } 
33        
34       void tea() { 
35           display.setGreen(); 
36           hotwater.use(); 
37       } 
38        
39       void coffee() { 
40           display.setYellow(); 
41           coffee.use(); 
42       } 
43    
44        
45       void dispense() { 
46           dispenser.dispense(); 
47           display.unsetAll(); 
48       } 
49        
50       public static void main(String[] args) { 
51           SimpleMachine machine = new SimpleMachine(); 
52           machine.run(); 
53       } 
54   }