1
2
3
4
5
6
7
8
9
10 package tempcontroller.base;
11
12 import java.util.HashSet;
13 import java.util.Iterator;
14 import java.util.Set;
15
16
17
18
19
20 public abstract class AbstractControladorTemperatura
21 implements IControladorTemperatura {
22
23
24
25
26 private IControladorTemperatura.Estado estado =
27 IControladorTemperatura.Estado.SEM_ALVO;
28
29
30
31
32
33 private final Set<IOuvinteMudancaTemperatura> ouvintes =
34 new HashSet<IOuvinteMudancaTemperatura>();
35
36
37
38
39 private double temperaturaAlvo;
40
41
42
43
44
45 public IControladorTemperatura.Estado getEstado() {
46 return estado;
47 }
48
49
50
51
52
53
54 public void addIOuvinteMundancaTemperatura(
55 final IOuvinteMudancaTemperatura ouvinte) {
56 ouvintes.add(ouvinte);
57 }
58
59
60
61
62
63
64 public void removeOuvinteMudancaTemperatura(
65 final IOuvinteMudancaTemperatura ouvinte) {
66 ouvintes.remove(ouvinte);
67 }
68
69
70
71
72 protected void fireMudancaTemperatura() {
73 Iterator<IOuvinteMudancaTemperatura> it = ouvintes.iterator();
74 while (it.hasNext()) {
75 IOuvinteMudancaTemperatura ouvinte = it.next();
76 ouvinte.novaTemperatura(getTemperatura());
77 }
78 }
79
80
81
82
83
84 protected void fireTemperaturaAlvoAlcancada() {
85 Iterator<IOuvinteMudancaTemperatura> it = ouvintes.iterator();
86 while (it.hasNext()) {
87 IOuvinteMudancaTemperatura ouvinte = it.next();
88 ouvinte.temperaturaAlvoAlcancada(getTemperatura());
89 }
90 }
91
92
93
94
95
96 public void setTemperaturaAlvo(final double temperatura) {
97 temperaturaAlvo = temperatura;
98 }
99
100
101
102
103
104 public double getTemperaturaAlvo() {
105 return temperaturaAlvo;
106 }
107
108
109
110
111
112 public void dispose() {
113
114
115 }
116
117
118
119
120 public void cancelaTemperaturaAlvo() {
121 estado = IControladorTemperatura.Estado.SEM_ALVO;
122 cancelaTemperaturaAlvoImpl();
123 }
124
125
126
127
128
129
130 protected abstract void cancelaTemperaturaAlvoImpl();
131 }