1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package com.cosylab.gui.adapters;
21
22 import java.util.Map;
23
24 import com.cosylab.gui.displayers.AsynchronousNumberConsumer;
25 import com.cosylab.gui.displayers.AsynchronousObjectConsumer;
26 import com.cosylab.gui.displayers.AsynchronousStringConsumer;
27 import com.cosylab.gui.displayers.DataConsumer;
28 import com.cosylab.gui.displayers.DataState;
29 import com.cosylab.gui.displayers.NonblockingNumberConsumer;
30 import com.cosylab.gui.displayers.NonblockingObjectConsumer;
31 import com.cosylab.gui.displayers.NonblockingStringConsumer;
32 import com.cosylab.gui.displayers.SynchronousNumberConsumer;
33 import com.cosylab.gui.displayers.SynchronousObjectConsumer;
34 import com.cosylab.gui.displayers.SynchronousStringConsumer;
35 import com.cosylab.gui.displayers.UpdateRequest;
36 import com.cosylab.util.CommonException;
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public class FeedbackConsumerSupport implements AsynchronousNumberConsumer,
51 AsynchronousObjectConsumer, AsynchronousStringConsumer,
52 SynchronousNumberConsumer, SynchronousObjectConsumer,
53 SynchronousStringConsumer, NonblockingNumberConsumer,
54 NonblockingObjectConsumer, NonblockingStringConsumer
55 {
56 protected String name = "FeedbackConsumerSupport";
57 private static final Class[] supported = {
58 AsynchronousNumberConsumer.class, AsynchronousObjectConsumer.class,
59 AsynchronousStringConsumer.class, SynchronousNumberConsumer.class,
60 SynchronousObjectConsumer.class, SynchronousStringConsumer.class,
61 NonblockingNumberConsumer.class, NonblockingObjectConsumer.class,
62 NonblockingStringConsumer.class
63 };
64
65
66
67
68 public FeedbackConsumerSupport()
69 {
70 super();
71 }
72
73
74
75
76
77
78
79 public void updateAcynchronously(UpdateRequest request)
80 throws CommonException
81 {
82 try {
83 Object o = request.getNewTargetValue();
84
85 if (o instanceof Number) {
86 updateRequest(request.getTimestamp(), (Number)o);
87 } else if (o instanceof String) {
88 updateRequest(request.getTimestamp(), (String)o);
89 } else {
90 updateRequest(request.getTimestamp(), o);
91 }
92
93 request.reply(o, true, null);
94 } catch (Exception e) {
95 request.reply(request.getNewTargetValue(), false, e);
96 }
97 }
98
99
100
101
102
103
104
105 public void updateSynchronously(long timestamp, Number value)
106 throws CommonException
107 {
108 updateRequest(timestamp, value);
109 }
110
111
112
113
114
115
116
117 public void updateSynchronously(long timestamp, Object value)
118 throws CommonException
119 {
120 updateRequest(timestamp, value);
121 }
122
123
124
125
126
127
128
129 public void updateSynchronously(long timestamp, String value)
130 throws CommonException
131 {
132 updateRequest(timestamp, value);
133 }
134
135
136
137
138
139
140 public void updateNonblocking(Number value)
141 {
142 updateRequest(System.currentTimeMillis(), value);
143 }
144
145
146
147
148
149
150 public void updateNonblocking(Object value)
151 {
152 updateRequest(System.currentTimeMillis(), value);
153 }
154
155
156
157
158
159
160 public void updateNonblocking(String value)
161 {
162 updateRequest(System.currentTimeMillis(), value);
163 }
164
165
166
167
168 public DataConsumer getDataConsumer(Class type)
169 {
170 if (type.isAssignableFrom(this.getClass())) {
171 return this;
172 }
173
174 return null;
175 }
176
177
178
179
180 public DataConsumer getDefaultDataConsumer()
181 {
182 return this;
183 }
184
185
186
187
188 public void updateDataState(DataState state)
189 {
190 }
191
192
193
194
195 public void setCharacteristics(Map characteristics)
196 {
197 }
198
199
200
201
202 public String getName()
203 {
204 return name;
205 }
206
207
208
209
210 public String[] getSupportedCharacteristics()
211 {
212 return null;
213 }
214
215
216
217
218 public Class[] getSupportedConsumerTypes()
219 {
220 return supported;
221 }
222
223
224
225
226
227
228
229 protected void updateRequest(long timestamp, Number value)
230 {
231 }
232
233
234
235
236
237
238
239 protected void updateRequest(long timestamp, Object value)
240 {
241 }
242
243
244
245
246
247
248
249 protected void updateRequest(long timestamp, String value)
250 {
251 }
252 }
253
254