xiot-core-spec-ts
Version:
XIOT Specification Codec
221 lines (220 loc) • 12.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.OwnerNoticeCodec = void 0;
const NoticeCodec_1 = require("../../typedef/notice/NoticeCodec");
const OwnerNoticeType_1 = require("../../typedef/notice/owner/OwnerNoticeType");
const OwnerDeviceAdded_1 = require("../../typedef/notice/owner/impl/OwnerDeviceAdded");
const OwnerDeviceAddedCodec_1 = require("./owner/OwnerDeviceAddedCodec");
const OwnerDeviceRemoved_1 = require("../../typedef/notice/owner/impl/OwnerDeviceRemoved");
const OwnerDeviceRemovedCodec_1 = require("./owner/OwnerDeviceRemovedCodec");
const OwnerDeviceSummaryChanged_1 = require("../../typedef/notice/owner/impl/OwnerDeviceSummaryChanged");
const OwnerDeviceSummaryChangedCodec_1 = require("./owner/OwnerDeviceSummaryChangedCodec");
const OwnerPropertiesChanged_1 = require("../../typedef/notice/owner/impl/OwnerPropertiesChanged");
const OwnerPropertiesChangedCodec_1 = require("./owner/OwnerPropertiesChangedCodec");
const OwnerEventOccurred_1 = require("../../typedef/notice/owner/impl/OwnerEventOccurred");
const OwnerEventOccurredCodec_1 = require("./owner/OwnerEventOccurredCodec");
const OwnershipDisclaimed_1 = require("../../typedef/notice/owner/impl/OwnershipDisclaimed");
const OwnershipDisclaimedCodec_1 = require("./owner/OwnershipDisclaimedCodec");
const OwnershipTaken_1 = require("../../typedef/notice/owner/impl/OwnershipTaken");
const OwnershipTakenCodec_1 = require("./owner/OwnershipTakenCodec");
const OwnerRuleAdded_1 = require("../../typedef/notice/owner/impl/OwnerRuleAdded");
const OwnerRuleAddedCodec_1 = require("./owner/OwnerRuleAddedCodec");
const OwnerRuleRemoved_1 = require("../../typedef/notice/owner/impl/OwnerRuleRemoved");
const OwnerRuleRemovedCodec_1 = require("./owner/OwnerRuleRemovedCodec");
const OwnerRuleChanged_1 = require("../../typedef/notice/owner/impl/OwnerRuleChanged");
const OwnerRuleChangedCodec_1 = require("./owner/OwnerRuleChangedCodec");
const OwnerRuleTriggered_1 = require("../../typedef/notice/owner/impl/OwnerRuleTriggered");
const OwnerRuleTriggeredCodec_1 = require("./owner/OwnerRuleTriggeredCodec");
const OwnerRuleExecuted_1 = require("../../typedef/notice/owner/impl/OwnerRuleExecuted");
const OwnerRuleExecutedCodec_1 = require("./owner/OwnerRuleExecutedCodec");
const OwnerSpaceAdded_1 = require("../../typedef/notice/owner/impl/space/OwnerSpaceAdded");
const OwnerSpaceAddedCodec_1 = require("./owner/space/OwnerSpaceAddedCodec");
const OwnerSpaceChangedCodec_1 = require("./owner/space/OwnerSpaceChangedCodec");
const OwnerSpaceChanged_1 = require("../../typedef/notice/owner/impl/space/OwnerSpaceChanged");
const OwnerSpaceRemoved_1 = require("../../typedef/notice/owner/impl/space/OwnerSpaceRemoved");
const OwnerSpaceRemovedCodec_1 = require("./owner/space/OwnerSpaceRemovedCodec");
const OwnerDeviceSomewhereChanged_1 = require("../../typedef/notice/owner/impl/OwnerDeviceSomewhereChanged");
const OwnerDeviceSomewhereChangedCodec_1 = require("./owner/OwnerDeviceSomewhereChangedCodec");
const OwnerHomeAdded_1 = require("../../typedef/notice/owner/impl/home/OwnerHomeAdded");
const OwnerHomeAddedCodec_1 = require("./owner/home/OwnerHomeAddedCodec");
const OwnerHomeChangedCodec_1 = require("./owner/home/OwnerHomeChangedCodec");
const OwnerHomeChanged_1 = require("../../typedef/notice/owner/impl/home/OwnerHomeChanged");
const OwnerHomeRemoved_1 = require("../../typedef/notice/owner/impl/home/OwnerHomeRemoved");
const OwnerHomeRemovedCodec_1 = require("./owner/home/OwnerHomeRemovedCodec");
class OwnerNoticeCodec extends NoticeCodec_1.NoticeCodec {
mainType() {
return 'owner';
}
encode(x) {
let o = {};
switch ((0, OwnerNoticeType_1.OwnerNoticeTypeFromString)(x.subType())) {
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_ADDED:
if (x instanceof OwnerDeviceAdded_1.OwnerDeviceAdded) {
o = OwnerDeviceAddedCodec_1.OwnerDeviceAddedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_REMOVED:
if (x instanceof OwnerDeviceRemoved_1.OwnerDeviceRemoved) {
o = OwnerDeviceRemovedCodec_1.OwnerDeviceRemovedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_SUMMARY_CHANGED:
if (x instanceof OwnerDeviceSummaryChanged_1.OwnerDeviceSummaryChanged) {
o = OwnerDeviceSummaryChangedCodec_1.OwnerDeviceSummaryChangedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_SOMEWHERE_CHANGED:
if (x instanceof OwnerDeviceSomewhereChanged_1.OwnerDeviceSomewhereChanged) {
o = OwnerDeviceSomewhereChangedCodec_1.OwnerDeviceSomewhereChangedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_PROPERTIES_CHANGED:
if (x instanceof OwnerPropertiesChanged_1.OwnerPropertiesChanged) {
o = OwnerPropertiesChangedCodec_1.OwnerPropertiesChangedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_EVENT_OCCURRED:
if (x instanceof OwnerEventOccurred_1.OwnerEventOccurred) {
o = OwnerEventOccurredCodec_1.OwnerEventOccurredCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.OWNERSHIP_DISCLAIMED:
if (x instanceof OwnershipDisclaimed_1.OwnershipDisclaimed) {
o = OwnershipDisclaimedCodec_1.OwnershipDisclaimedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.OWNERSHIP_TAKEN:
if (x instanceof OwnershipTaken_1.OwnershipTaken) {
o = OwnershipTakenCodec_1.OwnershipTakenCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_ADDED:
if (x instanceof OwnerRuleAdded_1.OwnerRuleAdded) {
o = OwnerRuleAddedCodec_1.OwnerRuleAddedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_REMOVED:
if (x instanceof OwnerRuleRemoved_1.OwnerRuleRemoved) {
o = OwnerRuleRemovedCodec_1.OwnerRuleRemovedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_CHANGED:
if (x instanceof OwnerRuleChanged_1.OwnerRuleChanged) {
o = OwnerRuleChangedCodec_1.OwnerRuleChangedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_TRIGGERED:
if (x instanceof OwnerRuleTriggered_1.OwnerRuleTriggered) {
o = OwnerRuleTriggeredCodec_1.OwnerRuleTriggeredCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_EXECUTED:
if (x instanceof OwnerRuleExecuted_1.OwnerRuleExecuted) {
o = OwnerRuleExecutedCodec_1.OwnerRuleExecutedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.HOME_ADDED:
if (x instanceof OwnerHomeAdded_1.OwnerHomeAdded) {
o = OwnerHomeAddedCodec_1.OwnerHomeAddedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.HOME_CHANGED:
if (x instanceof OwnerHomeChanged_1.OwnerHomeChanged) {
o = OwnerHomeChangedCodec_1.OwnerHomeChangedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.HOME_REMOVED:
if (x instanceof OwnerHomeRemoved_1.OwnerHomeRemoved) {
o = OwnerHomeRemovedCodec_1.OwnerHomeRemovedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.SPACE_ADDED:
if (x instanceof OwnerSpaceAdded_1.OwnerSpaceAdded) {
o = OwnerSpaceAddedCodec_1.OwnerSpaceAddedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.SPACE_CHANGED:
if (x instanceof OwnerSpaceChanged_1.OwnerSpaceChanged) {
o = OwnerSpaceChangedCodec_1.OwnerSpaceChangedCodec.encode(x);
}
break;
case OwnerNoticeType_1.OwnerNoticeType.SPACE_REMOVED:
if (x instanceof OwnerSpaceRemoved_1.OwnerSpaceRemoved) {
o = OwnerSpaceRemovedCodec_1.OwnerSpaceRemovedCodec.encode(x);
}
break;
default:
break;
}
return o;
}
decode(subType, o) {
let notice;
switch (subType) {
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_ADDED:
notice = OwnerDeviceAddedCodec_1.OwnerDeviceAddedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_REMOVED:
notice = OwnerDeviceRemovedCodec_1.OwnerDeviceRemovedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_SUMMARY_CHANGED:
notice = OwnerDeviceSummaryChangedCodec_1.OwnerDeviceSummaryChangedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_SOMEWHERE_CHANGED:
notice = OwnerDeviceSomewhereChangedCodec_1.OwnerDeviceSomewhereChangedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_PROPERTIES_CHANGED:
notice = OwnerPropertiesChangedCodec_1.OwnerPropertiesChangedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.DEVICE_EVENT_OCCURRED:
notice = OwnerEventOccurredCodec_1.OwnerEventOccurredCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.OWNERSHIP_DISCLAIMED:
notice = OwnershipDisclaimedCodec_1.OwnershipDisclaimedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.OWNERSHIP_TAKEN:
notice = OwnershipTakenCodec_1.OwnershipTakenCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_ADDED:
notice = OwnerRuleAddedCodec_1.OwnerRuleAddedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_REMOVED:
notice = OwnerRuleRemovedCodec_1.OwnerRuleRemovedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_CHANGED:
notice = OwnerRuleChangedCodec_1.OwnerRuleChangedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_TRIGGERED:
notice = OwnerRuleTriggeredCodec_1.OwnerRuleTriggeredCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.RULE_EXECUTED:
notice = OwnerRuleExecutedCodec_1.OwnerRuleExecutedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.HOME_ADDED:
notice = OwnerHomeAddedCodec_1.OwnerHomeAddedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.HOME_CHANGED:
notice = OwnerHomeChangedCodec_1.OwnerHomeChangedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.HOME_REMOVED:
notice = OwnerHomeRemovedCodec_1.OwnerHomeRemovedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.SPACE_ADDED:
notice = OwnerSpaceAddedCodec_1.OwnerSpaceAddedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.SPACE_CHANGED:
notice = OwnerSpaceChangedCodec_1.OwnerSpaceChangedCodec.decode(o);
break;
case OwnerNoticeType_1.OwnerNoticeType.SPACE_REMOVED:
notice = OwnerSpaceRemovedCodec_1.OwnerSpaceRemovedCodec.decode(o);
break;
default:
throw new Error(`invalid subType: ${subType}`);
}
return notice;
}
decodeObject(o) {
return this.decode(o.type, o.payload);
}
}
exports.OwnerNoticeCodec = OwnerNoticeCodec;