UNPKG

xiot-core-spec-ts

Version:
77 lines (76 loc) 4.25 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const XepRecordDeviceAdded_1 = require("../../typedef/xep/impl/XepRecordDeviceAdded"); const XepRecordType_1 = require("../../typedef/xep/XepRecordType"); const XepRecordDeviceSummaryChanged_1 = require("../../typedef/xep/impl/XepRecordDeviceSummaryChanged"); const XepRecordDeviceRemovedCodec_1 = require("./XepRecordDeviceRemovedCodec"); const XepRecordEventOccurred_1 = require("../../typedef/xep/impl/XepRecordEventOccurred"); const XepRecordDeviceEventOccurredCodec_1 = require("./XepRecordDeviceEventOccurredCodec"); const XepRecordPropertiesChanged_1 = require("../../typedef/xep/impl/XepRecordPropertiesChanged"); const XepRecordDeviceSummaryChangedCodec_1 = require("./XepRecordDeviceSummaryChangedCodec"); const XepRecordDevicePropertiesChangedCodec_1 = require("./XepRecordDevicePropertiesChangedCodec"); const XepRecordDeviceAddedCodec_1 = require("./XepRecordDeviceAddedCodec"); const XepRecordDeviceRemoved_1 = require("../../typedef/xep/impl/XepRecordDeviceRemoved"); class XepRecordCodec { static encodeObject(record) { let payload = {}; switch (record.type()) { case XepRecordType_1.XepRecordType.DEVICE_ADDED: if (record instanceof XepRecordDeviceAdded_1.XepRecordDeviceAdded) { payload = XepRecordDeviceAddedCodec_1.XepRecordDeviceAddedCodec.encodeObject(record); } break; case XepRecordType_1.XepRecordType.DEVICE_REMOVED: if (record instanceof XepRecordDeviceRemoved_1.XepRecordDeviceRemoved) { payload = XepRecordDeviceRemovedCodec_1.XepRecordDeviceRemovedCodec.encodeObject(record); } break; case XepRecordType_1.XepRecordType.DEVICE_EVENT_OCCURRED: if (record instanceof XepRecordEventOccurred_1.XepRecordEventOccurred) { payload = XepRecordDeviceEventOccurredCodec_1.XepRecordDeviceEventOccurredCodec.encodeObject(record); } break; case XepRecordType_1.XepRecordType.DEVICE_PROPERTIES_CHANGED: if (record instanceof XepRecordPropertiesChanged_1.XepRecordPropertiesChanged) { payload = XepRecordDevicePropertiesChangedCodec_1.XepRecordDevicePropertiesChangedCodec.encodeObject(record); } break; case XepRecordType_1.XepRecordType.DEVICE_SUMMARY_CHANGED: if (record instanceof XepRecordDeviceSummaryChanged_1.XepRecordDeviceSummaryChanged) { payload = XepRecordDeviceSummaryChangedCodec_1.XepRecordDeviceSummaryChangedCodec.encodeObject(record); } break; default: break; } return { 'class': record.type().toString(), 'payload': payload }; } static decodeObject(o) { const payload = o.payload; let record = null; switch (XepRecordType_1.XepRecordTypeFromString(o.class)) { case XepRecordType_1.XepRecordType.DEVICE_ADDED: record = XepRecordDeviceAddedCodec_1.XepRecordDeviceAddedCodec.decodeObject(payload); break; case XepRecordType_1.XepRecordType.DEVICE_SUMMARY_CHANGED: record = XepRecordDeviceSummaryChangedCodec_1.XepRecordDeviceSummaryChangedCodec.decodeObject(payload); break; case XepRecordType_1.XepRecordType.DEVICE_PROPERTIES_CHANGED: record = XepRecordDevicePropertiesChangedCodec_1.XepRecordDevicePropertiesChangedCodec.decodeObject(payload); break; case XepRecordType_1.XepRecordType.DEVICE_EVENT_OCCURRED: record = XepRecordDeviceEventOccurredCodec_1.XepRecordDeviceEventOccurredCodec.decodeObject(payload); break; case XepRecordType_1.XepRecordType.DEVICE_REMOVED: record = XepRecordDeviceRemovedCodec_1.XepRecordDeviceRemovedCodec.decodeObject(payload); break; default: break; } return record; } } exports.XepRecordCodec = XepRecordCodec;