OpenECHO
 All Classes Namespaces Files Functions Variables
Controller.java
Go to the documentation of this file.
1 /*
2  * Copyright 2012 Sony Computer Science Laboratories, Inc. <info@kadecot.net>
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.sonycsl.echo.eoj.device.managementoperation;
17 
25 
26 public abstract class Controller extends DeviceObject {
27 
28  public static final short ECHO_CLASS_CODE = (short)0x05FF;
29 
30 
31  @Override
32  protected void setupPropertyMaps() {
33  super.setupPropertyMaps();
34 
38  }
39 
40  @Override
41  public void onNew() {
42  super.onNew();
43  Echo.getEventListener().onNewController(this);
44  }
45 
46  @Override
47  public short getEchoClassCode() {
48  return ECHO_CLASS_CODE;
49  }
50 
76  protected abstract boolean setOperationStatus(byte[] edt);
102  protected abstract byte[] getOperationStatus();
103 
104  @Override
105  protected synchronized boolean setProperty(EchoProperty property) {
106  boolean success = super.setProperty(property);
107  if(success) return success;
108 
109  switch(property.epc) {
110  default : return false;
111  }
112  }
113 
114  @Override
115  protected synchronized byte[] getProperty(byte epc) {
116  byte[] edt = super.getProperty(epc);
117  if(edt != null) return edt;
118 
119  switch(epc) {
120  default : return null;
121  }
122  }
123 
124  @Override
125  protected synchronized boolean isValidProperty(EchoProperty property) {
126  boolean valid = super.isValidProperty(property);
127  if(valid) return valid;
128 
129  switch(property.epc) {
130  default : return false;
131  }
132  }
133 
134  @Override
135  public Setter set() {
136  return set(true);
137  }
138 
139  @Override
140  public Setter set(boolean responseRequired) {
141  return new Setter(getEchoClassCode(), getInstanceCode()
142  , getNode().getAddressStr(), responseRequired);
143  }
144 
145  @Override
146  public Getter get() {
147  return new Getter(getEchoClassCode(), getInstanceCode()
148  , getNode().getAddressStr());
149  }
150 
151  @Override
152  public Informer inform() {
153  return inform(isSelfObject());
154  }
155 
156  @Override
157  protected Informer inform(boolean multicast) {
158  String address;
159  if(multicast) {
161  } else {
162  address = getNode().getAddressStr();
163  }
164  return new Informer(getEchoClassCode(), getInstanceCode()
165  , address, isSelfObject());
166  }
167 
168  public static class Receiver extends DeviceObject.Receiver {
169 
170  @Override
171  protected boolean onSetProperty(EchoObject eoj, short tid, byte esv,
172  EchoProperty property, boolean success) {
173  boolean ret = super.onSetProperty(eoj, tid, esv, property, success);
174  if(ret) return true;
175 
176  switch(property.epc) {
177  default :
178  return false;
179  }
180  }
181 
182  @Override
183  protected boolean onGetProperty(EchoObject eoj, short tid, byte esv,
184  EchoProperty property, boolean success) {
185  boolean ret = super.onGetProperty(eoj, tid, esv, property, success);
186  if(ret) return true;
187 
188  switch(property.epc) {
189  default :
190  return false;
191  }
192  }
193 
194  }
195 
196  public static class Setter extends DeviceObject.Setter {
197  public Setter(short dstEchoClassCode, byte dstEchoInstanceCode
198  , String dstEchoAddress, boolean responseRequired) {
199  super(dstEchoClassCode, dstEchoInstanceCode
200  , dstEchoAddress, responseRequired);
201  }
202 
203  @Override
204  public Setter reqSetProperty(byte epc, byte[] edt) {
205  return (Setter)super.reqSetProperty(epc, edt);
206  }
207 
208  @Override
209  public Setter reqSetOperationStatus(byte[] edt) {
210  return (Setter)super.reqSetOperationStatus(edt);
211  }
212  @Override
213  public Setter reqSetInstallationLocation(byte[] edt) {
214  return (Setter)super.reqSetInstallationLocation(edt);
215  }
216  @Override
217  public Setter reqSetCurrentLimitSetting(byte[] edt) {
218  return (Setter)super.reqSetCurrentLimitSetting(edt);
219  }
220  @Override
221  public Setter reqSetPowerSavingOperationSetting(byte[] edt) {
222  return (Setter)super.reqSetPowerSavingOperationSetting(edt);
223  }
224  @Override
225  public Setter reqSetRemoteControlSetting(byte[] edt) {
226  return (Setter)super.reqSetRemoteControlSetting(edt);
227  }
228  @Override
229  public Setter reqSetCurrentTimeSetting(byte[] edt) {
230  return (Setter)super.reqSetCurrentTimeSetting(edt);
231  }
232  @Override
233  public Setter reqSetCurrentDateSetting(byte[] edt) {
234  return (Setter)super.reqSetCurrentDateSetting(edt);
235  }
236  @Override
237  public Setter reqSetPowerLimitSetting(byte[] edt) {
238  return (Setter)super.reqSetPowerLimitSetting(edt);
239  }
240 
241  }
242 
243  public static class Getter extends DeviceObject.Getter {
244  public Getter(short dstEchoClassCode, byte dstEchoInstanceCode
245  , String dstEchoAddress) {
246  super(dstEchoClassCode, dstEchoInstanceCode
247  , dstEchoAddress);
248  }
249 
250  @Override
251  public Getter reqGetProperty(byte epc) {
252  return (Getter)super.reqGetProperty(epc);
253  }
254 
255  @Override
256  public Getter reqGetOperationStatus() {
257  return (Getter)super.reqGetOperationStatus();
258  }
259  @Override
260  public Getter reqGetInstallationLocation() {
261  return (Getter)super.reqGetInstallationLocation();
262  }
263  @Override
264  public Getter reqGetStandardVersionInformation() {
265  return (Getter)super.reqGetStandardVersionInformation();
266  }
267  @Override
268  public Getter reqGetIdentificationNumber() {
269  return (Getter)super.reqGetIdentificationNumber();
270  }
271  @Override
272  public Getter reqGetMeasuredInstantaneousPowerConsumption() {
273  return (Getter)super.reqGetMeasuredInstantaneousPowerConsumption();
274  }
275  @Override
276  public Getter reqGetMeasuredCumulativePowerConsumption() {
277  return (Getter)super.reqGetMeasuredCumulativePowerConsumption();
278  }
279  @Override
280  public Getter reqGetManufacturersFaultCode() {
281  return (Getter)super.reqGetManufacturersFaultCode();
282  }
283  @Override
284  public Getter reqGetCurrentLimitSetting() {
285  return (Getter)super.reqGetCurrentLimitSetting();
286  }
287  @Override
288  public Getter reqGetFaultStatus() {
289  return (Getter)super.reqGetFaultStatus();
290  }
291  @Override
292  public Getter reqGetFaultDescription() {
293  return (Getter)super.reqGetFaultDescription();
294  }
295  @Override
296  public Getter reqGetManufacturerCode() {
297  return (Getter)super.reqGetManufacturerCode();
298  }
299  @Override
300  public Getter reqGetBusinessFacilityCode() {
301  return (Getter)super.reqGetBusinessFacilityCode();
302  }
303  @Override
304  public Getter reqGetProductCode() {
305  return (Getter)super.reqGetProductCode();
306  }
307  @Override
308  public Getter reqGetProductionNumber() {
309  return (Getter)super.reqGetProductionNumber();
310  }
311  @Override
312  public Getter reqGetProductionDate() {
313  return (Getter)super.reqGetProductionDate();
314  }
315  @Override
316  public Getter reqGetPowerSavingOperationSetting() {
317  return (Getter)super.reqGetPowerSavingOperationSetting();
318  }
319  @Override
320  public Getter reqGetRemoteControlSetting() {
321  return (Getter)super.reqGetRemoteControlSetting();
322  }
323  @Override
324  public Getter reqGetCurrentTimeSetting() {
325  return (Getter)super.reqGetCurrentTimeSetting();
326  }
327  @Override
328  public Getter reqGetCurrentDateSetting() {
329  return (Getter)super.reqGetCurrentDateSetting();
330  }
331  @Override
332  public Getter reqGetPowerLimitSetting() {
333  return (Getter)super.reqGetPowerLimitSetting();
334  }
335  @Override
336  public Getter reqGetCumulativeOperatingTime() {
337  return (Getter)super.reqGetCumulativeOperatingTime();
338  }
339  @Override
340  public Getter reqGetStatusChangeAnnouncementPropertyMap() {
341  return (Getter)super.reqGetStatusChangeAnnouncementPropertyMap();
342  }
343  @Override
344  public Getter reqGetSetPropertyMap() {
345  return (Getter)super.reqGetSetPropertyMap();
346  }
347  @Override
348  public Getter reqGetGetPropertyMap() {
349  return (Getter)super.reqGetGetPropertyMap();
350  }
351 
352  }
353 
354  public static class Informer extends DeviceObject.Informer {
355  public Informer(short echoClassCode, byte echoInstanceCode
356  , String dstEchoAddress, boolean isSelfObject) {
357  super(echoClassCode, echoInstanceCode
358  , dstEchoAddress, isSelfObject);
359  }
360 
361  @Override
362  public Informer reqInformProperty(byte epc) {
363  return (Informer)super.reqInformProperty(epc);
364  }
365  @Override
366  public Informer reqInformOperationStatus() {
367  return (Informer)super.reqInformOperationStatus();
368  }
369  @Override
370  public Informer reqInformInstallationLocation() {
371  return (Informer)super.reqInformInstallationLocation();
372  }
373  @Override
374  public Informer reqInformStandardVersionInformation() {
375  return (Informer)super.reqInformStandardVersionInformation();
376  }
377  @Override
378  public Informer reqInformIdentificationNumber() {
379  return (Informer)super.reqInformIdentificationNumber();
380  }
381  @Override
382  public Informer reqInformMeasuredInstantaneousPowerConsumption() {
383  return (Informer)super.reqInformMeasuredInstantaneousPowerConsumption();
384  }
385  @Override
386  public Informer reqInformMeasuredCumulativePowerConsumption() {
387  return (Informer)super.reqInformMeasuredCumulativePowerConsumption();
388  }
389  @Override
390  public Informer reqInformManufacturersFaultCode() {
391  return (Informer)super.reqInformManufacturersFaultCode();
392  }
393  @Override
394  public Informer reqInformCurrentLimitSetting() {
395  return (Informer)super.reqInformCurrentLimitSetting();
396  }
397  @Override
398  public Informer reqInformFaultStatus() {
399  return (Informer)super.reqInformFaultStatus();
400  }
401  @Override
402  public Informer reqInformFaultDescription() {
403  return (Informer)super.reqInformFaultDescription();
404  }
405  @Override
406  public Informer reqInformManufacturerCode() {
407  return (Informer)super.reqInformManufacturerCode();
408  }
409  @Override
410  public Informer reqInformBusinessFacilityCode() {
411  return (Informer)super.reqInformBusinessFacilityCode();
412  }
413  @Override
414  public Informer reqInformProductCode() {
415  return (Informer)super.reqInformProductCode();
416  }
417  @Override
418  public Informer reqInformProductionNumber() {
419  return (Informer)super.reqInformProductionNumber();
420  }
421  @Override
422  public Informer reqInformProductionDate() {
423  return (Informer)super.reqInformProductionDate();
424  }
425  @Override
426  public Informer reqInformPowerSavingOperationSetting() {
427  return (Informer)super.reqInformPowerSavingOperationSetting();
428  }
429  @Override
430  public Informer reqInformRemoteControlSetting() {
431  return (Informer)super.reqInformRemoteControlSetting();
432  }
433  @Override
434  public Informer reqInformCurrentTimeSetting() {
435  return (Informer)super.reqInformCurrentTimeSetting();
436  }
437  @Override
438  public Informer reqInformCurrentDateSetting() {
439  return (Informer)super.reqInformCurrentDateSetting();
440  }
441  @Override
442  public Informer reqInformPowerLimitSetting() {
443  return (Informer)super.reqInformPowerLimitSetting();
444  }
445  @Override
446  public Informer reqInformCumulativeOperatingTime() {
447  return (Informer)super.reqInformCumulativeOperatingTime();
448  }
449  @Override
450  public Informer reqInformStatusChangeAnnouncementPropertyMap() {
451  return (Informer)super.reqInformStatusChangeAnnouncementPropertyMap();
452  }
453  @Override
454  public Informer reqInformSetPropertyMap() {
455  return (Informer)super.reqInformSetPropertyMap();
456  }
457  @Override
458  public Informer reqInformGetPropertyMap() {
459  return (Informer)super.reqInformGetPropertyMap();
460  }
461 
462  }
463 
464  public static class Proxy extends Controller {
465  public Proxy(byte instanceCode) {
466  super();
467  mEchoInstanceCode = instanceCode;
468  }
469  @Override
470  public byte getInstanceCode() {
471  return mEchoInstanceCode;
472  }
473  @Override
474  protected byte[] getOperationStatus() {return null;}
475  @Override
476  protected boolean setInstallationLocation(byte[] edt) {return false;}
477  @Override
478  protected byte[] getInstallationLocation() {return null;}
479  @Override
480  protected byte[] getStandardVersionInformation() {return null;}
481  @Override
482  protected byte[] getFaultStatus() {return null;}
483  @Override
484  protected byte[] getManufacturerCode() {return null;}
485  @Override
486  protected boolean setOperationStatus(byte[] edt) {return false;}
487  }
488 
489  public static Setter setG() {
490  return setG((byte)0);
491  }
492 
493  public static Setter setG(byte instanceCode) {
494  return setG(instanceCode, true);
495  }
496 
497  public static Setter setG(boolean responseRequired) {
498  return setG((byte)0, responseRequired);
499  }
500 
501  public static Setter setG(byte instanceCode, boolean responseRequired) {
502  return new Setter(ECHO_CLASS_CODE, instanceCode
503  , EchoSocket.MULTICAST_ADDRESS, responseRequired);
504  }
505 
506  public static Getter getG() {
507  return getG((byte)0);
508  }
509 
510  public static Getter getG(byte instanceCode) {
511  return new Getter(ECHO_CLASS_CODE, instanceCode
513  }
514 
515  public static Informer informG() {
516  return informG((byte)0);
517  }
518 
519  public static Informer informG(byte instanceCode) {
520  return new Informer(ECHO_CLASS_CODE, instanceCode
521  , EchoSocket.MULTICAST_ADDRESS, false);
522  }
523 
524 }
static Setter setG(byte instanceCode, boolean responseRequired)
final void addStatusChangeAnnouncementProperty(byte epc)
Definition: EchoObject.java:71
final void addGetProperty(byte epc)
final void addSetProperty(byte epc)
Definition: EchoObject.java:93
synchronized boolean setProperty(EchoProperty property)
static Setter setG(boolean responseRequired)
abstract boolean setInstallationLocation(byte[] edt)
static final String MULTICAST_ADDRESS
Definition: EchoSocket.java:53
synchronized boolean isValidProperty(EchoProperty property)