UNPKG

xiot-core-spec-ts

Version:
64 lines (63 loc) 2.56 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Property_1 = require("../../typedef/instance/Property"); const Spec_1 = require("../../typedef/constant/Spec"); const PropertyDefinitionCodec_1 = require("../definition/PropertyDefinitionCodec"); const DataFormat_1 = require("../../typedef/definition/property/data/DataFormat"); const ValueList_1 = require("../../typedef/definition/property/ValueList"); const ValueRange_1 = require("../../typedef/definition/property/ValueRange"); const Unit_1 = require("../../typedef/definition/property/Unit"); const DescriptionCodec_1 = require("../definition/DescriptionCodec"); class PropertyCodec { static decodeArray(array) { const list = []; if (array != null) { for (const o of array) { list.push(PropertyCodec.decode(o)); } } return list; } static decode(o) { return new Property_1.Property(o[Spec_1.Spec.IID], PropertyDefinitionCodec_1.PropertyDefinitionCodec.decode(o)); // const p = new Property(o[Spec.IID], PropertyDefinitionCodec.decode(o)); // // if (o[Spec.X_OPTIONAL] != null) { // p.type._optional = o[Spec.X_OPTIONAL]; // } // // return p; } static encode(property) { const object = { iid: property.iid, type: property.type.toString(), description: DescriptionCodec_1.DescriptionCodec.encode(property.description), format: DataFormat_1.DataFormatToString(property.format), access: property.access.toList() }; if (property.constraintValue != null) { if (property.constraintValue instanceof ValueList_1.ValueList) { object[Spec_1.Spec.VALUE_LIST] = property.constraintValue.toJsonArray(); } if (property.constraintValue instanceof ValueRange_1.ValueRange) { object[Spec_1.Spec.VALUE_RANGE] = property.constraintValue.toJsonArray(); } } if (property.unit !== Unit_1.Unit.NONE) { object[Spec_1.Spec.UNIT] = Unit_1.UnitToString(property.unit); } // if (property.type._optional) { // object[Spec.X_OPTIONAL] = true; // } return object; } static encodeArray(properties) { const array = []; properties.forEach((property) => { array.push(PropertyCodec.encode(property)); }); return array; } } exports.PropertyCodec = PropertyCodec;