xiot-core-spec-ts
Version:
XIOT Specification Codec
123 lines (122 loc) • 6.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DeviceNoticeCodec = void 0;
const NoticeCodec_1 = require("../../typedef/notice/NoticeCodec");
const DeviceNoticeType_1 = require("../../typedef/notice/device/DeviceNoticeType");
const DeviceAccessKeyChangedCodec_1 = require("./device/DeviceAccessKeyChangedCodec");
const DeviceAccessKeyChanged_1 = require("../../typedef/notice/device/impl/DeviceAccessKeyChanged");
const DeviceChildrenAdded_1 = require("../../typedef/notice/device/impl/DeviceChildrenAdded");
const DeviceChildrenAddedCodec_1 = require("./device/DeviceChildrenAddedCodec");
const DeviceChildrenRemoved_1 = require("../../typedef/notice/device/impl/DeviceChildrenRemoved");
const DeviceChildrenRemovedCodec_1 = require("./device/DeviceChildrenRemovedCodec");
const DevicePropertiesChanged_1 = require("../../typedef/notice/device/impl/DevicePropertiesChanged");
const DevicePropertiesChangedCodec_1 = require("./device/DevicePropertiesChangedCodec");
const DevicePropertyChanged_1 = require("../../typedef/notice/device/impl/DevicePropertyChanged");
const DevicePropertyChangedCodec_1 = require("./device/DevicePropertyChangedCodec");
const DeviceEventOccurred_1 = require("../../typedef/notice/device/impl/DeviceEventOccurred");
const DeviceEventOccurredCodec_1 = require("./device/DeviceEventOccurredCodec");
const DeviceRootActive_1 = require("../../typedef/notice/device/impl/DeviceRootActive");
const DeviceRootActiveCodec_1 = require("./device/DeviceRootActiveCodec");
const DeviceRootInactive_1 = require("../../typedef/notice/device/impl/DeviceRootInactive");
const DeviceRootInactiveCodec_1 = require("./device/DeviceRootInactiveCodec");
const DeviceSummaryChanged_1 = require("../../typedef/notice/device/impl/DeviceSummaryChanged");
const DeviceSummaryChangedCodec_1 = require("./device/DeviceSummaryChangedCodec");
class DeviceNoticeCodec extends NoticeCodec_1.NoticeCodec {
mainType() {
return 'device';
}
encode(x) {
let o = {};
switch ((0, DeviceNoticeType_1.DeviceNoticeTypeFromString)(x.subType())) {
case DeviceNoticeType_1.DeviceNoticeType.UNDEFINED:
break;
case DeviceNoticeType_1.DeviceNoticeType.ACCESSKEY_CHANGED:
if (x instanceof DeviceAccessKeyChanged_1.DeviceAccessKeyChanged) {
o = DeviceAccessKeyChangedCodec_1.DeviceAccessKeyChangedCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.CHILDREN_ADDED:
if (x instanceof DeviceChildrenAdded_1.DeviceChildrenAdded) {
o = DeviceChildrenAddedCodec_1.DeviceChildrenAddedCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.CHILDREN_REMOVED:
if (x instanceof DeviceChildrenRemoved_1.DeviceChildrenRemoved) {
o = DeviceChildrenRemovedCodec_1.DeviceChildrenRemovedCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.PROPERTIES_CHANGED:
if (x instanceof DevicePropertiesChanged_1.DevicePropertiesChanged) {
o = DevicePropertiesChangedCodec_1.DevicePropertiesChangedCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.PROPERTY_CHANGED:
if (x instanceof DevicePropertyChanged_1.DevicePropertyChanged) {
o = DevicePropertyChangedCodec_1.DevicePropertyChangedCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.EVENT_OCCURRED:
if (x instanceof DeviceEventOccurred_1.DeviceEventOccurred) {
o = DeviceEventOccurredCodec_1.DeviceEventOccurredCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.ROOT_ACTIVE:
if (x instanceof DeviceRootActive_1.DeviceRootActive) {
o = DeviceRootActiveCodec_1.DeviceRootActiveCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.ROOT_INACTIVE:
if (x instanceof DeviceRootInactive_1.DeviceRootInactive) {
o = DeviceRootInactiveCodec_1.DeviceRootInactiveCodec.encode(x);
}
break;
case DeviceNoticeType_1.DeviceNoticeType.SUMMARY_CHANGED:
if (x instanceof DeviceSummaryChanged_1.DeviceSummaryChanged) {
o = DeviceSummaryChangedCodec_1.DeviceSummaryChangedCodec.encode(x);
}
break;
default:
break;
}
return o;
}
decode(subType, o) {
let notice;
switch (subType) {
case DeviceNoticeType_1.DeviceNoticeType.ACCESSKEY_CHANGED:
notice = DeviceAccessKeyChangedCodec_1.DeviceAccessKeyChangedCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.CHILDREN_ADDED:
notice = DeviceChildrenAddedCodec_1.DeviceChildrenAddedCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.CHILDREN_REMOVED:
notice = DeviceChildrenRemovedCodec_1.DeviceChildrenRemovedCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.EVENT_OCCURRED:
notice = DeviceEventOccurredCodec_1.DeviceEventOccurredCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.PROPERTIES_CHANGED:
notice = DevicePropertiesChangedCodec_1.DevicePropertiesChangedCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.PROPERTY_CHANGED:
notice = DevicePropertyChangedCodec_1.DevicePropertyChangedCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.ROOT_ACTIVE:
notice = DeviceRootActiveCodec_1.DeviceRootActiveCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.ROOT_INACTIVE:
notice = DeviceRootInactiveCodec_1.DeviceRootInactiveCodec.decode(o);
break;
case DeviceNoticeType_1.DeviceNoticeType.SUMMARY_CHANGED:
notice = DeviceSummaryChangedCodec_1.DeviceSummaryChangedCodec.decode(o);
break;
default:
throw new Error(`invalid subType: ${subType}`);
}
return notice;
}
decodeObject(o) {
return this.decode(o.type, o.payload);
}
}
exports.DeviceNoticeCodec = DeviceNoticeCodec;