-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathGreenhouseControlls.java
More file actions
153 lines (101 loc) · 3.28 KB
/
GreenhouseControlls.java
File metadata and controls
153 lines (101 loc) · 3.28 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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
package innerclasses;
import innerclasses.controller.*;
public class GreenhouseControlls 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 on"; }
}
public class LightOff extends Event {
public LightOff(long delayTime) {
super(delayTime);
}
public void action() {
light = false;
}
public String toString() { return "Light 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 "Water on"; }
}
public class WaterOff extends Event {
public WaterOff(long delayTime) {
super(delayTime);
}
public void action() {
water = false;
}
public String toString() { return "Water off"; }
}
// -------------------------------------------------------------------------
private String thermostat = "Night";
public class ThermostatNight extends Event {
public ThermostatNight(long delayTime) {
super(delayTime);
}
public void action() {
thermostat = "Night";
}
public String toString() { return "Thermostat using nightly mode"; }
}
public class ThermostatDay extends Event {
public ThermostatDay(long delayTime) {
super(delayTime);
}
public void action() {
thermostat = "Day";
}
public String toString() { return "Thermostat using dayly mode"; }
}
// -------------------------------------------------------------------------
public class Bell extends Event {
public Bell(long delayTime) {
super(delayTime);
}
public void action() {
addEvent(new Bell(delayTime));
}
public String toString() { return "B-a-a-m!"; }
}
// -------------------------------------------------------------------------
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 "Restart of system"; }
}
public static class Terminate extends Event {
public Terminate(long delayTime) { super(delayTime); }
public void action() { System.exit(0); }
public String toString() { return "Terminating"; }
}
}