FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
OnJava8-Examples/innerclasses/GreenhouseControls.java at master · CSapprenticeWT/OnJava8-Examples · GitHub
CSapprenticeWT
OnJava8-Examples
Repository navigation
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
OnJava8-Examples
/
innerclasses
/
GreenhouseControls.java
Copy path
More file actions
More file actions
Latest commit
History
History
History
133 lines (132 loc) · 3.55 KB
Breadcrumbs
OnJava8-Examples
/
innerclasses
/
GreenhouseControls.java
Copy path
File metadata and controls
133 lines (132 loc) · 3.55 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
// innerclasses/GreenhouseControls.java
// (c)2021 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://OnJava8.com for more book information.
// This produces a specific application of the
// control system, all in a single class. Inner
// classes allow you to encapsulate different
// functionality for each type of event.
import
innerclasses
.
controller
.*;
public
class
GreenhouseControls
extends
Controller
{
private
boolean
light
=
false
;
public
class
LightOn
extends
Event
{
public
LightOn
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
// Put hardware control code here to
// physically turn on the light.
light
=
true
;
}
@
Override
public
String
toString
() {
return
"Light is on"
;
}
}
public
class
LightOff
extends
Event
{
public
LightOff
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
// Put hardware control code here to
// physically turn off the light.
light
=
false
;
}
@
Override
public
String
toString
() {
return
"Light is off"
;
}
}
private
boolean
water
=
false
;
public
class
WaterOn
extends
Event
{
public
WaterOn
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
// Put hardware control code here.
water
=
true
;
}
@
Override
public
String
toString
() {
return
"Greenhouse water is on"
;
}
}
public
class
WaterOff
extends
Event
{
public
WaterOff
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
// Put hardware control code here.
water
=
false
;
}
@
Override
public
String
toString
() {
return
"Greenhouse water is off"
;
}
}
private
String
thermostat
=
"Day"
;
public
class
ThermostatNight
extends
Event
{
public
ThermostatNight
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
// Put hardware control code here.
thermostat
=
"Night"
;
}
@
Override
public
String
toString
() {
return
"Thermostat on night setting"
;
}
}
public
class
ThermostatDay
extends
Event
{
public
ThermostatDay
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
// Put hardware control code here.
thermostat
=
"Day"
;
}
@
Override
public
String
toString
() {
return
"Thermostat on day setting"
;
}
}
// An example of an action() that inserts a
// new one of itself into the event list:
public
class
Bell
extends
Event
{
public
Bell
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
addEvent
(
new
Bell
(
delayTime
.
toMillis
()));
}
@
Override
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
);
}
@
Override
public
void
action
() {
for
(
Event
e
:
eventList
) {
e
.
start
();
// Rerun each event
addEvent
(
e
);
}
start
();
// Rerun this Event
addEvent
(
this
);
}
@
Override
public
String
toString
() {
return
"Restarting system"
;
}
}
public
static
class
Terminate
extends
Event
{
public
Terminate
(
long
delayTime
) {
super
(
delayTime
);
}
@
Override
public
void
action
() {
System
.
exit
(
0
); }
@
Override
public
String
toString
() {
return
"Terminating"
;
}
}
}
Back
|
FazBrowse Home
|
New Git URL