-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGreenhouseControls.java
More file actions
117 lines (114 loc) · 2.94 KB
/
Copy pathGreenhouseControls.java
File metadata and controls
117 lines (114 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
public class GreenhouseControls extends Controller{
private boolean light = false;
public class LightOn extends Event{
public LightOn(long delayTime){
super(delayTime);
}
public void action(){
light = true;
}
}
public String toString(){
return "Light is on";
}
public class LightOff extends Event{
public LightOff(long delayTime){
super(delayTime);
}
public void action(){
light = false;
}
public String toString(){
return "Light is off";
}
}
private boolean water = false;
public class WaterOn extends Event{
public WaterOn(long delayTime){
super(delayTime);
}
public void action(){
water = true;
}
public String toString(){
return "Greenhouse water is on";
}
}
public class WaterOff extends Event{
public WaterOff(long delayTime){
super(delayTime);
}
public void action(){
water = false;
}
public String toString(){
return "Greenhouse water is off";
}
}
private String thermostat = "Day";
public class ThermostatNight extends Event{
public ThermostatNight(long delayTime){
super(delayTime);
}
public void action(){
thermostat = "Night";
}
public String toString(){
return "Thermostat on night setting";
}
}
public class ThermostatDay extends Event{
public ThermostatDay(long delayTime){
super(delayTime);
}
public void action(){
thermostat = "Day";
}
public String toString(){
return "Thermostat on day setting";
}
}
public class Bell extends Event{
public Bell(long delayTime){
super(delayTime);
}
public void action(){
addEvent(new Bell(delayTime));
}
public String toString(){
return "Bing!";
}
}
public class Restart extends Event{
private Event[] eventList;
public Restart(long delayTime, Event[] eventList){
super(delayTime);
this.eventList = eventList;
for(Event e:eventList){
addEvent(e);
}
}
public void action(){
for(Event e:eventList){
e.start();
addEvent(e);
}
start();
addEvent(this);
}
public String toString(){
return "Restarting system";
}
}
public static class Terminate extends Event{
public Terminate(long delayTime){
super(delayTime);
}
public void action(){
System.exit(0);
}
public String toString(){
return "Terminating";
}
}
}