UNPKG

xiot-core-spec-ts

Version:
57 lines (56 loc) 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Action_1 = require("../../typedef/instance/Action"); const Spec_1 = require("../../typedef/constant/Spec"); const ActionType_1 = require("../../typedef/definition/urn/ActionType"); const ArgumentCodec_1 = require("./ArgumentCodec"); const DescriptionCodec_1 = require("../definition/DescriptionCodec"); class ActionCodec { static decodeArray(array) { const list = []; if (array != null) { for (const o of array) { list.push(ActionCodec.decode(o)); } } return list; } static decode(o) { const iid = o[Spec_1.Spec.IID]; const type = new ActionType_1.ActionType(o[Spec_1.Spec.TYPE]); const description = DescriptionCodec_1.DescriptionCodec.decode(o[Spec_1.Spec.DESCRIPTION]); const argumentsIn = ArgumentCodec_1.ArgumentCodec.decodeArray(o[Spec_1.Spec.IN]); const argumentsOut = ArgumentCodec_1.ArgumentCodec.decodeArray(o[Spec_1.Spec.OUT]); // // if (o[Spec.X_OPTIONAL] != null) { // type._optional = o[Spec.X_OPTIONAL]; // } return new Action_1.Action(iid, type, description, argumentsIn, argumentsOut); } static encode(action) { const o = { iid: action.iid, type: action.type.toString(), description: DescriptionCodec_1.DescriptionCodec.encode(action.description), }; // // if (action.type._optional) { // o[Spec.X_OPTIONAL] = true; // } if (action.in.size > 0) { o[Spec_1.Spec.IN] = ArgumentCodec_1.ArgumentCodec.encodeArray(action.getArgumentsIn()); } if (action.out.size > 0) { o[Spec_1.Spec.OUT] = ArgumentCodec_1.ArgumentCodec.encodeArray(action.getArgumentsOut()); } return o; } static encodeArray(actions) { const array = []; actions.forEach((action) => { array.push(ActionCodec.encode(action)); }); return array; } } exports.ActionCodec = ActionCodec;